Bölüm 1 – Bilgisayar, Internet ve Web
-
Upload
portia-benson -
Category
Documents
-
view
27 -
download
0
description
Transcript of Bölüm 1 – Bilgisayar, Internet ve Web
Bölüm 1 – Bilgisayar, Internet ve Web
İçindekiler
1.1 Giriş1.2 Makina dilleri, Assembly dilleri ve Yüksek seviyeli diller 1.3 Neden Java?1.4 Java’nın Gelişme Evreleri1.5 Java Sınıf Kütüphanesi1.6 Diğer Yüksek Seviyeli Diller 1.7 Yapısal Programlama 1.8 Internet ve WWW1.9 Java Çalışma Ortamı1.10 Objeye Dayalı Düşünme – UML1.11 Objeye dayalı programlama ile yapısal programlama
1.1 Giriş
• Kaynaklar– Java 2, 4. Baskı, Alfa Yayınları
– Java How to Program, 5. Baskı
– Java Kitap Projesi(www.kodcu.com/kodcu)
• Programlar– Java 2 Standard Edition (JDK1.4.1)
– Editor (JCreator 2.50)
• Ders Takibi– www.fatih.edu.tr/~zsevkli
1.2 Makina dili, Assembly dili ve Yüksek Seviyeli Diller
• Makina dili– Bilgisayarın “Doğal bir dil” dir.
– Makinaya bağımlı
• Assembly dili– İngilizce dilinde ve kısaltılmış bir komut sistemi
– Makinanın anlaması için makina diline çevrilir.
• Yüksek seviyeli diller– İngilizce diline uyumlu komut sistemi
• Matematiksel operatörlerin ağırlık kazandiği
– Derleyici tarafından makina diline çevriliyor.
• Interpreter (Yorumlayıcı)– Derlemeden yüksek seviyeli dilleri çalıştıran program
1.3 Neden Java?
• Uzun zaman C dili gösterildi.• Şartların değişmesi ile kullanıcı
– Uygulamalarda GUI desteği ile beraber multimedya desteğini – Esnek ve performans bakımından yüksek bir dil– Paralel çalışabilen– Uygulamaları masaüstü veya locallikten çıkarıp Web bağlantılı
olmasını istediler.
• Tamamiyle nesne tabanlı bir dil olması popüler olmasının bir başka sebebidir.– C den C++ geçiş kolay oldu ama nesnel porgramlamaya geçiş zor
oldu.
• Yeniden kullanabilirlik özelliği • Java yazılımı “free”. Program Sun web sayfasından
indirilebiliyor.
1.4 Biraz Java Tarihçesi
• 1991 yılında SUN bilgisayar şirketince orjinal olarak elektrikli ev aletlerinin birbirleriyle haberleşmesi için geliştirlmeye başlandı.
• Orjinal adı OAK • Daha sonra JAVA olarak değiştirildi.• 1993 Web’in popülaritesi arttı. Java artık
“dinamik içerik”li web sayfaları ile gündeme geldi.
• Mayıs 1995’de Sun, Java’yı dünyaya tanıttı.
1.5 Gelişim Evreleri
• 1995 Java Teknolojisinin ilk çıkış yılı ; ilk olarak applet teknolojisinin dikkat çektiği seneler.
• 1996 Java Development Kit (JDK) v1.0 çıkartıldı. Temel seviyeli işlevleri içeren bir versiyon (ör. soket
programlama, dosya I/O, GUI) • 1997 JDK 1.1 çıkartıldı. Bu sürümde Java GUI , veritabanı erişimi
için JDBC , dağınık objeler için RMI ve daha birçok yeni gelişmeler eklendi .
• 1998 JDK 1.2 çıkartıldı . JFC/Swing yayınlandı- aynı sene içersinde 500,000+ download gerçekleştirildi.
• 1999 Java teknolojisi J2SE, J2EE ve J2ME olarak 3’e bölündü . Java HotSpot (performans arttırıcı) yayınlandı .
JavaServer Pages (JSP) teknolojisi yayınlandı. J2EE platform’u yayınlandı Linux üzerinde J2SE platformu yayınlandı .
• 2000 JDK v1.3 çıkartıldı . Java APIs for XML teknolojisi yayınlandı .
• 2002 JDK v1.4 stable versiyonu çıkarıldı. Java API for XML binding yayınlandı.
1.6 Java Sınıf (Class) Kütüphaneleri
• Sınıflar– Metodlar içerirler.
• İşlemlerini tamamladıktan sonra geri değer gönderirler.
– Java programını oluşturan temel ünitelerdir.
• Java sınıf kütüphaleri içerir.– Java APIleri olarak bilinirler. (Application Programming
Interfaces)
• Kullanıcı– Sınıf kütüphanelerinden sınıflar kullanabilirler.(Performans
derdi yoktur.Dikkatli şekilde yazılmışlarıdır ve Java’nın her versiyonunda kullanabilirler.)
– Kendi tanımladığı sınıfları kullanılabilir.– Başkasının oluşturduğu sınıflar kullanılabilir.
1.7 Diğer Yüksek Seviyeli Diller
• Fortran– FORmula TRANslator
• COBOL– COmmon Business Oriented Language
• Pascal– Structured programmingYapısal porgramlama
• Ada– MultitaskingÇok görevlilik
1.7 Diğer Yüksek Seviyeli Diller
• BASIC– Beginner’s All-Purpose Symbolic Instruction Code
• Visual Basic .NET– Framework Class Library (FLC)
• Visual C++– Microsoft Foundation Classes (MFC)
• C#– C-Sharp
• .NET– .NET platform
1.8 Yapısal Programlama
• 1960 ‘larda yapısal programlamaya geçildi.• Kod daha anlaşılır, test etmesi, debug yapması ve
kodu değiştirmesi daha kolay• C ve Pascal yapısal programramlamanın öncüleri• ABD Savunma Bakanlığı 1970’lerde ADA dilini
çıkardı.• ADA’nın en büyük özelliği multitasking(çok
görevlilik, aynı anda birçok işi paralel olarak yapabilmesi)
1.9 Internet ve World Wide Web
• Internet– Yaklaşık 40 yıl önce Amerika Savunma Bakanlığı geliştirdi.
– Amaç bir ana bilgisayara araştırma organizasyonlarının ve üniversitelerin bağlanması idi.
– Şimdi 1000’lerce insanın iletişimini sağlıyor.
• World Wide Web (WWW)– multimedia-temelli dökümanların görüntülenmesini sağlayan
araç
1.10 Javanın Çalışma Ortamı
• Java çalışma ortamlarını 5 ana gruba ayırabiliriz.– Edit
• Programcının programını yazdığı ve saklayabildiği yer
– Compile (Derleyici)• Programdan bytecode lara çeviri yapar.
– Load (Yükleme)• Yükleme sayesinde bytecode lu sınıf belleğe yüklenir.
– Verify (Doğrulama)• Doğrulama ünitesi ile bytecode ların güvenlik ayarlarına karşı
bir ihlal içermediğini kontrol eder.
– Execute (Çalışma)• Yorumlayıcı bytecode ları makina diline çevirir.
Fig. 1.1 Tipik Java çalışma ortamı.
PrimaryMemory
.
.
.
.
.
.
Disk
Disk
Disk
Editor
Compiler
Class Loader
Program is created in an editor and stored on disk in a file ending with .java.
Compiler creates bytecodes and stores them on disk in a file ending with .class.
Class loader reads .class files containing bytecodes from disk and puts those bytecodes in memory.
Phase 1
Phase 2
Phase 3
PrimaryMemory
.
.
.
.
.
.
Bytecode Verifier Bytecode verifier
confirms that all bytecodes are valid and do not violate Java’s security restrictions.
Phase 4
PrimaryMemory
.
.
.
.
.
.
InterpreterInterpreter reads bytecodes and translates them into a language that the computer can understand, possibly storing data values as the program executes.
Phase 5
1.11 Objeler Hakkında Düşünme: Obje Teknolojisi ve Unified Modeling
Language (Modelleme dili)• Obje yönelimi• Unified Modeling Language (UML)
– Grafik dilidir.
– Uygulama geliştiricilere nesneye dayalı dizayn yaparken yardım eder.
1.12 Objeler Hakkında Düşünme
• Objeler– Gerçek dünya nesnelerini modelleyen bir yazılım bileşeni
– En büyük özelliği yeniden kullanabilirlik (yazılımlar içinde)
– Etrafınıza baktığınızda• İnsanlar, hayvanlar, bitkiler, arabalar.. vs
– Attributes (Tanımlayıcı özellik)• Büyüklükleri, şekilleri, renkleri,ağırlıkları..vs
– Behaviors (Davranış)• Bebekler ağlarlar, sürünürler ,uyurlar..vs
1.12 Objeler Hakkında Düşünme
• Objeye dayalı dizayn (OOD)– Gerçek dünya objelerini modeller.
– Model tanımladığı objeler arasında iletişimi sağlar.
– Objenin tanıtıcı özelliklerini ve davranışlarını gizler.(Encapsulation)
• Bilgi saklanımı
• İyi tanımlanmış arayüzlerle (interface) iletişimi sağlamak
• Objeye dayalı programlama dili– Objeye dayalı bir dilde programlama yapmaya object-
oriented programming (OOP) (objeye dayalı programlama) diyoruz.
– Java
Objeye Dayalı Programlama ile Yapısal Programlama
• C dili– Prosedürel bir
dildir.Program olaylara bağlı olarak yazılır ve çalışır.
– En küçük program ünitesi fonksiyonlardır.
– Kullanıcı fonksiyon yazmaya odaklanır.Fiil odaklı bakılır.
• Java Dili– Objeye dayalı bir
dildir.Program objeler tasarımını düşünerek yapılır.
– En küçük programlama ünitesi class’lardır.
– Kullanıcı class tasarımı ile uğraşır.Bu classlardan objeler oluşturulur.
– Her bir class aslında kullanıcı tanımlı veri tipidir.