Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

P Koleksiyon sınıfı bir grup öğeyi tutabilen bir veri tipidir. p Java da, koleksiyon sınıfları öğeleri ekleme,çıkarma,inceleme metodlarıyla birlikte bir.

Benzer bir sunumlar


... konulu sunumlar: "P Koleksiyon sınıfı bir grup öğeyi tutabilen bir veri tipidir. p Java da, koleksiyon sınıfları öğeleri ekleme,çıkarma,inceleme metodlarıyla birlikte bir."— Sunum transkripti:

1 p Koleksiyon sınıfı bir grup öğeyi tutabilen bir veri tipidir. p Java da, koleksiyon sınıfları öğeleri ekleme,çıkarma,inceleme metodlarıyla birlikte bir sınıf olarak uygulanabilir. Koleksiyon Sınıfları Java Kullanarak Veri Yapıları Ve Diğer Nesneler

2 Torbalar p İlk örnek için bir torba düşünelim

3 Torbalar p İlk örnek için bir torba düşünelim p Torbanın içinde bazı numaralar var.

4 Bir Torbanın Başlangıç Durumu p Torbayı ilk kullanmaya başladığında torba boş olacak. p Bunun kullandığımız herhangi bir torba için başlangıç durumu olacağına güveniyoruz. BU TORBA BOŞ.

5 Bir Torbaya sayı eklemek p Bir torbaya sayı eklenebilir. TORBANIN İÇİNE 4 SAYISINI KOYUYORUM.

6 Bir Torbaya sayı ekleme p Bir torbaya sayı eklenebilir. 4 TORBANIN İÇİNDE.

7 Bir torbaya sayı ekleme p Bir torbaya sayı eklenebilir.. p Torba biçok sayıyı tutabilir. ŞİMDİ TORBAYA BAŞKA BİR SAYI KOYUYORUM -- BİR 8.

8 Bir torbaya eklenmiş sayılar p Torbaya sayılar eklenmiş olabilir. p Torba biçok sayıyı tutabilir. AYNI ZAMANDA 8 DE TORBANIN İÇİNDE

9 Bir torbaya eklenmiş sayılar p Torbaya sayılar eklenmiş olabilir. p Torba biçok sayıyı tutabilir. p Hatta aynı sayıyı birden fazla kez yerleştirebiliriz. ŞİMDİ İKİNCİ BİR 4 KOYUYORUM TORBAYA

10 Bir Torbaya sayı ekleme p Torbaya sayılar eklenmiş olabilir. p Torba biçok sayıyı tutabilir. p Hatta aynı sayıyı birden fazla kez yerleştirebiliriz. ŞİMDİ TORBADA 2 TANE 4 VE BİR TANE 8 VAR.

11 Bir Torbayı İnceleme p Torbanın içeriği hakkında sorabiliriz. HİÇ 4 ÜN VAR MI? EVET 2 TANE VAR.

12 Torbadan Bir Sayı Çıkarmak p Bir torbadan bir sayı çıkarabiliriz. BU 4 BURDAN DIŞARI.

13 Torbadan Bir Sayı Çıkarma p Bir torbadan bir sayı çıkarabiliriz. p Fakat bir seferde yalnızca bir sayı çıkarabiliriz. BİR TANE 4 GİTTİ AMA DİĞERİ HALA DURUYOR.

14 Kaç Tane Sayı? p Diğer bir işlem de torbada kaç tane sayı olduğunu belirlemek. BENCE TORBADA ÇOK FAZLA SAYI VAR.

15 Torba İşlemlerinin Özeti ŒBir torba,boş bir torba olduğu başlangıç durumuna getirilebilir. ŒTorbaya sayı eklenebilir. ŽBir torbada bir sayıdan kaç tane olduğunu kpntrol edebilirsiniz. ŽTorbadan sayı çıkarılabilir. Torbada kaç tane sayı olduğunu kontrol edebilirsiniz.

16 Torba sınıfı p Java sınıfları (2. Ünitede anlatıldığı gibi)Torba gibi bir koleksiyon sınıfını uygulamak için kullanılabilir. p Sınıf tanımının içeriği: public class Torba 4 4 Tanımın başlığı

17 Torba sınıfı p Java sınıfları (2. Ünitede anlatıldığı gibi)Torba gibi bir koleksiyon sınıfını uygulamak için kullanılabilir. p Sınıf tanımının içeriği: class Torba { public Torba( )... 4 4 Tanımın başlığı 4 4Bir yapıcı metod

18 Torba sınıfı p Java sınıfları (2. Ünitede anlatıldığı gibi)Torba gibi bir koleksiyon sınıfını uygulamak için kullanılabilir. p Sınıf tanımının içeriği: public class Torba { public Torba( )... public void ekle(... public void çıkar(......ve bunun gibi 4 4 Tanımın başlığı 4 4Bir yapıcı metod 4 4Public metodlar

19 Torba Sınıfı p Java sınıfları (2. Ünitede anlatıldığı gibi)Torba gibi bir koleksiyon sınıfını uygulamak için kullanılabilir. p Sınıf tanımının içeriği: 4 4 Tanımın başlığı 4 4Bir yapıcı metod 4 4 Public metodlar 4 4 Private durum değişkenleri Private durum değişkenlerine daha sonra bakacağız Private durum değişkenlerine daha sonra bakacağız public class Torba { public Torba( )... public void ekle(... public void çıkar(......ve bunun gibi

20 Torbanın yapıcı metodu p Bir torbayı başlangıç durumuna getirir(boş bir torba). // Hedefşart: Torba başlatıldı // ve şimdi boş. public Torba( ) {... }

21 Ekle metodu p Torbaya yeni bir sayı ekler public void ekle(int yeniGiriş) {... }

22 Boyut metodu p Torbada kaç tane sayı olduğunu sayar. // Hedefşart: Döndüğü değer torbadaki sayıların //kaç tane olduğudur. public int size( ) {... }

23 Kaçtane olduğunu sayan metod p Aynı sayıdan kaç tane olduğunu sayar // Hedefşart: Döndüğü değer torbadaki // hedeften kaç kopya olduğudur. public int countOccurrences(int hedef) {... }

24 Çıkarma metodu p Bir sayının bir kopyasını çıkarır // Hedefşart: Eğer hedef torbadaysa hedefin bir // kopyası torbadan çıkarılır ve döndürülen değer // TRUE olur, değilse Torba aynen kalır ve // döndürülen değer FALSE olur public boolean çıkar(int hedef) {... }

25 Torbayı Bir Programda kullanma p İşte yeni Torba sınıfını kullanan bir programdan alınan kod: Torba yaslar = new Torba( ); // üç çocuğun yaşlarını kaydet: yaslar.ekle(4); yaslar.ekle(8); yaslar.ekle(4);

26 Torba Sınıfı içinDökümantasyon p Dökümantasyon torba metodları için tarifname verir. p Tarifnameler önşart/hedefşart sözleşmeleri olarak yazılmıştır. p Torba sınıfını kullanmak için gereken herşey bu dökümantasyonda vardır. Torba’nın dökümantasyonu Appendix H da tanımlanan Javadoc aracıyla otomatik olarak oluşturulabilir

27 Quiz Farzedelim ki Gizemli bir Hayırsever size Torba sınıfını sağlıyor,ama sadece dökümantasyonu okuma izniniz var.Sınıf uygulamasını veya.java dosyasını okuyamıyorsunuz. Torba veri tipini kullanan bir program yazabilir misiniz? ¬Evet yazabilirim. ­Hayır. Torba için sınıf uygulamasını görmeden yazamam.

28 Quiz ¬Evet yazabilirim. Yeni veri tipinin adını biliyorsunuz,aynı zamanda başlıkları da biliyorsunuz ve herbir işlemin tarifnamesini biliyorsunuz. Bu Torbaları oluşturmanız ve kullanmanız için yeterli. Yeni veri tipinin adını biliyorsunuz,aynı zamanda başlıkları da biliyorsunuz ve herbir işlemin tarifnamesini biliyorsunuz. Bu Torbaları oluşturmanız ve kullanmanız için yeterli. Farzedelim ki Gizemli bir Hayırsever size Torba sınıfını sağlıyor,ama sadece dökümantasyonu okuma izniniz var.Sınıf uygulamasını veya.java dosyasını okuyamıyorsunuz. Torba veri tipini kullanan bir program yazabilir misiniz?

29 Uygulama Detayları p Bir torbanın girişleri bir dizinin ön kısmında tutulacaktır,bu örnekte gösterildiği gibi.. [ 0 ] [1] [ 2 ] [ 3 ] [ 4 ] [ 5 ]... Bir tamsayı dizisi 484 Dizinin bu kısmında ne olduğuyla ilgilenmiyoruz.

30 Uygulama Detayları p Girişler herhangi bir sırada görünebilir. Bu bir öncekiyle aynı torbayı temsil eder. Bir tamsayı dizisi 448 Dizinin bu kısmında ne olduğuyla ilgilenmiyoruz. [ 0 ] [1] [ 2 ] [ 3 ] [ 4 ] [ 5 ]...

31 Uygulama Detayları p... Ve aynı zamanda bu da aynı çantayı temsil eder. Bir tamsayı dizisi Dizinin bu kısmında ne olduğuyla ilgilenmiyoruz. [ 0 ] [1] [ 2 ] [ 3 ] [ 4 ] [ 5 ]... 448

32 Uygulama Detayları p Aynı zamanda çantada kaç tane sayı olduğunun da kaydını tutmamız lazım. Bir tamsayı dizisi 844 Dizinin bu kısmında ne olduğuyla ilgilenmiyoruz. ne olduğuyla ilgilenmiyoruz. Çantanın boyutunu tutan bir tamsayı 3 [ 0 ] [1] [ 2 ] [ 3 ] [ 4 ] [ 5 ]...

33 Alıştırma Torba sınıfını uygulayabileceğiniz private durum değişkenlerinin bir listesini yazmak için bu fikirleri kullanınız. İki tane durum değişkeniniz olmalı. Tanımı yazmak için 60 saniyeniz var.

34 Alıştırma public class Torba { private int[ ] data; private int manyItems;... } Bir çözüm:

35 Ekle yi çağırmaya bir örnek public void ekle(int yeniGiriş) Ekleyi çağırmadan önce, b çantamız olmalı: b çantamız olmalı: 2 [ 0 ] [ 1 ] [2]... 84 b.data b.manyItems

36 Ekleyi Çağırmaya bir örnek void add(int newEntry) b.data b.manyItems b.ekle(17) yi Aktifleştiriyoruz. Metod bittiğinde b.data ve b.manyItems İçinde hangi değerler olacak? [ 0 ] [ 1 ] [2]... 84 public void ekle(int yeniGiriş) 2

37 Ekleyi çağrmaya bir örnek void add(int newEntry) b.add(17) yi aktifleştirdikten sonra, bu b çantamız oldu: 3 [ 0 ] [1] [ 2 ]... 8417 public void ekle(int yeniGiriş) b.data b.manyItems [ 0 ] [ 1 ] [2]... 84 2

38 Ekle için yalancı kod ŒDizide yeni giriş için yer olduğundan emin olunuz.  yeniGiriş’i veri dizisindeki en uygun yere yerleştiriniz. ŽmanyItems durum değişkenine bir ekleyiniz. V Veri dizisinde “en uygun yer” neresidir?

39 Ekle için yalancı kod data[manyItems] = yeniGiris; manyItems++; ŒDizide yeni giriş için yer olduğundan emin olunuz.  yeniGiriş’i veri dizisindeki en uygun yere yerleştiriniz. ŽmanyItems durum değişkenine bir ekleyiniz.

40 Ekle için yalancı kod data[ manyItems++] = newEntry; ŒDizide yeni giriş için yer olduğundan emin olunuz.  yeniGiriş’i veri dizisindeki en uygun yere yerleştiriniz. ŽmanyItems durum değişkenine bir ekleyiniz.

41 Diğer Torba İşlemleri p Diğer torba metodlarının uygulaması için Bölüm 3.2’yi okuyunuz. p Hatırlayınız: Eğer sadece Torba sınıfını kullanıyorsanız, işlemlerin nasıl uygulandığını bilmenize gerek yok. p Daha sonra daha iyi çalışan algoritmalar kullanarak torbayı yeniden uygulayacağız. p Torbaları işlemek için de birkaç işlemimiz var.

42 Diğer Çanta Çeşitleri p Bu örnekte tamsayılar içeren bir torbanın uygulamasını yaptık. p Fakat ondalık sayı torbası,karakter torbası, ya da String torbamız da olabilirdi... Farzedelim ki bu diğer torbalardan birini istediniz. Uygulamanın ne kadarını değiştirmeniz gerekir?

43 p Koleksiyon sınıfı, bir grup öğeyi tutabilen bir sınıftır. p Koleksiyon sınıfları bir Java sınıfıyla birlikte uygulanabilir. p Sınıfın yazarı, sınıfı kullanmak isteyen başka bir programcının okuması için dökümantasyon sağlamalıdır. p Okumanız gereken diğer detaylar Bölüm 3.2 de anlatılmıştır. Özet

44 SON Presentation copyright 1999, Addison Wesley Longman For use with Data Structures and Other Objects Using Java by Michael Main. Some artwork in the presentation is used with permission from Presentation Task Force (copyright New Vision Technologies Inc.) and Corel Gallery Clipart Catalog (copyright Corel Corporation, 3G Graphics Inc., Archive Arts, Cartesia Software, Image Club Graphics Inc., One Mile Up Inc., TechPool Studios, Totem Graphics Inc.). Students and instructors who use Data Structures and Other Objects Using Java are welcome to use this presentation however they see fit, so long as this copyright notice remains intact.


"P Koleksiyon sınıfı bir grup öğeyi tutabilen bir veri tipidir. p Java da, koleksiyon sınıfları öğeleri ekleme,çıkarma,inceleme metodlarıyla birlikte bir." indir ppt

Benzer bir sunumlar


Google Reklamları