10.07.2015 Views

Görsel Programlama

Görsel Programlama

Görsel Programlama

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Kodun Tekrar Kullanımı veKalıtım(Inheritance)Nesneye yönelik programlamanın diğer programlamaparadigmalarına karşı bir avantajı kodun yeniden kullanılabilirliğidir(code reuseability).Yazılan bir sınıf ile faydalı bir program birimi oluşturulmuş olur.Bu sınıf tekrar tekrar kullanılabilir.Bu sınıfı temel alarak, yeni kod parçaları ekleyerek yeni yenisınıflar oluşturulabilir.Görsel <strong>Programlama</strong> - Ders02/ 2


Kalıtımın Java ‘ da uygulanması:Kodun Tekrar Kullanımı veKalıtım(Inheritance)Görsel <strong>Programlama</strong> - Ders02/ 4


Kodun Tekrar Kullanımı veKalıtım(Inheritance)Motorsiklet nesnesini modellemek istersek:Görsel <strong>Programlama</strong> - Ders02/ 5


Kodun Tekrar Kullanımı veKalıtım(Inheritance)Dikkat edilirse iki sınıfında ortak özellikleri vardır:Görsel <strong>Programlama</strong> - Ders02/ 6


Kodun Tekrar Kullanımı veKalıtım(Inheritance)Kalıtımın (inheritance) amacı soyutlama (abstraction) sağlamaktır; yani hersınıfın içinde mümkün olduğunca o sınıfa özel alan ve metotlarıntanımlanmasıdır.Motorlu Araçmotorsiklet araba uçak ...wagoncoupeGörsel <strong>Programlama</strong> - Ders02/ 7


Kodun Tekrar Kullanımı veKalıtım(Inheritance)Sınıf hiyerarşisindeki sınıfların Java kodları:Görsel <strong>Programlama</strong> - Ders02/ 8


Kodun Tekrar Kullanımı veKalıtım(Inheritance)Görsel <strong>Programlama</strong> - Ders02/ 9


Kodun Tekrar Kullanımı veKalıtım(Inheritance)araba2 ve motorsiklet2 MotorluArac sınıfının alt sınıflarıdır(subclass).Üst sınıflarından tümdeğişkenleri(marka,model,yolcuSayisi,tekerSayisi,...)miras yoluyla alırlar ve kullanabilirler.ÜST SINIFLARDA private erişim denetleyicileri ile tanımlananalanlar ve metotlar alt sınıflarca miras olarak alınmalarına rağmenalt sınıfın metotları tarafından görülemez ve kullanılamazlar;erişilemezler.Görsel <strong>Programlama</strong> - Ders02/ 10


Kodun Tekrar Kullanımı veKalıtım(Inheritance)Kalıtım ile oluşturulmuş sınıftan yeni sınıflar kalıtım yoluylaoluşturulabilirler.Bazen bir sınıftan kalıtım yolu ile yeni sınıfların türetilmesiniistemeyiz. Bu durumda sınıfımızı son sınıf (final class) olaraktanımlarız ve artık bu sınıftan yeni sınıfların kalıtım yolu iletüretilmesini engellemiş oluruz.Görsel <strong>Programlama</strong> - Ders02/ 11


Kodun Tekrar Kullanımı veKalıtım(Inheritance)wagon sınıfı final olduğuiçin bu sınıftan kalıtımyoluyla yeni sınıfoluşturulamaz.Görsel <strong>Programlama</strong> - Ders02/ 12


Geçersiz Kılma (Overriding)Alt sınıflar üst sınıfın tüm alan ve metotlarını kalıtım ile alır, fakatistenilirse bu metotların davranışlarını (yaptıkları işleri)değiştirebilir.Bu işleme metotların geçersiz kılınması(overriding) denilir.Görsel <strong>Programlama</strong> - Ders02/ 13


Geçersiz Kılma (Overriding)Bu işlemi gerçekleştirmek için şunlar yapılır:4. Alt sınıf içinde üst sınıfın geçersiz kılınacak metot aynı isim veparametreler ile yeniden yazılır.5. Yazılan metot içeriği değiştirilerek yeni yapması istenilen işkodlanır.Görsel <strong>Programlama</strong> - Ders02/ 14


Geçersiz Kılma (Overriding)Bu işlemi gerçekleştirmek için şunlar yapılır:Görsel <strong>Programlama</strong> - Ders02/ 15


Geçersiz Kılma (Overriding)Görsel <strong>Programlama</strong> - Ders02/ 16


Geçersiz Kılma (Overriding)Sınıfda yazmış olduğumuz bir metodun geçersiz kılınmasını(overriding) engellemek istersek, bu metodu son metot (finalmethod) olarak tanımlarız.Örn:final public void yaz()Bu şekilde tanımlanan metot geçersiz kılınmaya çalışılırsa hataverecektir.Görsel <strong>Programlama</strong> - Ders02/ 17


Geçersiz Kılma (Overriding)Görsel <strong>Programlama</strong> - Ders02/ 18


Metotların Üzerine Yükleme –Aşırı yükleme(overloading)Bir metodun aşırı yüklenmesi; bir metodun farklı parametresayıları yada tipleri ile aynı isim altında tanımlanması vekullanılması demektir.Görsel <strong>Programlama</strong> - Ders02/ 19


Metotların Üzerine Yükleme –Aşırı yükleme(overloading)Aynı isimli iki add metodu vardır. İlki verilen nesneyi listeninsonuna ekler; ikincisi verilen nesneyi istenilen indis yerine ekler.add metodu aşırı yüklenmiş bir metottur.Görsel <strong>Programlama</strong> - Ders02/ 20


Metotların Üzerine Yükleme –Aşırı yükleme(overloading)Nokta sınıfının yapıcılarıda aşırı yükleme ile oluşturulmuştur. Yeni bir Noktasınıfından nesne oluştururken iki şekilde oluşturabiliriz. Yorumlayıcıhangisini kullanmak istediğimizi parametrelere bakarak karar verir.Görsel <strong>Programlama</strong> - Ders02/ 21


Çok Şekillilik (Polimorphism)Kalıtım yolu ile oluşturulan sınıflar bir sınıf hiyerarşisi oluştururlarve alt sınıfların hepsinde üst sınıfın arayüzü ortaktır.Her alt sınıf aynı zamanda birer üst sınıftır ve üst sınıf olarakkullanılabilirler.ciz()sil()SekilDogruDikdortgenDaire...ciz()sil()ciz()sil()ciz()sil()...ciz()sil()Örnek bir geometrik şekil sınıf hiyerarşisiGörsel <strong>Programlama</strong> - Ders02/ 22


Çok Şekillilik (Polimorphism)Burada “Dogru bir şekildir”, “Daire bir şekildir” diyebiliriz.Görsel <strong>Programlama</strong> - Ders02/ 23


Çok Şekillilik (Polimorphism)Görsel <strong>Programlama</strong> - Ders02/ 24


Çok Şekillilik (Polimorphism)Aşağıda tanımlanan sınıfın metotlarına istenilen Şekil nesnesini(Dogru,Dikdortgen, Daire,...) gönderebiliriz. Hangisini çalışacağına Java programçalışırken karar verir ve çalıştırır.Görsel <strong>Programlama</strong> - Ders02/ 25


Çok Şekillilik (Polimorphism)Uygulama:Bu şekilde gelen soyut sınıflardan hangisinin metodunun çalıştırılacağına kararverme işlemine dinamik bağlama (dynamic binding) denilir.Görsel <strong>Programlama</strong> - Ders02/ 26


Soyut Sınıflar (Abstract Class) ve SoyutMetotlar (Abstract Methods)Soyut (abstract) kelimesi ile oluşturulurlar.Bu şekilde tanımlanan metotlar sadece tanımlanırlar, içlerine kodyazılmaz.Bu metotların kodları kalıtım ile oluşturulmuş olan alt sınıflardayazılır.Soyut sınıf kullanılarak nesne oluşturulamaz. Bu sınıflar sadecebir soyutlama sağlayarak alt sınıflar için bir ortak arayüzsağlama amacıyla geliştirilirler.Görsel <strong>Programlama</strong> - Ders02/ 27


Örnek;Soyut Sınıflar (Abstract Class) ve SoyutMetotlar (Abstract Methods)Sekil2 sekil1= new Sekil2(); X YAPILAMAZ!!!Görsel <strong>Programlama</strong> - Ders02/ 28


Arayüzler (Interfaces)Arayüzler veri soyutlamanın gelişmiş şeklidir. Özellikleri :1-Soyut sınıflar gibi metotlar gerçekleştirilmemiştir.2-Bütün alanlar belirtilmese de public,static ve final dır.3-Bütün alanlar ve metotlar (public) olmalıdır.4-Bütün metotlar abstract ve public tir.Görsel <strong>Programlama</strong> - Ders02/ 29


Arayüzler (Interfaces)Java dilinde çoklu kalıtım (multi inheritance) yoktur. Her sınıfsadece tek bir sınıftan kalıtım yolu ile üretilebilir. Gerçek hayattafarklı nesnelerin ortak özellikleri olabilir yani farklı farklı sınıflarlaortak özellikleri olabilir.Bu durumda arayüzler (interface) kullanılarak çoklu kalıtımsağlanabilir. Arayüzlerin tanımlanmasıda sınıflara benzer fakatarayüzler birden fazla arayüzden kalıtım yolu ile çoğaltılabilirler.Görsel <strong>Programlama</strong> - Ders02/ 30


Arayüzler (Interfaces)public interface Arayüzismi [extends Ust Arayuzler]{//Arayuz Govdesi}Görsel <strong>Programlama</strong> - Ders02/ 31


Arayüzler (Interfaces)Görsel <strong>Programlama</strong> - Ders02/ 32


Arayüzler (Interfaces)Görsel <strong>Programlama</strong> - Ders02/ 33


Arayüzler (Interfaces)Görsel <strong>Programlama</strong> - Ders02/ 34


Görsel <strong>Programlama</strong>DERS 02Görsel <strong>Programlama</strong> - Ders02/ 35

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!