İki Yöntem. Komposizyon (Composition) Kalıtım (Inheritance)



Benzer belgeler
Sınıfların Tekrardan Kullanılması. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 1

SINIFLARIN TEKRAR KULLANILMASI

Nesne Yönelimli Programlama

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 6

Ana sınıf içerisinde tanımlanmış bir yordam, ana sınıftan türeyen bir alt sınıfın içerisinde iptal edilebilir. ()

SINIFLARIN TEKRAR KULLANILMASI

Arayüz (Interface) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 7 1

SINIFLARIN TEKRAR KULLANILMASI

PAKET ERİŞİMLERİ SINIFLARIN YENİDEN KULLANIMI. BMU-112 Algoritma ve Programlama-II Yrd. Doç.Dr. İlhan AYDIN

7. HAFTA. Erişim Belirleyiciler

Paket Erişimleri. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1

Erişim konusunda iki taraf vardır:

Java Dersi. Altuğ Bilgin Altıntaş

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 9

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

NESNEYE DAYALI PROGRAMLAMA 9. HAFTA UYGULAMA DERSİ

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1

İlgili Konular: Object.equals(java.lang.Object), Object.hashCode(), rehash(), Collection, Map, HashMap, TreeMap, Serialized Form

CharArrayReader. Kılgıladığı Arayüzler: Bildirimi: Değişkenleri (fields): java.io.reader Sınıfından Kalıtsal Gelen Değişken:

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

POLIMORFIZM. Java ve Yazılım Tasarımı ; Bölüm- 6. Örnek: PolimorfizmOrnekBir.java (yorum ekle)

İş Parçacıkları (Threads)

BMÜ-112 ALGORİTMA VE PROGRAMLAMA-II LABORATUARI DENEY-2 FÖYÜ

BİL-141 Bilgisayar Programlama I (Java)

Kılgıladığı arayüzler: Serializable, Cloneable, Map<K,V>, NavigableMap<K,V>, SortedMap<K,V>

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 7

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

Class PriorityQueue. Class PriorityQueue<E> java.lang.object java.util.abstractcollection<e> java.util.abstractqueue<e> java.util.

Java Class Yapısında Finalize Metotunun Kullanımı

Nesne Yönelimli Programlama

Class LinkedHashMap. Class LinkedHashMap java.lang.object java.util.abstractmap java.util.hashmap java.util.linkedhashmap. Kılgıladığı arayüzler:

Polimorfizm. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 6 1

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 2 DERSİ LAB. ÖDEVİ

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58;

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF

Hata Ayıklamanın Ötesi... (Assertion) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 14 1

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Kapsülleme ( Encapsulation ) BBS-515 Nesneye Yönelik Programlama

Class Vector. Class Vector java.lang.object java.util.abstractcollection java.util.abstractlist java.util.vector. Kılgıladığı arayüzler:

İçerik. Kapsülleme ( Encapsulation ) Java da Kalıtım: Örnek 2.1. Kalıtım ( Inheritance ) Tekrar Ziyaret. Java da Kalıtım: Örnek 2.2.

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

Class HashMap. Class HashMap java.lang.object java.util.abstractmap java.util.hashmap. Kılgıladığı Arayüzler: Cloneable, Map, Serializable

Đlgili konular: Collection, Set, HashSet, Comparable, Comparator, TreeMap, Collections.synchronizedSortedSet(SortedSet), Serialized Form

ByteArrayOutputStream

İST 264 VERİ YAPILARI Bitirme Sınavı A Grubu

Kalıtım (Inheritance)

BİL132 Bilgisayar Programlama II

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi

Bire-bir Sahiplik İlişkisi ile İlgili Sorular:

MOBIL UYGULAMA GELIŞTIRME

Görsel Programlama DERS 11. Görsel Programlama - Ders11/ 1

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 3

Nesne Yönelimli Programlama

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

Nesneye Dayalı Programlama

İŞ PARÇACIKLARI (THREADS)

Başlangıç Durumuna Getirme ve Temizlik. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 3 1

Java ve Yazılım Tasarımı ; Bölüm- 4 PAKET ERİŞİMLERİ

Ders 8 Konu Özeti ve Problemler

Interface Comparator. Kılgılayan sınıf: Collator. Bildirimi: public interface Comparator

public static int Toplam int x, int y

İÇİNDEKİLER VII İÇİNDEKİLER

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir;

Java String İşlemleri

J A V A D A P R O G R A M D E N E T İ M İ V E O P E R A T Ö R L E R

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır.

Yazılım Kodlama ve İ simlendirme Standartları v1.0

BufferedReader. Kılgıladığı Arayüzler: Closeable, AutoCloseable, Readable. Altsınıfları: LineNumberReader. Bildirimi: public class BufferedReader

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 4. Yrd.Doç.Dr.Hacer Karacan

Scanner Sınıfı. Class Scanner. java.util. java.lang.object java.util.scanner. Kılgıladığı Arayüzler: Closeable, AutoCloseable, Iterator<String>

Sunum İçeriği. Programlamaya Giriş

YZM 2105 Nesneye Yönelik Programlama

Dizi ( Array ) ve Dizgi ( String )

HSancak Nesne Tabanlı Programlama I Ders Notları

BMH-303 Nesneye Yönelik Programlama

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

protected Reader() Karekter akımı okumak için Reader nesnesi yaratır. Yaratılan nesne kendi kendisiyle eşzamanlı olur.

Java Programlama Güz Dönemi CLASS YAPISI

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI)

JAVA DA GİRİŞ/ÇIKIŞ İŞLEMLERİ. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 9 1

Chain of Responsibility Tasarım Şablonu KurumsalJava.com

Programlama Dillerinde Kullanılan Veri Tipleri

DATA STRUCTURES. Part III. Sınıflar, Nesneler ve İlgili Programlama Örnekleri

Sınıf üyeleri: değişkenler (fields) and metotlar (methods) Değişkenler: nesne içerisindeki değişkenlerdir Temel veri tipi veya sınıf tipi

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama

CBÜ Teknoloji Fakültesi, Yazılım Mühendisliği. Nesneye Yönelik Programlama

GÜZ DÖNEMİ AKT105 BİLGİSAYAR PROGRAMLAMA DERSİ 9. UYGULAMA

Dizi türündeki referanslar, dizi nesnelerine bağlanmaktadır. Dizi referansları tanımlamak bu dizinin hemen kullanılacağı anlamına gelmez...

3.1. Başlangıç Durumuna Getirme İşlemi ve Yapılandırıcılar (Initialization and Constructor)

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

BMH-303 Nesneye Yönelik Programlama

İl İlçe uygulaması. : Seçilen ile ait ilçeleri listeleyen program. //İl değişkeni için kodu aşağıdaki sayfadan kopyalayınız.

RSA ANAHTAR DAĞITIMI VE RSA İLE DİJİTAL İMZA OLUŞTURMA

Sınıflar ve Yapılar Arasındaki Farklılıklar. Değer ve Referans Türde Olan Aktarımlar

NESNEYE DAYALI YAZILIM GELİŞTİRME

C++ ile Nesneye Dayalı Programlama

Transkript:

İki Yöntem Komposizyon (Composition) Kalıtım (Inheritance)

Komposizyon(Composition) class Meyva { } //... class Elma { } private Meyva m = new Meyva(); //...

Komposizyon - UML

Örnek Motor.java AileArabasi.java

Şekil

Kuş Bakışı

Örnek Voltran.java

Kalıtım class Kedi { //.. } class Kaplan extends Kedi { //.. }

Kalıtım - UML

Örnek KediKaplan.java

Gizli Kalıtım YeniBirSinif.java

Gizli Nokta public class YeniBirSinif extends Object {

Nesne yordamları (methods) clone() : Bu nesnenin aynısını klonlar. equals(object obj) : obj nesnesi, bu nesneye eşit mi kontrolü yapar. finalize() : İlgili nesne bellekten silinmeden hemen önce çağrılan yordam. getclass() : Bu nesnenin çalışma anında sınıf bilgilerini geri döner. hashcode() : Bu nesnenin hash kodunu geri döner. notify() : Bu nesnenin bekleme havuzunda olan tek iş parçacığını (thread) uyandırır. (ilerleyen bölümlerde inceleyeceğiz) notifyall() : Bu nesnenin bekleme havuzundaki tüm iş parçacıklarını uyandırır. (ilerleyen bölümlerde inceliyeceğiz) tostring() : Bu nesnenin String tipinden ifadesini geri döner. wait() : O andaki iş parçacığının (thread) beklemesini sağlar; bu bekleme notify() veya notifyall() yordamları sayesinde sona erer. wait (long timeout) : O andaki iş parçacığının belirtilen süre kadar beklemesini sağlar; bu bekleme notify()veya notifyall() yordamları sayesinde de sona erebilir. wait (long timeout, int nanos) : O andaki iş parçacığının belirtilen gerçek süre kadar beklemesini sağlar ; bu bekleme notify() veya notifyall() yordamları sayesinde de sona erebilir.

Kalıtım-UML

Kalıtım ve ilk değer alma sırası IlkDegerVermeSirasi.java

Kalıtım-UML

Paremetre alan yapılandırıcılar ve kalıtım IlkDegerVermeSirasiParametreli.java

IlkDegerVermeSirasiParametreli.java-hatalı class Insan { public Insan(int par) { System.out.println("Insan Yapilandiricisi " + par); } } class ZekiInsan extends Insan { public ZekiInsan(int par) { System.out.println("ZekiInsan Yapilandiricisi " + par); super(par+1); //! hatalı! } } class Hacker extends ZekiInsan{ public Hacker(int par) { System.out.println("Hacker Yapilandiricisi " + par); super(par+1); //! hatalı! } public static void main(string args[]) { Hacker hck = new Hacker(5); } }

Kompozisyon mu? Kalıtım mı? Hangi yöntemi ne zaman tercih etmeliyiz? Kompozisyon(Composition) Kalıtım (Inheritance)

Komposizyon Araba.java

Kalıtım Sınıflar arasında bir ilişkisi olmalıdır. UçanYarasa bir Yarasadır. Yarasa bir Hayvandır. O zaman UçanYarasa da bir Hayvandır. Hayvan da bir Nesnedir.

İptal etmek (Overriding) Türemiş sınıfların, ana sınıflar içerisindeki yordamları (methods) iptal edilebilir. KitapEvi.java (düz) KitapEvi2.java (iptal eden)

Erişim Belirleyiciler ve İptal etme (Override) public protected friendly private Telefonlar.java (Yanlış) Hesap.java (Doğru)

İptal etmek(overriding) ve adaş yordamların(overload) birbirlerine karıştırılması Bu iki kavram birbirlerine kolaylıkla karıştırılabilir. CalisanMudur.java

Yukarı Çevirim (Upcasting) Spor.java

Yukarı Çevirim (Upcasting)-UML

Final Kavramı Final kelimesinin sözlük anlamı "son" demektir. Java programlama dilinde final anahtar kelimesi değiştirilemezliği simgeler.

Global Alanlar ve Final Kavramı Derleme anında değerlerini bilebildiğimiz final global alanlar. Çalışma anında değerlerini bilebildiğimiz final global alanlar.

Örnek FinalOrnek.java

Final parametreler FinalParametre.java

Boş (Blank) Final BosFinal.java

Final Yordamlar final yordamlar türetilmiş sınıflar tarafından iptal edilemezler (override). FinalMetod.java

private ve final final ve private erişim belirleyicisine sahip olan bir yordam, başka bir yordam tarafından iptal ediliyormuş gibi gözükebilir. SivilPolis.java

Final Sınıflar final sınıflardan türetilme yapılamaz! Tv.java

Kalıtım (Inheritance ) ve ilk değer alma sırası Bocekcik.java