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

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

SINIFLARIN TEKRAR KULLANILMASI

Nesne Yönelimli Programlama

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 6

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

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

SINIFLARIN TEKRAR KULLANILMASI

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

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

Java Dersi. Altuğ Bilgin Altıntaş

7. HAFTA. Erişim Belirleyiciler

Erişim konusunda iki taraf vardır:

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 9

İş Parçacıkları (Threads)

/*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)

BİL-141 Bilgisayar Programlama I (Java)

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

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 )

Nesne Yönelimli Programlama

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

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ı

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

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

İ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

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

İç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.

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

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

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

4.Hafta. this Anahtar Sözcüğü

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

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

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

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

MOBIL UYGULAMA GELIŞTIRME

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

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

Başlangıç Durumuna Getirme ve Temizlik

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.

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 3

Nesne Yönelimli Programlama

Nesneye Dayalı Programlama

İŞ PARÇACIKLARI (THREADS)

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

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

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

Ders 8 Konu Özeti ve Problemler

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

public static int Toplam int x, int y

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

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

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.

Java da Program Denetimi ve Operatörler. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 2 1

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

Sunum İçeriği. Programlamaya Giriş

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>

İstisnalar (Exceptions) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 8 1

Dizi ( Array ) ve Dizgi ( String )

YZM 2105 Nesneye Yönelik Programlama

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

BMH-303 Nesneye Yönelik Programlama

HSancak Nesne Tabanlı Programlama I Ders Notları

Nesneler için torbalar (Collections) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 12 1

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

Java Programlama Güz Dönemi CLASS YAPISI

Programlama Dillerinde Kullanılan Veri Tipleri

Yeni G/Ç (new I/O) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 10 1

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

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

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

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

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

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

Chain of Responsibility Tasarım Şablonu KurumsalJava.com

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

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.

Transkript:

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

İki Yöntem Komposizyon (Composition) Kalıtım (Inheritance) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 2

Komposizyon(Composition) class Meyva { } //... class Elma { } private Meyva m = new Meyva(); //... Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 3

Komposizyon - UML Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 4

Örnek Motor.java AileArabasi.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 5

Şekil Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 6

Kuş Bakışı Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 7

Örnek Voltran.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 8

Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 9

Kalıtım (Inheritance) class Kedi { //.. } class Kaplan extends Kedi { //.. } Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 10

Kalıtım - UML Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 11

Örnek KediKaplan.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 12

Gizli Kalıtım YeniBirSinif.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 13

Gizli Nokta public class YeniBirSinif extends Object { Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 14

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. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 15

Kalıtım-UML Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 16

Kalıtım ve ilk değer alma sırası IlkDegerVermeSirasi.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 17

Kalıtım-UML Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 18

Paremetre alan yapılandırıcılar ve kalıtım IlkDegerVermeSirasiParametreli.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 19

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ı!this gibi ilk olmali } } class Hacker extends ZekiInsan{ public Hacker(int par) { System.out.println("Hacker Yapilandiricisi " + par); super(par+1); //! hatalı!this gibi ilk olmali } public static void main(string args[]) { Hacker hck = new Hacker(5); } } Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 20

Kompozisyon mu? Kalıtım mı? Hangi yöntemi ne zaman tercih etmeliyiz? Kompozisyon(Composition) Kalıtım (Inheritance) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 21

Komposizyon Araba.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 22

Kalıtım Sınıflar arasında bir ilişkisi olmalıdır. UçanYarasa bir Yarasadır. Yarasabir Hayvandır. O zaman UçanYarasa da bir Hayvandır. Hayvan da bir Nesnedir. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 23

Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 24

İ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) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 25

Erişim Belirleyiciler ve İptal etme (Override) public protected friendly private Telefonlar.java (Yanlış) Hesap.java (Doğru) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 26

İ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 Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 27

Yukarı Çevirim (Upcasting) Spor.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 28

Yukarı Çevirim (Upcasting)-UML Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 29

Final Kavramı Final kelimesinin sözlük anlamı "son" demektir. Java programlama dilinde final anahtar kelimesi değiştirilemezliği simgeler. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 30

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. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 31

Örnek FinalOrnek.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 32

Final parametreler FinalParametre.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 33

Boş (Blank) Final BosFinal.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 34

Final Yordamlar final yordamlar türetilmiş sınıflar tarafından iptal edilemezler (override). FinalMetod.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 35

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 Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 36

Final Sınıflar final sınıflardan türetilme yapılamaz! Tv.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 37

Kalıtım (Inheritance ) ve ilk değer alma sırası Bocekcik.java Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 38

Sorular... Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 5 39