Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

1 Nesne Tabanlı Programlamaya Giriş BTP 218 Fatih Üniversitesi Bilgisayar Teknolojisi ve Programlama Bölümü.

Benzer bir sunumlar


... konulu sunumlar: "1 Nesne Tabanlı Programlamaya Giriş BTP 218 Fatih Üniversitesi Bilgisayar Teknolojisi ve Programlama Bölümü."— Sunum transkripti:

1 1 Nesne Tabanlı Programlamaya Giriş BTP 218 Fatih Üniversitesi Bilgisayar Teknolojisi ve Programlama Bölümü

2 2 Dersin Genel İçeriği Nesne Tabanlı Programlama Temelleri Nesne Tabanlı Programlama Temelleri Nesne Tabanlı Tasarım Nesne Tabanlı Tasarım Nesne tabanlı uygulamalarda Java dilini nasıl kullanabiliriz? Nesne tabanlı uygulamalarda Java dilini nasıl kullanabiliriz?

3 3 Ders İçin Gerekli Olan Kitap Kitap –Türkçe kaynak:Java 2 Herkes İçin, Alfa Yayınları –İngilizce kaynak: Java How to Program,Deitel&Deitel, 5 Edition Java Virtual Machine (1.4.2 ) Java Virtual Machine (1.4.2 ) –http://java.sun.com Text Editör Text Editör –JCreator 2.5

4 4 Notlandırma %20  Vize 1 %20  Vize 2 %35  Final %15  Proje % 5  Yoklama – – Teori % 70, Lab % 80

5 5 14 Haftalık Program Nesne Tabanlı Programalama Nedir?– Hafta 1 Nesne Tabanlı Programalama Nedir?– Hafta 1 Sınıf Tanıtımı – Hafta 2 Sınıf Tanıtımı – Hafta 2 Miras – Hafta 3 Miras – Hafta 3 Polimorfizm – Hafta 4, 5 Polimorfizm – Hafta 4, 5 Vize 1 – Hafta 6 Vize 1 – Hafta 6 Grafik, Java 2D – Hafta 7 Grafik, Java 2D – Hafta 7 GUI Bileşenleri 1 –Hafta 8,9 GUI Bileşenleri 1 –Hafta 8,9 GUI Bileşenleri 2 – Hafta 10, 11 GUI Bileşenleri 2 – Hafta 10, 11 Vize 2 – Hafta 12 Vize 2 – Hafta 12 Proje Sunumları –Hafta 13,14 Proje Sunumları –Hafta 13,14

6 6 Önemli Notlar Ders ile alakalı tüm bilgiler sayfasında yer alacak. (ders notları, sınav sonuçları, ödevler,projeler ve duyurular) Ders ile alakalı tüm bilgiler sayfasında yer alacak. (ders notları, sınav sonuçları, ödevler,projeler ve duyurular)www.fatih.edu.tr/~zsevkli/BTP218 Proje konularını 2 hafta sonra web sitesinden öğrenebileceksiniz Proje konularını 2 hafta sonra web sitesinden öğrenebileceksiniz Projeleri her grup (2 kişi) ayrı ayrı düşünüp tasarlayacak. İnternetten hazır kod getiren yada başka grup ile aynı koda sahip olan grupların proje notları 0 olacaktır. (Açıklayamayacağınız kodları yazmayın) Projeleri her grup (2 kişi) ayrı ayrı düşünüp tasarlayacak. İnternetten hazır kod getiren yada başka grup ile aynı koda sahip olan grupların proje notları 0 olacaktır. (Açıklayamayacağınız kodları yazmayın) Bu dersin sadece alt zihin becerileriyle (ezberleme, kopyalama, tekrar) ile başarılamayacağını anlama, özellikle üst zihin becerilerini (yorumlama, değerlendirme, problem çözme) kullanarak başarılı olacağını kabul etme. Bu dersin sadece alt zihin becerileriyle (ezberleme, kopyalama, tekrar) ile başarılamayacağını anlama, özellikle üst zihin becerilerini (yorumlama, değerlendirme, problem çözme) kullanarak başarılı olacağını kabul etme. Derse konsantre olarak gelme Derse konsantre olarak gelme Derste dikkatinizi dağıtacak işleri terk etme (cep telefonu) Derste dikkatinizi dağıtacak işleri terk etme (cep telefonu)

7 7 Önemli Notlar Lablarda ve teori derslerinde bonus sorulara cevap verenleri ödüllendirme Lablarda ve teori derslerinde bonus sorulara cevap verenleri ödüllendirme Vizelere katılmayanlar için ek sınavın yapılamaycağını bilme (Vize yüzdesini finale katma) Vizelere katılmayanlar için ek sınavın yapılamaycağını bilme (Vize yüzdesini finale katma) Mazeret sınavlarının vize ve final sınavlarından daha zor ve farklı olduğunu bilme Mazeret sınavlarının vize ve final sınavlarından daha zor ve farklı olduğunu bilme Ofis saatlerini değerlendirme Ofis saatlerini değerlendirme –Pazartesi Cuma : Çalışmanızı ve gayretinizi hocanıza dönem içinde gösterme Çalışmanızı ve gayretinizi hocanıza dönem içinde gösterme Dönem sonunda hocanızdan kişisel ödev veya proje talebinde bulunmama Dönem sonunda hocanızdan kişisel ödev veya proje talebinde bulunmama

8 8 Aklınıza Takılanlar?? Derse geçmeden önce!!

9 9 Zor Sorular Nesne Tabanlı Programlama Nedir? (Object-Oriented Programming) Nesne Tabanlı Programlama Nedir? (Object-Oriented Programming) Niçin bu kadar popüler? Niçin bu kadar popüler? –NTP kendisinden önce varolan tüm dillerden farklı, devrim yaratan bir düşüncedir.

10 10 NTP Neden bu kadar Popüler? Birkaç sebep: Birkaç sebep: –Üretkenliğini ve verimliliğini hızlı bir şekilde kanıtladı. –Varolan dillerden kolaylıkla geçiş yapıldı. –Problemlerin çözümüne nesnesel bakmayı yani insan anlayışı bakışı getirdi.

11 11 Yeni Model Model :Örnek/Model  dünyayının nasıl çalıştığı anlamamıza yardım eder. Model :Örnek/Model  dünyayının nasıl çalıştığı anlamamıza yardım eder. –Bir örnek cümle fiil çekiminin nasıl yapıldığını hatırlatır. –Newton modeli (kuralları)  niçin elmanın ağaçtan düştüğünü açıklar. Bunları programlama dili ile nasıl anlatabiliriz? Bunları programlama dili ile nasıl anlatabiliriz?

12 12 NTP Modeli Bilgisayar Bilimlerinde bir model elementlerin nasıl bilgisayar programında tasarlandığını ve elementlerin birbirleriyle nasıl haberleştiğini açıklar. Bilgisayar Bilimlerinde bir model elementlerin nasıl bilgisayar programında tasarlandığını ve elementlerin birbirleriyle nasıl haberleştiğini açıklar. NTP bir modedir  Dünyayı algılama yolu NTP bir modedir  Dünyayı algılama yolu NTP iletişim halinde olan topluluklar gibi yapılanır  objeler. NTP iletişim halinde olan topluluklar gibi yapılanır  objeler. Her obje bir hizmet (service) yada diğer üyelerin kullanacağı bir olay (action) gerçekleştirir. Her obje bir hizmet (service) yada diğer üyelerin kullanacağı bir olay (action) gerçekleştirir.

13 13 NTP’ prensiplerinin Açıklaması Herşey bir objedir. Objeler birbirlerine ulaşan mesajlar yada istekler oluştururlar. Her objenin kendi hafızası vardır. Her obje bir sınıfın örneğidir. Sınıf benzer objeleri gruplayan tasarıdır. Sınıf, obje ile ilgili davranışların tanıtıldığı yerdir. Sınıflar tek köklü ağaç yapıları içinde organize edilirler.Bu yapıya miras hiyerarşisi denir.

14 14 NTP içeriğini açıklayan bir örnek – Şehirdışındaki bir arkadaşa çiçek yollamak Bunu kendim yapamam. Öyleyse kendi Çiçekçimi kullanayım.Çiçekçime (adı Flo) arkadaşımın adresini verdim, ne kadarlık bir çiçek yaptırmak istediğimi, ne tür çiçek istediğimi söyledim. Bunu kendim yapamam. Öyleyse kendi Çiçekçimi kullanayım.Çiçekçime (adı Flo) arkadaşımın adresini verdim, ne kadarlık bir çiçek yaptırmak istediğimi, ne tür çiçek istediğimi söyledim. Flo arkadaşımın şehirindeki çiçekçi ile kontak kurdu.O da çiçekleri yaptırdı ve taşımacı ile anlaşarak çiçeği teslim etti. Flo arkadaşımın şehirindeki çiçekçi ile kontak kurdu.O da çiçekleri yaptırdı ve taşımacı ile anlaşarak çiçeği teslim etti.

15 15 Çiçekçi Örneği Devam Eğer düşüncemizi daha geniş tutsa idik başka insanlarda bu işlemin içine gireceklerdi. Çiçek yetiştiricisi, aranjmanı yapan kişi ve daha başka insanlar... Eğer düşüncemizi daha geniş tutsa idik başka insanlarda bu işlemin içine gireceklerdi. Çiçek yetiştiricisi, aranjmanı yapan kişi ve daha başka insanlar... Problemimizin çözümü için insanların birbiri ile iletişimde olması gerektiğini gördük. Problemimizin çözümü için insanların birbiri ile iletişimde olması gerektiğini gördük.

16 16 Objeler Herşey bir obje Herşey bir obje Örnekler olayları oluşturur. Örnekler olayları oluşturur. Kendim, arkadaşım, çiçekçi, arkadaşımın şehirinde olan çiçekçi, şöför, çiçek aranjmanı, çiftçi Kendim, arkadaşım, çiçekçi, arkadaşımın şehirinde olan çiçekçi, şöför, çiçek aranjmanı, çiftçi

17 17 Mesajlar Objeler birbirlerine mesajlar iletirler. Objeler birbirlerine mesajlar iletirler. Bir örnek bu mesajı kabul edebilir (accept) ve geri dönüşte bir olay gerçekleştirip bir değer geri dönderebilir. Bir örnek bu mesajı kabul edebilir (accept) ve geri dönüşte bir olay gerçekleştirip bir değer geri dönderebilir.

18 18 Mesajlar ve Metodlar Olay başlatma: Bir objeye ait bir mesajı gönderme olayın sorumluluğu altındadır. Olay başlatma: Bir objeye ait bir mesajı gönderme olayın sorumluluğu altındadır. Mesaj, olay için istek olarak kodlanır ve isteğin taşınması için gerekli başka bilgiler mesaja eklenir. Mesaj, olay için istek olarak kodlanır ve isteğin taşınması için gerekli başka bilgiler mesaja eklenir. Mesaj giden obje alıcıdır. Eğer alıcı mesajı kabul ederse, alıcı istene olayı gerçekleştirmekle sorumludur. Mesaj giden obje alıcıdır. Eğer alıcı mesajı kabul ederse, alıcı istene olayı gerçekleştirmekle sorumludur.

19 19 Bilgi Soyutlama Benim bilmem gereken sadece objenin kabul edeceği mesaj ismidir. Benim bilmem gereken sadece objenin kabul edeceği mesaj ismidir. Benim isteğimin nasıl gerçekleştiğinin, hangi olaylarla gerçekleştiğini hakkında bir bilgim yok. Benim isteğimin nasıl gerçekleştiğinin, hangi olaylarla gerçekleştiğini hakkında bir bilgim yok. Ama taşıyıcı obje bu işi gerçekleştirmekle sorumlu. Ama taşıyıcı obje bu işi gerçekleştirmekle sorumlu.

20 20 Alıcılar Mesajlar kullandığımız fonksiyonlardan farklı olarak çağrılırlar: Mesajlar kullandığımız fonksiyonlardan farklı olarak çağrılırlar: –Mesajda mesajı kabul edecek alıcıya göre tasarlanma var. /Bildiğimiz fonksiyonlarda alıcıya göre tasarlanma –Alıcıya göre aynı mesaj farklı yorumlanabilir. (Polimorfizm) Karen (arkadaşıma)  çiçek yollayabilir Karen (arkadaşıma)  çiçek yollayabilir Flo (arkadaşıma)  çiçek yollayabilir (metodlar farklı) Flo (arkadaşıma)  çiçek yollayabilir (metodlar farklı) Alice(arkadaşıma)  çiçek yollayamaz Alice(arkadaşıma)  çiçek yollayamaz –Metod yok –İsteği anladı ama hatalı cevap verdi.

21 21 Farklı Olaylar public class ActionTester { Florist flo = new Florist(); Wife beth = new Wife(); Dentist ken = new Dentist(); HumanBeing myFriend = new HumanBeing(); public static void main(String[] args) { flo.sendFlowersTo(myFriend); // will work beth.sendFlowersTo(myFriend); // probably will work ken.sendFlowersTo(myFriend); // probably will not work }}

22 22 Bilgisayarlar ve Programlar Mesajın hangi alıcıya gideceği program çalışma anına kadar bilinmez. Mesajın hangi alıcıya gideceği program çalışma anına kadar bilinmez. Mesaj ile kod arasındaki bu işe late binding yani geç bağlanma denir. Mesaj ile kod arasındaki bu işe late binding yani geç bağlanma denir.

23 23 Sorumluluklar NTP temel konu sorumlu olunan davranışları tanımlama NTP temel konu sorumlu olunan davranışları tanımlama Geleneksel programlar genellikle veriler üzerinde kodlama yaparlar Geleneksel programlar genellikle veriler üzerinde kodlama yaparlar –Bir dizide değer değiştirme.. NTP ise veriler (objler) bir hizmet oluşturmak için talep edilir. NTP ise veriler (objler) bir hizmet oluşturmak için talep edilir.

24 24 Sorumluluklar “Ask not what you can do to your data structures, but what your data structure can do for you”

25 25 Tekrarlanan Tasarı Her objenin kendi hafızası vardır. Her objenin kendi hafızası vardır. Her obje minyatür bilgisayar gibi işler – her özel işlemci aytı bir iş yapar. Her obje minyatür bilgisayar gibi işler – her özel işlemci aytı bir iş yapar.

26 26 Sınıflar Flo  Bir çiçekçiden istediğim tüm davranışarı sergileyebilmeli Flo  Bir çiçekçiden istediğim tüm davranışarı sergileyebilmeli Çiçekçi  Genel bir model Çiçekçi  Genel bir model Flo ise bu modelin bir örneği, tüm kurallara itaat eden Flo ise bu modelin bir örneği, tüm kurallara itaat eden Her obje bir sınıfın örneğidir.Sınıflar objeleri gruplarlar. Her obje bir sınıfın örneğidir.Sınıflar objeleri gruplarlar. Sınıf objelere ait davranışların tanımlandığı yerdir.  Tüm objeler bir sınıfın örneğidirler. Ve tüm objeler sınıfta tanımlanan aynı metodları kullanırlar. Sınıf objelere ait davranışların tanımlandığı yerdir.  Tüm objeler bir sınıfın örneğidirler. Ve tüm objeler sınıfta tanımlanan aynı metodları kullanırlar.

27 27 Sınıf Hiyerarşisi

28 28 Miras Sınıflar tek köklü ağaçt yapısıyla organize olurlar.Buna miras hiyerarşisi denir. Sınıflar tek köklü ağaçt yapısıyla organize olurlar.Buna miras hiyerarşisi denir. –Bir sınıf için tanımladığım bilgi (veri ve/veya davranış) ondan türeyen daha alt düzeydeki sınıflar için de tanımlıdır. –Flo is-A Florist is-A Shopkeeper  Flo is a more specialized form of the category Shopkeeper.  Any Knowledge about Shopkeeper is also true for Florist and hence Flo

29 29 Overriding (İptal etme) Subclasses can alter or override information inherited from parent classes: Subclasses can alter or override information inherited from parent classes: –All mammals give birth to live young –A platypus is an egg-laying mammal Subclass have a method with the same name as the method in parent class and states the search rule to match a specific method Subclass have a method with the same name as the method in parent class and states the search rule to match a specific method –If no appropriate method in subclass go up to parents until either a method is found or the parent class chain is exhausted.

30 30 Abstract Data Type A programmer-defined data type that can be manipulated in a manner similar to system-provided data types A programmer-defined data type that can be manipulated in a manner similar to system-provided data types –Must have the ability to instantiate many different copies of the data type. –Data type can be implemented using provided operations, without knowledge of internal representation.

31 31 Objects – ADT’s with message passing Encapsulation -- similar to modules Encapsulation -- similar to modules Instantiation -- similar to ADT's Instantiation -- similar to ADT's Messages -- dynamic binding of procedure names to behavior Messages -- dynamic binding of procedure names to behavior Classes -- a way of organization that permits sharing and reuse Classes -- a way of organization that permits sharing and reuse Polymorphism -- A new form of software reuse using dynamic binding Polymorphism -- A new form of software reuse using dynamic binding

32 32 Özet NTP programlama dillerine eklenecek kadar kolay bir özellik değildir. Yeni bir düşünme yoludur. NTP programlama dillerine eklenecek kadar kolay bir özellik değildir. Yeni bir düşünme yoludur. NTP programa birbiri ile ilişkideki topluluklar gözü ile bakar. Belli bir amaç için vaolan ve bir görevi olan herşeye obje der. NTP programa birbiri ile ilişkideki topluluklar gözü ile bakar. Belli bir amaç için vaolan ve bir görevi olan herşeye obje der. Obje veri ve davranışları ile kapsüllenmiş olarak oluşur. Obje veri ve davranışları ile kapsüllenmiş olarak oluşur.

33 33 Özet Sınıf, bir grup nesne tarafından paylaşılacak olan yapı ve davranışları tanımlar. Sınıf, bir grup nesne tarafından paylaşılacak olan yapı ve davranışları tanımlar. Belli bir sınıfın her nesnesi, sanki o saınıfın bir kalıb ile damgalanmış gibi sınıf tarafından tanımlanan yapı ve davranışı gösterir  Sınıf örnekleri Belli bir sınıfın her nesnesi, sanki o saınıfın bir kalıb ile damgalanmış gibi sınıf tarafından tanımlanan yapı ve davranışı gösterir  Sınıf örnekleri Sınıfın kod ve verilerine üye denir. Sınıfın kod ve verilerine üye denir.

34 34 Özet Sınıf tarafından tanımlanan veriye üye değişken denir Sınıf tarafından tanımlanan veriye üye değişken denir Bu veri üzerinde iş göre koda üye metot denir. Bu veri üzerinde iş göre koda üye metot denir. Sınıfın davranışarı metotlar tarafından tanımlanır. Sınıfın davranışarı metotlar tarafından tanımlanır.

35 35 Özet Miras, bir nesnenin diğer bir nesnenin özelliklerini kazanmasıdır. Miras, bir nesnenin diğer bir nesnenin özelliklerini kazanmasıdır. Polimorfizm ise bir arabirim- çok metot kavramı ile açıklanır. Aynı metodun farklı alıcılara göre farklı davranması Polimorfizm ise bir arabirim- çok metot kavramı ile açıklanır. Aynı metodun farklı alıcılara göre farklı davranması –Köpek – koklama Koklama(kedi)  havlar, kovalar Koklama(kedi)  havlar, kovalar Koklama (yiyecek)  salya akar, kaba koşar. Koklama (yiyecek)  salya akar, kaba koşar.


"1 Nesne Tabanlı Programlamaya Giriş BTP 218 Fatih Üniversitesi Bilgisayar Teknolojisi ve Programlama Bölümü." indir ppt

Benzer bir sunumlar


Google Reklamları