Java Programlama Dili - 02 Class'larla Programlama BU-SWE 510BU-SWE 510 Fall 2003Fall 2003 Dr. Haluk Bingöl BÜ - CmpE

Slides:



Advertisements
Benzer bir sunumlar
8. SINIF 3. ÜNİTE BİLGİ YARIŞMASI
Advertisements

Programlama-II (Java ile Bilgisayar Programlama)
el ma 1Erdoğan ÖZTÜRK ma ma 2 Em re 3 E ren 4.
Oktay ERBEY CRM & B2B Ürün Satış Hizmet Yöneticisi
41 adımda ahşap inşaat Yapımcı : Y.Orman Müh. Abdullah Arslan Proje : Y.Mim. Çelik Erengezgin.
SCANNER SINIFI ve KLAVYEDEN VERİ OKUNMASI
Değişkenler ve bellek Değişkenler
NOKTA, DOĞRU, DOĞRU PARÇASI, IŞIN, DÜZLEMDEKİ DOĞRULAR
T.C. İNÖNÜ ÜNİVERSİTESİ Arapgir Meslek YÜKSEKOKULU
Eğitim Programı Kurulum Aşamaları E. Savaş Başcı ASO 1. ORGANİZE SANAYİ BÖLGESİ AVRUPA BİLGİSAYAR YERKİNLİĞİ SERTİFİKASI EĞİTİM PROJESİ (OBİYEP)
ASELSAN- TOKİ YAPRACIK KONUTLARI KOORDİNASYON KURULU
Programlama-II (Java ile Bilgisayar Programlama)
Atlayarak Sayalım Birer sayalım
Diferansiyel Denklemler
Microsoft Danışman Öğrenci
1/27 GEOMETRİ (Kare) Aşağıdaki şekillerden hangisi karedir? AB C D.
Algoritmalar En kısa yollar I En kısa yolların özellikleri
Algoritmalar DERS 2 Asimptotik Notasyon O-, Ω-, ve Θ-notasyonları
Yönetim Bilgi Sistemleri Şubat TAPU VE KADASTRO GENEL MÜDÜRLÜĞÜ.
KIR ÇİÇEKLERİM’ E RakamlarImIz Akhisar Koleji 1/A.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
HİSTOGRAM OLUŞTURMA VE YORUMLAMA
Prof. Dr. Leyla Küçükahmet
HAZIRLAYAN:SAVAŞ TURAN AKKOYUNLU İLKÖĞRETİM OKULU 2/D SINIFI
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Mobil Uygulamalar ve Bilgi Hizmetleri Orçun Madran
ÖRNEKLEM VE ÖRNEKLEME Dr.A.Tevfik SÜNTER.
Nesneye Yönelik Programlama Dr. Pelin GÖRGEL
ARALARINDA ASAL SAYILAR
Gün Kitabın Adı ve Yazarı Okuduğu sayfa sayısı
Matematik 2 Örüntü Alıştırmaları.
C# Metot Overloading (Aşırı yükleme)
DOĞUŞ ÜNİVERSİTESİ VI. LİSELERARASI MATEMATİK YARIŞMASI
Java Sınıf ve Nesne Kavramı UML Gösterimi
HABTEKUS' HABTEKUS'08 3.
Anadolu Öğretmen Lisesi
Mukavemet II Strength of Materials II
Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü ++ Bilişim Enstitüsü C ++ Nesne.
Chapter 6: Using Arrays.
© Haluk Bingöl v2.23 Java Programlama Dili - 01 Tek Class ile Programlama Dr. Haluk Bingöl BÜ - CmpE BU-SWE.
ÇOK BİÇİMLİLİK POLYMORPHISM
Yard. Doç. Dr. Mustafa Akkol
Önceki Dersi Hatırlama !!
Diferansiyel Denklemler
Kalıtım.
1 2 3 GÜVENLİK İÇİN ÖNCELİKLE RİSKİ YOK EDİLMELİDİR. RİSKİ YOK EDEMIYORSANIZ KORUNUN KKD; SİZİ KAZALARDAN KORUMAZ, SADECE KAZANIN ŞİDDETİNİ AZALTIR.
Bankacılık sektörü 2010 yılının ilk yarısındaki gelişmeler “Temmuz 2010”
AB SIĞIR VE DANA ETİ PAZAR DURUMU 22 Ekim AB TOPLAM BÜYÜKBAŞ HAYVAN VARLIĞI CANLI HAYVAN May / June SURVEY CANLI HAYVAN May / June SURVEY.
1 (2009 OCAK-ARALIK) TAHAKKUK ARTIŞ ORANLARI. 2 VERGİ GELİRLERİ TOPLAMIDA TAHAKKUK ARTIŞ ORANLARI ( OCAK-ARLIK/2009 )
Çocuklar,sayılar arasındaki İlişkiyi fark ettiniz mi?
Class KahveFincani { public KahveFincani() { System.out.println("KahveFincani..."); } } public class YapilandirciBasitOrnek { public static void main(String[]
Toplama Yapalım Hikmet Sırma 1-A sınıfı.
1/22 GEOMETRİ (Dikdörtgen) Aşağıdaki şekillerden hangisi dikdörtgendir? AB C D.
Ders İçeriği Liste Soyut veri yapısı (ADT)
1.HAFTA 26 Ağustos 2009 ÇARŞAMBA 2.HAFTA 01 EYLÜL 2009 SALI 3.HAFTA 09 EYLÜL 2009 ÇARŞAMBA 4.HAFTA 15 EYLÜL 2009 SALI 5.HAFTA 23 EYLÜL 2009 ÇARŞAMBA 6.HAFTA.
1.HAFTA 26 Ağustos 2009 ÇARŞAMBA 2.HAFTA 01 EYLÜL 2009 SALI 3.HAFTA 09 EYLÜL 2009 ÇARŞAMBA 4.HAFTA 15 EYLÜL 2009 SALI 5.HAFTA 23 EYLÜL 2009 ÇARŞAMBA 6.HAFTA.
ECHİNODERMATA Kambriyen – Güncel tümüyle denizel Filum
SLAYT 1BBY220 OCLC WorldCat Yaşar Tonta Hacettepe Üniversitesi yunus.hacettepe.edu.tr/~tonta/ BBY220 Bilgi Erişim İlkeleri.
ÖĞR. GRV. Ş.ENGIN ŞAHİN BİLGİ VE İLETİŞİM TEKNOLOJİSİ.
Diferansiyel Denklemler
Bölüm 5 Nesneler ve Metotlar
JAVA PROGRAMLAMA ORNEKLER
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.
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.
5- class & object Nesne Yönelimli Programlama - i
Nesneye Dayalı Programlama 1
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
Sunum transkripti:

Java Programlama Dili - 02 Class'larla Programlama BU-SWE 510BU-SWE 510 Fall 2003Fall 2003 Dr. Haluk Bingöl BÜ - CmpE © Haluk Bingöl v2.23

2 meraklisina.comİçerik DerlemeDerleme Field, metodField, metod Nesneye dayalı programlamaNesneye dayalı programlama Uygulama ve AppletUygulama ve Applet

3 meraklisina.com Java’da Nesneye Dayalı Programlama

4 meraklisina.comTipleme

5 CRC Gösterimi HızHız vitesvites pedal çevirme hızıpedal çevirme hızı vites değiştirvites değiştir hızlanhızlan yavaşlayavaşla durdur Bisiklet Class, Responsibility, Collaborators (CRC)

6 meraklisina.comClass Nesnenin tanımı Class olarak yapılırNesnenin tanımı Class olarak yapılır –Class (Hesap) Nesneler Class’ı kopyalayarak elde edilirNesneler Class’ı kopyalayarak elde edilir –Instance (kasaHesabı) Class Nesne 1 instance 2 instance 1

7 meraklisina.com /** * Muhasebe hesabi */ public class Hesap { } Class... bakiyebakiyeHesapClass Hesap class’ıHesap class’ı

8 meraklisina.com /** * Muhasebe hesabi */ public class Hesap { private double bakiye; } Class... bakiyebakiyeHesapClass Hesap class’ıHesap class’ı veriveri –dışardan görünmez

9 meraklisina.com /** * Muhasebe hesabi */ public class Hesap { private double bakiye; public Hesap(double acilisBakiyesi) { bakiye = acilisBakiyesi; } Class... bakiyebakiyeHesapClass Hesap class’ıHesap class’ı veriveri –dışardan görünmez constructorconstructor –parametreli

10 10 meraklisina.com /** * Muhasebe hesabi */ public class Hesap { private double bakiye; /* default constructor */ public Hesap() { this(0.0); } public Hesap(double acilisBakiyesi) { bakiye = acilisBakiyesi; } Class... bakiyebakiyeHesapClass Hesap class’ıHesap class’ı veriveri –dışardan görünmez constructorconstructor –parametreli –default

11 11 meraklisina.comInstance // hesap ac Hesap kasa; kasa = new Hesap(); Değişken tanımıDeğişken tanımı instance yaratmainstance yaratma bakiyebakiye0.0Hesap kasa

12 12 meraklisina.com // hesap ac Hesap kasa; kasa = new Hesap(); // ikinci hesabi ac Hesap banka = new Hesap(9.0); Instance... beraberberaber kasa banka bakiyebakiye9.0Hesap 0.0Hesap

13 13 meraklisina.com Instance... // hesap ac Hesap kasa; kasa = new Hesap(); // ikinci hesabi ac Hesap banka = new Hesap(9.0); // degisken kullan Hesap kullanilanHesap; kullanilanHesap = kasa; Değişkene atamaDeğişkene atama bakiyebakiye9.0Hesap 0.0Hesap kullanilanHesap kasa banka

14 14 meraklisina.com Instance... // hesap ac Hesap kasa; kasa = new Hesap(); System.out.println("bakiye = " + kasa.getBakiye()); // ikinci hesabi ac Hesap banka = new Hesap(9.0); System.out.println("bakiye = " + banka.getBakiye()); // degisken kullan Hesap kullanilanHesap; kullanilanHesap = kasa; System.out.println("bakiye = " + kullanilanHesap.getBakiye()); Veri saklamaVeri saklama –getBakiye() ÇıktıÇıktı –System.out kullanilanHesap bakiyebakiye9.0Hesap kasa bakiyebakiye0.0Hesap bakiye = 0.0 bakiye = 9.0 bakiye = 0.0 banka out

15 15 meraklisina.com Instance... // hesap ac Hesap kasa; kasa = new Hesap(); System.out.println("bakiye = " + kasa.getBakiye()); // ikinci hesabi ac Hesap banka = new Hesap(9.0); System.out.println("bakiye = " + banka.getBakiye()); // degisken kullan Hesap kullanilanHesap; kullanilanHesap = kasa; System.out.println("bakiye = " + kullanilanHesap.getBakiye()); Bütün instance'larda ortak veriBütün instance'larda ortak veri –Hesap numarası kullanilanHesap kasa banka bakiyebakiye9.0Hesap idid2 bakiyebakiye0.0Hesap idid1

16 16 meraklisina.com public class Hesap { private double bakiye; private static int id = 0; public Hesap() { this(0.0); } public Hesap(double acilisBakiyesi) { id++; bakiye = acilisBakiyesi; } /* bakiye al */ public double getBakiye() { return (bakiye); } /* bakiye düzelt */ public void setBakiye(double yeniBakiye) { bakiye = yeniBakiye; } Class Veriye ulaşmakVeriye ulaşmak –getBakiye() Veriyi değiştirmekVeriyi değiştirmek –setBakiye(7.5) bakiyebakiyeHesap idid getBakiye()getBakiye() setBakiye()setBakiye()

17 17 meraklisina.com bakiye id Veri Saklama Veriye ulaşmakVeriye ulaşmak –getBakiye() Veriyi değiştirmekVeriyi değiştirmek –setBakiye(7.5) getBakiye() setBakiye() bakiyebakiyeHesap idid getBakiye()getBakiye() setBakiye()setBakiye()

18 18 meraklisina.com bakiye id Veri Saklama... DışarısıDışarısı –identity –arayüz getBakiye()getBakiye() İçerisiİçerisi –veriler bakiyebakiye –algoritma getBakiye() setBakiye() bakiyebakiyeHesap idid getBakiye()getBakiye() setBakiye()setBakiye() kasa

19 19 meraklisina.com public class Hesap { //private double bakiye; public double bakiye; private static int id = 0; public Hesap() { this(0.0); } public Hesap(double acilisBakiyesi) { id++; bakiye = acilisBakiyesi; System.out.println("hesap açıldı"); } /* bakiye al */ public double getBakiye() { return (bakiye); } /* bakiye düzelt */ public double setBakiye(double yeniBakiye) { bakiye = yeniBakiye; System.out.println("Bakiye düzeltildi: " + yeniBakiye); } Veri Saklama... public-privatepublic-private Veriye direkt ulaşmakVeriye direkt ulaşmak // hesap ac Hesap kasa; kasa = new Hesap(); kasa.bakiye = 20;

20 20 meraklisina.com Nesne Temizliği Garbage CollectorGarbage Collector –senkron / asenkron –mark-swap algoritması referansı kalmamış instance'ları toplareferansı kalmamış instance'ları topla – – System.gc() finalize() metod finalize() metod –garbage collection öncesi çağrılır

21 21 meraklisina.com AltSınıf

22 22 meraklisina.comHiyerarşi

23 23 meraklisina.com AltSınıf... Dörtgenler Dörtgen şekillerDörtgen şekiller Ortak özelliklerOrtak özellikler –4 köşe –4 kenar –çevre –alan Ortak olmayan özelliklerOrtak olmayan özellikler –dik açılar –kenar paralelliği –kenar eşitliği

24 24 meraklisina.com public class Kenar { Point pA; Point pB; public Kenar(Point pA, Point pB) { this.pA = pA; this.pB = pB; } public double length() { return(pA.distance(pB)); } AltSınıf... Yardımcı Nesneler PointPoint KenarKenar public class Point { double x; double y; public Point(double x, double y) { this.x = x; this.y = y; } public double distance(Point pA) { double xKare = (x - pA.x) * (x - pA.x); double yKare = (y - pA.y) * (y - pA.y); return(Math.sqrt(xKare + yKare)); }

25 25 meraklisina.com AltSınıf... Dörtgen DörtgenDörtgen –4 köşe ile belli C D A B public class Dörtgen { Point pA, pB, pC, pD; public Dörtgen(Point pA, Point pB, Point pC, Point pD) { this.pA = pA; this.pB = pB; this.pC = pC; this.pD = pD; } public double getÇevre() { double c = 0; c += pA.distance(pB); c += pB.distance(pC); c += pC.distance(pD); c += pD.distance(pA); return (c); }

26 26 meraklisina.com public class Dörtgen { Point pA, pB, pC, pD; public Dörtgen(Point pA, Point pB, Point pC, Point pD) { this.pA = pA; this.pB = pB; this.pC = pC; this.pD = pD; } public double getÇevre() { double c = 0; c += pA.distance(pB); c += pB.distance(pC); c += pC.distance(pD); c += pD.distance(pA); return (c); } AltSınıf... Özel Bir dörtgen: Dikdörtgen DörtgenDörtgen –4 köşe ile belli DikdörtgenDikdörtgen –2 köşe ile belli public class DikDörtgen { Point pA, pC; public DikDörtgen(Point pA, Point pC) { this.pA = pA; this.pC = pC; } DCABDCAB

27 27 meraklisina.com public class Dörtgen { Point pA, pB, pC, pD; public Dörtgen(Point pA, Point pB, Point pC, Point pD) { this.pA = pA; this.pB = pB; this.pC = pC; this.pD = pD; } public double getÇevre() { double c = 0; c += pA.distance(pB); c += pB.distance(pC); c += pC.distance(pD); c += pD.distance(pA); return (c); } AltSınıf... Özel Bir dörtgen: Dikdörtgen Dikdörtgen, dörtgenin özel bir durumudur.Dikdörtgen, dörtgenin özel bir durumudur. public class DikDörtgen extends Dörtgen{ public DikDörtgen(Point pA, Point pC) { super( pA, new Point(pC.x, pA.y), pC, new Point(pA.x, pC.y) ) } DCABDCAB

28 28 meraklisina.com DCABDCAB public class Dörtgen { Point pA, pB, pC, pD; public Dörtgen(Point pA, Point pB, Point pC, Point pD) { this.pA = pA; this.pB = pB; this.pC = pC; this.pD = pD; } public double getÇevre() { double c = 0; c += pA.distance(pB); c += pB.distance(pC); c += pC.distance(pD); c += pD.distance(pA); return (c); } AltSınıf... Özel Bir dörtgen: Dikdörtgen Metod OverrideMetod Override –yeniden tanımla public class DikDörtgen extends Dörtgen{ public DikDörtgen(Point pA, Point pC) { super( pA, new Point(pA.x, pC.y), pC, new Point(pC.x, pA.y) ) } public double getÇevre() { double c = 0; c += Math.abs(pA.x - pC.x); c += Math.abs(pA.y - pC.y); return (2 * c); }

29 29 meraklisina.com AltSınıf... Kalıtım Ağacı extends sadece bir sınıf özelleştirilirextends sadece bir sınıf özelleştirilir –bir baba –bir ağaç elde edilir. Gösterim:Gösterim: üstSınıf altSınıf

30 30 meraklisina.com AltSınıf... Kalıtım Çeşitleri Tekli kalıtımTekli kalıtım –bir baba –ağaç ? –"extends class" Çoklu kalıtımÇoklu kalıtım –bir çok baba –döngüsüz yönlü grafik –"implements interface"

31 31 meraklisina.com Interface

32 32 meraklisina.comInterface ProtokolProtokol Sınıf hiyerarşisiSınıf hiyerarşisi Farklı hiyerarşideki sınıflar için ortak yönlerFarklı hiyerarşideki sınıflar için ortak yönler Nesnenin programlama arayüz tanımıNesnenin programlama arayüz tanımı

33 33 meraklisina.com Interface... Interface - Çoklu Kalıtım Tam olarak çoklu kalıtım değilTam olarak çoklu kalıtım değil –değişkenler kalıtılmıyor –metodlar implementasyonu kalıtılmıyor –interface hiyerarşisi sınıf hiyerarşisinden farklı

34 34 meraklisina.com Interface... DeğişkenlerDeğişkenler –public –static –final MetodlarMetodlar –public –abstract public interface MouseListener extends EventListener { public void mouseClicked(MouseEvent e); public void mouseEntered(MouseEvent e); public void mouseExited(MouseEvent e); public void mousePressed(MouseEvent e); public void mouseReleased(MouseEvent e); }

35 35 meraklisina.com Interface... public interface Sleeper { public void wakeUp(); public long ONE_SECOND = 1000;// in milliseconds public long ONE_MINUTE = 60000;// in milliseconds } // service provider public synchronized boolean letMeSleepFor(Sleeper theSleeper, long time) { int index = findNextSlot(); if (index == NOROOM) { return false; } else { sleepers[index] = theSleeper; sleepFor[index] = time; new AlarmThread(index).start(); return true; } class GUIClock extends Applet implements Sleeper {... public void wakeUp() { repaint(); clock.letMeSleepFor(this, ONE_MINUTE); }

36 36 meraklisina.com Interface Örnekler

37 37 meraklisina.com Interface … java.lang.Comparable SıralamaSıralama KarşılaştırmaKarşılaştırma public interface Comparable { public int compareTo(Object o); }

38 38 meraklisina.com Interface … java.lang.Runnable Bağımsız çalışabilmeBağımsız çalışabilme ThreadThread public interface Runnable { public abstract void run(); }

39 39 meraklisina.com Interface … java.io.Serializable Nesne byte stream haline gelebilmeNesne byte stream haline gelebilme Tekrar nesne haline gelebilmeTekrar nesne haline gelebilme KullanımKullanım –Bir JVM'den diğerine aktarılabilme –Durumu ile beraber saklanabilme public interface Serializable { }

40 40 meraklisina.com Interface … java.lang.Cloneable KopyalanabilmeKopyalanabilme public interface Cloneable { }

41 41 meraklisina.comÖzet Nesne - ClassNesne - Class InstanceInstance Veri saklamaVeri saklama Kalıtım - AltSınıfKalıtım - AltSınıf InterfaceInterface LabLab

42 42 meraklisina.comKaynaklar The Java Programming Language, 3e Arnold, Gosling, Holmes Addison-Wesley, 2000The Java Programming Language, 3e Arnold, Gosling, Holmes Addison-Wesley, 2000 The Java Tutorial Object-Oriented Programming for the Internet Campione, Walrath Addison-Wesley, 1996The Java Tutorial Object-Oriented Programming for the Internet Campione, Walrath Addison-Wesley, 1996 Java How to Program, 3e Dietel & Dietel Prentice Hall, 1999Java How to Program, 3e Dietel & Dietel Prentice Hall, 1999