Docstoc

Nesne Tabanl Programlamaya Giri

Document Sample
Nesne Tabanl Programlamaya Giri Powered By Docstoc
					Nesne Tabanlı
Programlamaya Giriş

              BTP 324

           Fatih Üniversitesi
Bilgisayar Teknolojisi ve Programlama
                Bölümü


                                        1
Dersin Genel İçeriği

   Nesne Tabanlı Programlama Temelleri

   Nesne Tabanlı Tasarım

   Nesne tabanlı uygulamalarda Java
    dilini nasıl kullanabiliriz?


                                          2
Ders İçin Gerekli Olan

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

                                               3
Notlandırma

   %30  Vize ve uygulama vizesi
   %40  Final
   %20  Proje-ödev
   % 10  derse katılım ve devam

    – devam % 70




                                    4
    Önemli Notlar
   Lablarda ve teori derslerinde bonus sorulara cevap verenleri
    ödüllendirme

   Vizelere katılmayanlar için ek sınavın yapılamayacağını bilme
   Mazeret sınavlarının vize ve final sınavlarından daha zor ve farklı
    olduğunu bilme

   Ofis saatlerini değerlendirme
     – Pazartesi 11.00- 12.00 ,Perşembe 15.00-16.00, Cuma : 14.00- 15.00

   Ç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

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




                        6
Zor Sorular

   Nesne Tabanlı Programlama Nedir?
    (Object-Oriented Programming)

   Niçin bu kadar popüler?
    – NTP kendisinden önce varolan tüm
      dillerden farklı, devrim yaratan bir
      düşüncedir.


                                             7
NTP Neden bu kadar
Popüler?
   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.



                                                    8
Yeni Model

   Model :Örnek/Modeldünyanın nasıl
    çalıştığını 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?

                                                 9
NTP Modeli
   Bilgisayar Bilimlerinde bir model
    elementlerin nasıl bilgisayar programında
    tasarlandığını ve elementlerin birbirleriyle
    nasıl haberleştiğini açıklar.
   NTP bir modeldirDünyayı algılama yolu
   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.

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


                                                            11
NTP içeriğini açıklayan bir örnek –
Şehir dışı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.
   Flo arkadaşımın şehrindeki çiçekçi ile kontak
    kurdu.O da çiçekleri yaptırdı ve taşımacı ile
    anlaşarak çiçeği teslim etti.

                                                12
Ç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...
   Problemimizin çözümü için insanların
    birbiri ile iletişimde olması gerektiğini
    gördük.
                                            13
Objeler

   Herşey bir obje

   Örnekler olayları oluşturur.

   Kendim, arkadaşım, çiçekçi,
    arkadaşımın şehrinde olan çiçekçi,
    şoför, çiçek aranjmanı, çiftçi
                                         14
Mesajlar

   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öndürebilir.


                                               15
Mesajlar ve Metodlar
   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 giden obje alıcıdır. Eğer alıcı mesajı kabul
    ederse, alıcı istenen olayı gerçekleştirmekle
    sorumludur.


                                                            16
Bilgi Soyutlama

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

    Ama taşıyıcı obje bu işi
    gerçekleştirmekle sorumlu.             17
Alıcılar
   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
           Flo (arkadaşıma) çiçek yollayabilir (metodlar farklı)
           Alice(arkadaşıma) çiçek yollayamaz
              – Metod yok
              – İsteği anladı ama hatalı cevap verdi.




                                                                     18
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

    }
}
                                                                 19
Bilgisayarlar ve
Programlar
   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.




                                         20
Sorumluluklar

   NTP temel konu sorumlu olunan
    davranışları tanımlama

   Geleneksel programlar genellikle
    veriler üzerinde kodlama yaparlar
    – Bir dizide değer değiştirme..
   NTP ise veriler (objeler) bir hizmet
    oluşturmak için talep edilir.
                                           21
Sorumluluklar

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




                                            22
Tekrarlanan Tasarı

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




                                          23
Sınıflar
   Flo  Bir çiçekçiden istediğim tüm davranışları
    sergileyebilmeli
   Çiçekçi  Genel bir model
   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.
   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.


                                                        24
Sınıf Hiyerarşisi




                    25
Miras
   Sınıflar tek köklü ağaç 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



                                                      26
Overriding (İptal etme)
   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
    – If no appropriate method in subclass go up to
      parents until either a method is found or the
      parent class chain is exhausted.
                                                      27
Özet

   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 varolan ve
    bir görevi olan her şeye obje der.
   Obje veri ve davranışları ile kapsülleşmiş
    olarak oluşur.

                                                  30
Özet

   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
    sınıfın bir kalıp 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.
                                             31
Özet

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


                                           32
Özet

   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ı
    – Köpek – koklama
        Koklama(kedi)  havlar, kovalar
        Koklama (yiyecek)  salya akar, kaba koşar.

                                                       33

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:48
posted:5/12/2010
language:Turkish
pages:31