Java Eğitimi - Bolum 5
Transcript of Java Eğitimi - Bolum 5
Snflarn Tekrardan Kullanlmas
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
1
ki Yntem
Komposizyon (Composition) Kaltm (Inheritance)
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
2
Komposizyon(Composition)
class Meyva { //... }class Elma { private Meyva m = new Meyva(); //... }
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
3
Komposizyon - UML
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
4
rnek
Motor.java AileArabasi.java
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
5
ekil
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
6
Ku Bak
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
7
rnek
Voltran.java
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
8
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
9
Kaltm (Inheritance)
class Kedi { //.. } class Kaplan extends Kedi { //.. }
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
10
Kaltm - UML
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
11
rnek
KediKaplan.java
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
12
Gizli Kaltm
YeniBirSinif.java
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
13
Gizli Nokta
public class YeniBirSinif extends Object {
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
14
Nesne yordamlar (methods) clone() : Bu nesnenin aynsn klonlar. equals(Object obj) : obj nesnesi , bu nesneye eit mi kontrol yapar. finalize() : lgili nesne bellekten silinmeden hemen nce arlan yordam. getClass() : Bu nesnenin alma annda snf bilgilerini geri dner . hashCode() : Bu nesnenin hash kodunu geri dner . notify() : Bu nesnenin bekleme havuzunda olan tek i paracn (thread) uyandrr. (ilerleyen blmlerde inceleyeceiz) notifyAll() : Bu nesnenin bekleme havuzundaki tm i paracklarn uyandrr. (ilerleyen blmlerde inceliyeceiz) toString() : Bu nesnenin String tipinden ifadesini geri dner . wait() : O andaki i paracnn (thread) beklemesini salar; bu bekleme notify() veya notifyAll() yordamlar sayesinde sona erer. wait (long timeout) : O andaki i paracnn belirtilen sre kadar beklemesini salar; bu bekleme notify()veya notifyAll() yordamlar sayesinde de sona erebilir. wait (long timeout , int nanos) : O andaki i paracnn belirtilen gerek sre kadar beklemesini salar ; bu bekleme notify() veya notifyAll() yordamlar sayesinde de sona erebilir.Java ve Yazlm Tasarm - Blm 5 15
Altu B. Altnta 2003
Kaltm-UML
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
16
Kaltm ve ilk deer alma sras
IlkDegerVermeSirasi.java
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
17
Kaltm-UML
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
18
Paremetre alan yaplandrclar ve kaltm
IlkDegerVermeSirasiParametreli.java
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
19
IlkDegerVermeSirasiParametreli.java-hatalclass 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); } } Altu B. Altnta 2003 Java ve Yazlm Tasarm - Blm 5 20
Kompozisyon mu ? Kaltm m ?
Hangi yntemi ne zaman tercih etmeliyiz ? Kompozisyon(Composition) Kaltm (Inheritance)
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
21
Komposizyon
Araba.java
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
22
Kaltm
Snflar arasnda bir ilikisi olmaldr. UanYarasa bir Yarasadr. Yarasa bir Hayvandr . O zaman UanYarasa da bir Hayvandr. Hayvan da bir Nesnedir.
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
23
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
24
ptal etmek (Overriding)
Tremi snflarn, ana snflar ierisindeki yordamlar (methods) iptal edilebilir. KitapEvi.java (dz) KitapEvi2.java (iptal eden)
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
25
Eriim Belirleyiciler ve ptal etme (Override)
public protected friendly private Telefonlar.java (Yanl) Hesap.java (Doru)
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
26
ptal etmek(Overriding) ve ada yordamlarn(Overload) birbirlerine kartrlmas
Bu iki kavram birbirlerine kolaylkla kartrlabilir. CalisanMudur.java
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
27
Yukar evirim (Upcasting)
Spor.java
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
28
Yukar evirim (Upcasting)-UML
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
29
Final Kavram
Final kelimesinin szlk anlam "son" demektir . Java programlama dilinde final anahtar kelimesi deitirilemezlii simgeler.
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
30
Global Alanlar ve Final Kavram
Derleme annda deerlerini bilebildiimiz final global alanlar. alma annda deerlerini bilebildiimiz final global alanlar.
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
31
rnek
FinalOrnek.java
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
32
Final parametreler
FinalParametre.java
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
33
Bo (Blank) Final
BosFinal.java
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
34
Final Yordamlar
final yordamlar tretilmi snflar tarafndan iptal edilemezler (override). FinalMetod.java
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
35
private ve final
final ve private eriim belirleyicisine sahip olan bir yordam, baka bir yordam tarafndan iptal ediliyormu gibi gzkebilir. SivilPolis.java
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
36
Final Snflar
final snflardan tretilme yaplamaz! Tv.java
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
37
Kaltm (Inheritance ) ve ilk deer alma sras
Bocekcik.java
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
38
Sorular ...
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 5
39