Bölüm 1 – Bilgisayar, Internet ve Web

17
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 Evreleri 1.5 Java Sınıf Kütüphanesi 1.6 Diğer Yüksek Seviyeli Diller 1.7 Yapısal Programlama 1.8 Internet ve WWW 1.9 Java Çalışma Ortamı 1.10 Objeye Dayalı Düşünme – UML 1.11 Objeye dayalı programlama ile yapısal programlama

description

Bölüm 1 – Bilgisayar, Internet ve Web. İçindekiler - PowerPoint PPT Presentation

Transcript of Bölüm 1 – Bilgisayar, Internet ve Web

Page 1: 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

Page 2: Bölüm  1 –  Bilgisayar, Internet ve Web

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

Page 3: Bölüm  1 –  Bilgisayar, Internet ve Web

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

Page 4: Bölüm  1 –  Bilgisayar, Internet ve Web

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.

Page 5: Bölüm  1 –  Bilgisayar, Internet ve Web

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ı.

Page 6: Bölüm  1 –  Bilgisayar, Internet ve Web

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ı.

Page 7: Bölüm  1 –  Bilgisayar, Internet ve Web

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.

Page 8: Bölüm  1 –  Bilgisayar, Internet ve Web

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

Page 9: Bölüm  1 –  Bilgisayar, Internet ve Web

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

Page 10: Bölüm  1 –  Bilgisayar, Internet ve Web

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)

Page 11: Bölüm  1 –  Bilgisayar, Internet ve Web

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ç

Page 12: Bölüm  1 –  Bilgisayar, Internet ve Web

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.

Page 13: Bölüm  1 –  Bilgisayar, Internet ve Web

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

Page 14: Bölüm  1 –  Bilgisayar, Internet ve Web

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.

Page 15: Bölüm  1 –  Bilgisayar, Internet ve Web

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

Page 16: Bölüm  1 –  Bilgisayar, Internet ve Web

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

Page 17: Bölüm  1 –  Bilgisayar, Internet ve Web

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.