KALITIM(INHERITANCE) Öğr.Gör. Murat ASLANYÜREK. KALITIM KAVRAMINA GİRİŞ  Kalıtım, sınıflardan yeni sınıflar türetmeyi sağlar.  Türetilen yeni sınıflar,

Slides:



Advertisements
Benzer bir sunumlar
C# - Metotlar.
Advertisements

Nesnelerin Özellikleri. - Üye nesneler - friend belirtesi - Nesnelerin operatörlere yüklenmesi - this yerel (lokal) değişkeni - inline tanımlı üye fonksiyonlar.
Tuğba DEMİREL
NESNEYE YÖNELİK PROGRAMLAMA SINIFLAR
Zeynep Çelik Sunar….
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
Programlama-II (Java ile Bilgisayar Programlama)
Nesneye Dayalı Programlama
Erişim Kontrolü.  Değişebilir / Değişemez yapılar  Çok programcının dahil olduğu projeler  Kütüphaneler  Çözüm  Konvansiyonlar  Erişim kontrol sözcükleri.
Polymorphism.  Bir işlem birden fazla tip üzerinde çalışabilir  Metot temel tip arayüzünü kullanır  İşlem çalışan metot tarafından yapılır.
Miras Alma EM-406 Java.
Sarma (Encapsulation) / Kalitim (Inheritance) /Final Terimleri
BPR152 ALGORİTMA VE PROGRAMLAMA - II
P AKET E RIŞIMLERI SıNıFLARıN YENIDEN KULLANıMı. P AKET ( P ACKAGE ) Paketler kütüphaneleri oluşturan elemanlardır. import java.io.BufferedReader; BufferedReader.
KOPYA YAPICI FONKSİYON, STATİK ELEMANLAR, ARKADAŞ SINIF VE FONKSİYONLAR, NESNE DİZİLERİ Yılmaz Kılıçaslan.
Sınıfların Tekrardan Kullanılması
Nesne Tabanlı Programlama
Nesneye Yönelik Programlama Dr. Pelin GÖRGEL
SINIFLAR GİRİŞ Yılmaz Kılıçaslan.
NESNEYE YÖNELİK PROGRAMLAMA
DİZİLER.
DELEGATE OOP-UYG.
Erişim Denetimi, Fonksiyon
NESNE TABANLI PROGRAMLAMA -METOTLAR-
Önemli noktalar Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ DERLEYENLER: Ahmet Can ÇAKIL Ali Murat GARİPCAN Özgür AYDIN Şahin KARA KONTROL : Prof. Dr. Asaf VAROL KONU : KAPSÜLLEME.
METODLAR.
METODLAR Canan Işıl. 1 İçindekiler Açıklamalar, Örnekler, Sorularınız? Kaynakça, Teşekkürler..
C#.NET 5.0 C# .NET 5.0 Eğitimleri Volkan KANAT.
NESNE YÖNELİMLİ PROGRAMLAMA
Metotlar.
SABİT NESNE VE ELEMAN FONKSİYONLAR VE ELEMAN NESNELER
METOTLAR.
ÇOK BİÇİMLİLİK POLYMORPHISM
Önceki Dersi Hatırlama !!
Chapter 8: Advanced Method Concepts
Kalıtım.
JAVA’DA DÖNGÜLER.
Numaralandırmalar(Enumaration)
Kalıtım , Sınıf Asli Ergün.
Polimorfizm.
Demet AYDIN METODLAR Demet AYDIN
Sınıflar ve Nesneler Sınıf: bir nesnenin şablonunu, kalıbını, şeklini, davranışını, kalıtımını değişkenleri, metodları ve ebeveynleri vasıtasıyla tanımlar.
Trees, Vectors, Iterators. ADT Abstract Data Type (ADT) vs implementation -Soyut Veri Türleri - Uygulamaları.
KALITIM Yılmaz Kılıçaslan.
Bil 102 Bölüm 6 Diziler.
 this anahtar sözcüğü, içinde bulunulan nesneye ait bir referans döndürür; bunun sayesinde nesnelere ait global alanlara erişme fırsatı bulunur. Şöyle.
ODTU-SEM Copyright (c) 2011 Kalıtım(Inheritance) Subclass lar tüm method ve attributes larının superclass ından alırlar. Bu işlem için extends keyword.
SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz
BSM447 – MOBİL UYGULAMA GELİŞTİRME Öğr. Gör. Nevzat TAŞBAŞI 7. Hafta.
BİLGİSAYAR programlama II
Sayfa Ayarlari Projelerimizde uzerinde yogunlasacagimiz dosyalar Java ve XML dosylari olacaktir.
10. NESNEYE YÖNELİK PROGRAMLAMA Öğr.Gör. Murat ASLANYÜREK.
Sakarya Üniversitesi Bilgisayar ve Bilişim Bilimleri Fakültesi Bilgisayar Mühendisliği Prof. Dr. Ümit Kocabıçak Prof. Dr. Cemil Öz Doç. Dr. Ahmet Turan.
JAVA 1. GİRİŞ & TARİHÇE Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmıştır. Açık kodlu. Nesneye yönelik. Düzlemden.
ARAYÜZLER(INTERFACE) Öğr.Gör. Murat ASLANYÜREK. ARAYÜZ KAVRAMINA GİRİŞ  Arayüzler, soyut sınıflara benzer. Ancak yapı olarak bazı yönleriyle farklılıklar.
İbrahim Olgaç PROGRAMLAMA DİLLERİ SUNUMU C#
Fonksiyonlar ve Diziler
SOYUT(ABSTRACT) SINIFLAR METODLAR
C Programlama Yrd.Doç.Dr. Ziynet PAMUK BMM211-H11
Nesneye Dayalı Kavramlar Uygulama 2
Nesneye Dayalı Programlama Temel Kavramlar Hüseyin ESKİ.
Bilgisayar Bilimi Problem Çözme Süreci-2.
Nesneye Dayalı Programlama 1
NİŞANTAŞI ÜNİVERSİTESİ
Nesneye Dayalı Programlama 1
ÇOK BİÇİMLİLİK(POLYMORPHİSM)
MTM216 GÖRSEL PROGRAMLAMA
NİŞANTAŞI ÜNİVERSİTESİ
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
Sunum transkripti:

KALITIM(INHERITANCE) Öğr.Gör. Murat ASLANYÜREK

KALITIM KAVRAMINA GİRİŞ  Kalıtım, sınıflardan yeni sınıflar türetmeyi sağlar.  Türetilen yeni sınıflar, türetildiği sınıfların özelliklerine sahip olur.  Örneğin, Araç sınıfından Otomobil sınıfı türetilirse Otomobil sınıfı Araç sınıfının özelliklerini alır, ancak tam tersi durum doğru değildir.  Kalıtım yapmak için kullanılacak kelime extends ’dir.

KALITIM KAVRAMINA GİRİŞ  Yukarıdaki gibi Surungen sınıfındaki elemanlar Hayvan sınıfının elamanlarını miras almış oldu. Hayvan sınıfından extends ile bir sınıf daha oluşturulabilir ancak bir sınıf birden fazla sınıftan türetilemez.  Not: Kalıtımın en büyük avantajı üst sınıftaki metod ve değişkenleri tekrar yazmaktan kurtarmasıdır.

SUPER CLASS(ÜST SINIF) VE SUB CLASS(ALT SINIF) KAVRAMLARI  Otomobil adında bir sınıfımız olsun. Yarış otomobili ve aile otomobili sınıfları, Otomobil sınıfının alt sınıflarıdır(Sub-Class). Otomobil sınıfı da bu sınıfların üst sınıfıdır(Super-Class).  Alt sınıflar üst sınıfların tüm özelliklerine sahiptir.  Alt sınıf, üst sınıfın bir metodunu değiştirebilir. Buna metod overriding denir.  Not: Bir super sınıfın birden fazla alt(sub) sınıfı olabilir. Fakat bir alt sınıf, birden fazla super sınıftan türetilemez.

SUPER CLASS(ÜST SINIF) VE SUB CLASS(ALT SINIF) KAVRAMLARI

 Not: Eğer super class’da private elamanlar varsa sub class’lardan erişilemez.

SUPER METODU İLE ÜST SINIFIN YAPICISINI ÇAĞIRMAK  Türetilen sınıf, türeyen sınıfın yapıcısına erişmek isterse super anahtar kelimesi kullanılır.  A sınıfından B sınıfını türetmiş olalım. B sınıfının yapıcısının içerisinde super() metodunu çağırırsak, A sınıfın yapıcısı çağrılmış olur.  Not: super() metodu ilk sırada yazılmalıdır.

SUPER METODU İLE ÜST SINIFIN YAPICISINI ÇAĞIRMAK

 super anahtar kelimesi ayrıca nesne değişkenlerine erişmemizi sağlar.  Super anahtar kelimesi this anahtar kelimesine benzer. Farkı super anahtar kelimesiyle üst sınıftaki elemalara erişebilirken this anahtar kelimesiyle içinde bulunduğu sınıfın elamanına erişilebilir.

METOD OVERRIDING  Türetilen sınıf türediği sınıfın özelliklerini taşıyor ve kullanabiliyor, fakat miras aldığı bu metodları aynen kullanmak istemezse overriding ile metodu değiştirebilir.

METOD OVERRIDING  Not: Bir metod override edilebilmesi için belli başlı kurallar vardır. Her metod override edilemez.  1. Override edilecek metodların dönüş tipi, metod adı, parametre listeleri aynı olmalıdır.  2. Alt sınıftaki override edilecek metodun erişim belirleyicisi, üst sınıftaki override edilen metodun erişim belirleyicisinden daha yüksek derecede olmalı.  overloading ve overriding arasındaki fark: Overriding’de metod adı, parametreler, tipler aynı olmak zorundadır. Overloading’te parametre sırası, veya tipleri veya sayısından en az biri farklı olmalıdır.

toString Metodunun Override Edilmesi  toString() metodu, nesnelerin metin karşılıklarının ekrana yazdırılması için kullanılır. toString() metodu Object sınıfı altında tanımlanmıştır yani her sınıf toString() metoduna erişip bu metodu kullanabilir.  Nesnenin metin karşılığı yoksa toString() metodu, nesnenin sınıf ismini ve hafızadaki referansını geriye dödürür.

toString Metodunun Override Edilmesi  Not : Eğer bir nesneği ekrana yazdırdığımızda Object sınıfındaki toString() metodunun çalıştırılmasını ve sınıf ismini, referansını gönderilmesini istemiyorsak, bu metodu override edip kendimize göre düzenlemeliyiz.

FINAL ANAHTAR KELİMESİ  final anahtar kelimesi Java’da temelde sabitler tanımlamaya yarar. ( Pi sayısı)  final anahtar kelimesi sadece değişkenlere değil ayrıca sınıflara, metodlara ve parametrelere uygulanabilir.  Bir sınıfı final olarak tanımlarsak bu sınıftan türetme yapamayız.  Bir metodu final olarak tanımlarsak bu metodlar override edilemezler.  Bir parametreyi final olarak tanımlarsak bu parametrenin değerini değiştiremeyiz.  Bir değişkeni final olarak tanımlarsak bu değişkenin değerini değiştiremeyiz.

Final ile Sabit Tanımlama  Final değişkenler ilk değeri atanmadan kullanılamazlar. Normalde bir değişken tanımlanıp değeri verilmediğinde default değere sahip olurdu. Fakat final değişkenlerinde değer tanımlamasak hata ile karşılaşırız.  Final değişkeni ilk değeri tanımlandığı ilk anda ya da yapıcılar içerisinde verilmelidir. Metodlar içerisinde final tanımlarsak, başka satırda ilk değer verilebilir.

Final ile Sabit Tanımlama  Final anahtar kelimesiyle tanımlanmış değişkenlerin değeri, programın herhangi bir yerinde değiştirilemez.

Final ile Sabit Tanımlama  Metod içerisinde final tanımlarsak, ilk değer atamasını başka bir satırda yapabiliriz.  Final değişkenler aynı zamnda static olabilir. Tüm sınıf öğeleri bu değişkeni ortam olarak kullanırlar ve değiştiremezler.  public static final int x=6;

Final ile Metodların Override Edilmesini Engelleme  Metodları final olarak tanımlarsak, bu metodlar override edilemezler.

Final ile Parametrelerin Değerinin Değişmesini Engelleme  Final parametreleri, bir metoda gönderdiğimiz parametrelerin değişmesini istemediğimiz durumlarda kullanılır.

Final ile Sınıfların Kalıtımını Engelleme  Final sınıflar’dan başka sınıflar türetilemez.

UPCASTING VE DOWNCATING KAVRAMLARI Omurgalı  Object – Canlı – Hayvan – Omurgasiz Downcasting Upcasting

UPCASTING VE DOWNCATING KAVRAMLARI

 Bir başka yazım şekli.  Referans olarak belirlediğimiz sınıfa doğru cast işlemi yapıldı. Upcasting yaparken bunu yapmak zorunda değiliz. Ancak Downcasting işleminde bu zorunludur.

UPCASTING VE DOWNCATING KAVRAMLARI