Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

 2005 Pearson Education, Inc. All rights reserved. 1 6 6 Metodlar.

Benzer bir sunumlar


... konulu sunumlar: " 2005 Pearson Education, Inc. All rights reserved. 1 6 6 Metodlar."— Sunum transkripti:

1  2005 Pearson Education, Inc. All rights reserved Metodlar

2  2005 Pearson Education, Inc. All rights reserved. 2 OBJECTIVES In this chapter you will learn:  How static methods and fields are associated with an entire class rather than specific instances of the class.  To use common Math methods available in the Java API.  To understand the mechanisms for passing information between methods.  How the method call/return mechanism is supported by the method call stack and activation records.  How packages group related classes.  How to use random-number generation to implement game- playing applications.  To understand how the visibility of declarations is limited to specific regions of programs.  What method overloading is and how to create overloaded methods.

3  2005 Pearson Education, Inc. All rights reserved Giriş 6.2 Javada Program Modülleri 6.3 static Metodlar, static alanlar (Fields) ve Math sınıfı 6.4 Çok parametreli metodların tanımlanması 6.5 Metodların tanımı ve kullanımı hakkında bazı bilgiler 6.6 Metod çağırma yığını 6.7 Argüman Promosyonu ve Casting 6.8 Java API Paketleri 6.9 Örnek: Rastgele sayı jeneratörü Genel ölçeklendirme(Generalized Scaling) ve rastgele sayıların ötelenmesi (Shifting of Random Numbers) Hata bulma ve test etmek için rastgele sayının tekrar edebilmesi

4  2005 Pearson Education, Inc. All rights reserved Örnek: Şans oyunu (Enumeration tanımı) 6.11 Tanım alanı (Scope of Declarations) 6.12 Metod yüklemesi (Method Overloading) 6.13 GUI ve Grafik örneği: Renkler ve içi dolu şekiller 6.14 Yazılım mühendisliği örneği: Sınıf işlemlerini belirleme (Identifying Class Operations)

5  2005 Pearson Education, Inc. All rights reserved Giriş Böl ve yönet tekniği (Divide and conquer) – Küçük modüllerden büyük programlar oluşturma – Metod kullanarak yapılabilir. static metodlar bir obje üretilmeden de çağırılabilir. Rastgele sayı jeneratörü Sabitler (Constants)

6  2005 Pearson Education, Inc. All rights reserved Javada Program Modülleri Java API’si (Application Programming Interface) – Java sınıf kütüphanesi olarak da bilinir. – Önceden tanımlanmış metodlar ve sınıflar içerir. Birbiriyle ilişkili sınıflar aynı pakette toplanmıştır. Matematik metodları, string/karakter işlemleri, giriş/çıkış işlemleri, database işlemleri, network, hata bulma, dosya işlemleri bunlardan bazılarıdır.

7  2005 Pearson Education, Inc. All rights reserved. 7 Good Programming Practice 6.1 Java API si hakkında bilgi adresi : java.sun.com/j2se/5.0/docs/api/index.html

8  2005 Pearson Education, Inc. All rights reserved. 8 Yazılım mühendisliği açısından Tekerleği yeniden keşfetmeye gerek yok. Uygun olduğunda hazır kütüphaneden faydalanmalıdır. Bu, hataları azaltacağı gibi program yazma süresini de kısaltır.

9  2005 Pearson Education, Inc. All rights reserved Javada Program Modülleri Metodlar – Diğer programlama dillerinde fonksiyon veya prosedür de denilir – Programları birbirinden ayrı kendi işini yapan birimler olarak modülarize etmektir – Böl ve yönet yaklaşımıdır – Modüller başka programlar tarafından da kullanılabilir – Kod tekrarını önler

10  2005 Pearson Education, Inc. All rights reserved. 10 Hata önleme Bir işlemi yapan küçük bir metodu test etmek, hatasını bulmak, büyük bir metoddan daha kolaydır.

11  2005 Pearson Education, Inc. All rights reserved. 11 Fig. 6.1 | Hiyerarşik patron-metod / işçi-metod şeması.

12  2005 Pearson Education, Inc. All rights reserved static Metodlar, static Alanlar ve Math sınıfı static metod (veya sınıf metodu) – Bir tek objeye has değildir. Tüm bir sınıf için aynıdır. – static metod çağırma formatı: SınıfAdı. metodAdı ( argümanlar ) – Math sınıfındaki tüm metodlar statikdir örnek: Math.sqrt( )

13  2005 Pearson Education, Inc. All rights reserved. 13 Yazılım mühendisliği açısından Math sınıfı java.lang paketi içindedir. Compiler tarafından kendiliğinden gelir. Kullanmak için import etmeye gerek yoktur.

14  2005 Pearson Education, Inc. All rights reserved static Metodlar, static Alanlar ve Math sınıfı Sabitler – Keyword final – İlk değer verildikten sonra değeri bir daha değişmez static alanlar ( static sınıf değişkenleri) – Bu değişkenlerin tek kopyası olur ve tüm objeler aynısını kullanır. Math.PI ve Math.E Math sınıfının final static alanlarıdır

15  2005 Pearson Education, Inc. All rights reserved. 15 Fig. 6.2 | Math sınıf metodları.

16  2005 Pearson Education, Inc. All rights reserved static Metodlar, static Alanlar ve Math sınıfı main Metodu – main static bir metoddur – Herhangi bir sınıf main metoduna sahip olabilir Komut satırından çalıştırmak için java komutundan sonra main ’in bulunduğu sınıfın ismi yazılır. Böylece JVM o sınıftaki main i çalıştırır.

17  2005 Pearson Education, Inc. All rights reserved Çok parametreli metodların tanımlanması Çok parametreli metodlar tanımlanırken parametreler virgüllerle ayrılmış bir liste olarak belirlenir. Çağırılırken Argümanların gönderilmesinde sayı, sıra ve tipler tanımdaki sayı, sıra ve tiplerle uyuşmalıdır.

18  2005 Pearson Education, Inc. All rights reserved. 18 Outline MaximumFinder.java (1 of 2) Prompt the user to enter and read three double values Call method maximum Display maximum value

19  2005 Pearson Education, Inc. All rights reserved. 19 Outline MaximumFinder.java (2 of 2) Declare the maximum method Compare y and maximumValue Compare z and maximumValue Return the maximum value

20  2005 Pearson Education, Inc. All rights reserved. 20 Outline MaximumFinderTest.java Create a MaximumFinder object Call the determineMaximum method

21  2005 Pearson Education, Inc. All rights reserved. 21 Programlama hataları Parametreleri tanımlarken aynı tipteki parametreler float x, y şeklinde yazılmamalıdır. float x, float y olarak tipleri parametre listesinde ayrı ayrı belirtilmelidir

22  2005 Pearson Education, Inc. All rights reserved Çok Parametreli metodların tanımı Math.max metodu – Math.max( x, Math.max( y, z ) ) şeklindeki kullanım y ve z den büyük olanı x ile karşılaştırıp en büyük olanı döndürür. String birleştirme – String birleştirme operatörü + dır. İki string’ i birleştirip yeni bir String oluşturur. – + operatorünü bir String ve bir de başka tip değişken ile kullanmak String ile o değişkenin değerinin String gösterimini birleştirir Diğer değişken obje ise, String gösteriminin oluşturulması için toString metodunun çağırılması gerekir

23  2005 Pearson Education, Inc. All rights reserved. 23 Programlama hatası Program yazılırken string değer bir satıra sığmadığı durumda kalan kısmını alt satıra yazmak syntax hatasına sebep olur. Bu durumda string değer parçalanıp + operatörü kullanılarak birleştirilir.

24  2005 Pearson Education, Inc. All rights reserved. 24 Programlama hatası + öperatörünün aynı zamanda toplama işleminde kullanılması karışıklığa yol açabilir. Java işlemleri soldan sağa yapar. Örneğin, y nin değeri 5 iken, "y + 2 = " + y + 2 sonucu string olarak "y + 2 = 52", dir. "y + 2 = 7“ değildir, çünkü ilk olarak y nin değeri(5), "y + 2 = “ stringi ile birleştirilir, sonra 2 yeni string "y + 2 = 5“ ile birleştirilir. "y + 2 = " + (y + 2) işlemini sonucu "y + 2 = 7“ dir.

25  2005 Pearson Education, Inc. All rights reserved Metod kullanımı ve tanımı Metod çağırmanın üç yolu: – Aynı sınıftan başka bir metodu çağırmak için metod adının kendisi kullanılır. – Bir nesne için bir metod çağırılacaksa, obje isminden sonra (. ) ve metod adı yazılır – Bir sınıfın static bir metodu çağırılacaksa, sınıf adından sonra (.) ve metod adı yazılır Bir static metod aynı sınıftaki başka bir non- static metodu çağıramaz !

26  2005 Pearson Education, Inc. All rights reserved Metod kullanımı ve tanımı Kontrolün çağıran satıra geri dönmesinin iki yolu: – Metod bir sonuç döndürmüyorsa: Program akışı metodun son bitiş parantezine geldiğinde geri döner – Metod bir sonuç döndürüyorsa: Program return işlem ; satırını yürütünce – Önce işlem yapılır ve sonuç çağırana gönderilir

27  2005 Pearson Education, Inc. All rights reserved. 27 Programlama hatası Metod tanımlaması sınıf tanımlamasının dışında veya başka bir metodun içinde yapılamaz. (syntax hatası)

28  2005 Pearson Education, Inc. All rights reserved. 28 Programlama hatası Metod başlığındaki parametre listesinin sonundaki parantezden sonra noktalı virgül konulması hatadır. ( syntax error)

29  2005 Pearson Education, Inc. All rights reserved. 29 Programlama hatası Metod parametresini metodun içinde yerel değişken olarak yeniden tanımlamak derleme hatasıdır. (compilation error)

30  2005 Pearson Education, Inc. All rights reserved. 30 Programlama hatası Sonucu döndüren bir metodda sonucu döndürmeyi unutmak derleme hatasıdır.(compilation error) Döndürme tipi olarak void yerine başka bir şey yazıldıysa mutlaka return satırı bulunmalıdır ve başlıkta belirtilen tipte bir değer döndürmelidir. void olarak tanımlanmış bir metodun bir değer döndürmesi derleme hatasıdır. (compilation error)

31  2005 Pearson Education, Inc. All rights reserved Java API Paketleri import java.util.Scanner; komutu programcuının Scanner sınıfını dogrudan kullanmasını sağlar. Aksi halde her kullanımda java.util.Scanner yazmak gerekir. Java API bilgi adresi – java.sun.com/j2se/5.0/docs/api/index.html java.sun.com/j2se/5.0/docs/api/index.html JDK 5.0 içindeki paketlerin açıklanması – java.sun.com/j2se/5.0/docs/api/overview-summary.html java.sun.com/j2se/5.0/docs/api/overview-summary.html

32  2005 Pearson Education, Inc. All rights reserved. 32 Fig. 6.6 | Java API packages (a subset). (Part 1 of 2)

33  2005 Pearson Education, Inc. All rights reserved. 33 Fig. 6.6 | Java API paketlerinin bir kısmı.

34  2005 Pearson Education, Inc. All rights reserved Rastgele sayı jeneratörü Rastgele sayı java.util paketindeki Random sınıfı – Random sınıfından bir nesne oluşturarak rastgele sayılar üretebiliriz. Random rSayi= new Random(); – Random sınıfındaki nextInt() metodu ile aralığında integer bir değer döndürür.

35  2005 Pearson Education, Inc. All rights reserved. 35 Outline

36  2005 Pearson Education, Inc. All rights reserved. 36 Outline RandomIntegers.java (2 of 2)

37  2005 Pearson Education, Inc. All rights reserved. 37 Outline

38  2005 Pearson Education, Inc. All rights reserved. 38 Outline RollDie.java (2 of 2) Iterate 6000 times Generate a random die roll switch based on the die roll

39  2005 Pearson Education, Inc. All rights reserved. 39 Outline RollDie.java (3 of 3) Display die roll frequencies

40  2005 Pearson Education, Inc. All rights reserved Rastgele sayının ölçeklendirilmesi ve ötelenmesi İstenilen aralıkta rastgele sayı üretme – Formül öteleme değeri + sayılar arasındaki fark * rSayi.nextInt( ölçek ) öteleme değeri : istenilen sayı aralığının başlangıcı sayılar arasındaki fark : sayılar arasında olmasını istediğimiz fark ölçek :aralıkta kaç sayı olmasını istiyoruz

41  2005 Pearson Education, Inc. All rights reserved Rastegele sayı tekrarı testi Rastgele sayılar program her çalıştığında aynı sırada gelirse rastgelelik ortadan kalkar. Bunu engellemek için kullandığımız çekirdek değerin nasıl çalıştığını görelim. – Random nesne oluştururken çekirdek değeri belirtmeliyiz: Random rSayi =new Random( cekirdek ); – setSeed metodu kullanılır: rSayi.setSeed( cekirdek ); – Cekirdek değerin long tipinde olması gerekir

42  2005 Pearson Education, Inc. All rights reserved. 42 Error-Prevention Tip 6.2 While a program is under development, create the Random object with a specific seed value to produce a repeatable sequence of random numbers each time the program executes. If a logic error occurs, fix the error and test the program again with the same seed value-this allows you to reconstruct the same sequence of random numbers that caused the error. Once the logic errors have been removed, create the Random object without using a seed value, causing the Random object to generate a new sequence of random numbers each time the program executes.

43  2005 Pearson Education, Inc. All rights reserved. 43 Şans oyunu crap İki zar atılıyor. Eğer ilk atışta toplamları 7 veya 11 ise oyuncu kazanır. Eğer ilk atışta 2,3 veya 12 ise oyuncu kaybeder. Eğer ilk atışta zarların toplamı 4,5,6,8,9 veya 10 ise, bu toplam oyuncunun puanı olur. Oyuncu kazanmak için bu puanı yakalayana kadar zarları atmaya devam eder. Puanı yakalayınca kazanır. Puanı yakalayamadan 7 atarsa kaybeder.

44  2005 Pearson Education, Inc. All rights reserved. 44 Outline Craps.java (1 of 4) Import class Random from the java.util package Create a Random object Declare an enumeration Declare constants

45  2005 Pearson Education, Inc. All rights reserved. 45 Outline Craps.java (2 of 4) Call rollDice method Player wins with a roll of 7 or 11 Player loses with a roll of 2, 3 or 12 Set and display the point

46  2005 Pearson Education, Inc. All rights reserved. 46 Outline Craps.java (3 of 4) Call rollDice method Player wins by making the point Player loses by rolling 7 Display outcome

47  2005 Pearson Education, Inc. All rights reserved. 47

48  2005 Pearson Education, Inc. All rights reserved. 48 Outline CrapsTest.java (1 of 2)

49  2005 Pearson Education, Inc. All rights reserved Enumeration Enumeration – Programcının tanımladığı, bir grup sabit içeren tip tanımlamaları – Anahtar kelime: enum – Örnekte tanımlanan tipin adı : Durum – Enumeration sabitleri ( KAZANDI, KAYBETTI ve DEVAM ) Karşılaştırma yapılırken int değişkenlerle karşılaştırılamaz

50  2005 Pearson Education, Inc. All rights reserved. 50 İyi programlama 6.3 Sabit isimlerinde mutlaka büyük harf kullanın. Bu programa baktığımızda değişkenlerle sabitleri ayırmamızı sağlar.

51  2005 Pearson Education, Inc. All rights reserved. 51 İyi programlama 6.4 (0, 1, 2 gibi) tamsayı değerler yerine enumeration sabitleri (Durum.KAZANDI, Durum.KAYBETTI ve Durum.DEVAM) programda kolaylık sağlar.

52  2005 Pearson Education, Inc. All rights reserved Tanımlanan değişkenlerin geçerlilik alanları: Scope Tanımlanan değişkenlerin geçerlilik alanlarına Scope denir. Temel scope kuralları – Parametrelerin geçerli olduğu alan metodun gövdesidir. – Bir yerel değişkenin geçerlilik alanı tanımlandığı bloktur. – for başlığında tanımlanan bir değişkenin geçerlilik alanı o döngünün gövdesidir. Döngüden çıkıldığında tanımlı değildir. – Bir sınıf değişkeninin veya metodun geçerlilik alanı, o sınıfın gövdesidir.

53  2005 Pearson Education, Inc. All rights reserved Geçerlilik alanları Gölgeleme (Shadowing) – Eğer bir sınıf değişkeni bir yerel değişkenle veya parametre ile aynı isimde ise bu sınıf değişkenini gölgelemekdir. Yerel değişkenin geçerlilik alanından çıkıldığında gölgeleme biter.

54  2005 Pearson Education, Inc. All rights reserved. 54 Genel programlama hatası 6.10 Bir metod içinde birden fazla aynı isimde yerel değişken olması derleme hatasına sebep olur.

55  2005 Pearson Education, Inc. All rights reserved. 55 Outline sınıfın x ini gölgeler yerel x’ i yazar

56  2005 Pearson Education, Inc. All rights reserved. 56 Outline Sınıf değişkenini yerel x’ in gölgelemesi

57  2005 Pearson Education, Inc. All rights reserved. 57 Outline ScopeTest.java

58  2005 Pearson Education, Inc. All rights reserved Metod Yükleme Metod yükleme (overloading) – Aynı isimde birden fazla metod tanımlamak mümkündür. Ancak parametrelerin tipi, sayısı veya sırası farklı olmalıdır. – Derleyici hangi metodun çağırılacağına -isimden değil de bu kez- çağıran satır ile parametre listesini karşılaştırarak karar verir. – Bir metodun imzası, metodun adı, parametre sayısı, tipi ve sırasıdır. – Metod yüklemede metodların döndürme tipi dikkate alınmaz Yüklenmiş metodlar farklı döndürme tiplerinde de olabilirler Farklı döndürme tipleri olmasına rağmen imzaların aynı olması derleme hatasına sebep olur

59  2005 Pearson Education, Inc. All rights reserved. 59 Outline

60  2005 Pearson Education, Inc. All rights reserved. 60 Outline MethodOverloadTest.java

61  2005 Pearson Education, Inc. All rights reserved. 61 Outline MethodOverload Error.java İmzalar aynı Derleme hatası

62  2005 Pearson Education, Inc. All rights reserved GUI ve Grafikler: Renkler ve Şekiller Color sınıfı java.awt içindedir – RGB (red, green ve blue) yerine kullanılır Her bileşke 0 ile 255 arasında bir değer alır – Önceden tanımlanmış 13 static Color nesnesi vardır: Color.Black, Color.BLUE, Color.CYAN, Color.DARK_GRAY, Color.GRAY, Color.GREEN, Color.LIGHT_GRAY, Color.MAGENTA, Color.ORANGE, Color.PINK, Color.RED, Color.WHITE Color.YELLOW

63  2005 Pearson Education, Inc. All rights reserved GUI ve Grafikler: Renkler ve Şekiller fillRect ve fillOval metodları Graphics sınıfındadır – drawRect ve drawOval çizerken fillRect ve fillOval şekilleri hem çizer hem renk ile boyar İlk iki parametre sol üst köşe koordinatlarını belirler Diğer iki parametre genişlik ve yüksekliği belirler setColor metodu Graphics sınıfındadır – O anki çizim rengini belirler (şekilleri boyamak için kullanılır ( fillRect ve fillOval için)

64  2005 Pearson Education, Inc. All rights reserved. 64 Outline DrawSmiley.java Import Color class Set fill colors Draw filled shapes

65  2005 Pearson Education, Inc. All rights reserved. 65 Outline DrawSmileyTest.java

66  2005 Pearson Education, Inc. All rights reserved. 66 Fig | A bull’s-eye with two alternating, random colors.

67  2005 Pearson Education, Inc. All rights reserved. 67 Fig | Randomly generated shapes.

68  2005 Pearson Education, Inc. All rights reserved (Optional) Identifying Class Operations Identifying operations – Examine key verbs and verb phrases in the requirements document Modeling operations in UML – Each operation is given an operation name, a parameter list and a return type: operationName ( parameter1, parameter2, …, parameterN ) : return type Each parameter has a parameter name and a parameter type – parameterName : parameterType

69  2005 Pearson Education, Inc. All rights reserved (Optional) Identifying Class Operations (Cont.) – Some operations may not have return types yet Remaining return types will be added as design and implementation proceed Identifying and modeling operation parameters – Examine what data the operation requires to perform its assigned task – Additional parameters may be added later on

70  2005 Pearson Education, Inc. All rights reserved. 70 Fig | Verbs and verb phrases for each class in the ATM system.

71  2005 Pearson Education, Inc. All rights reserved. 71 Fig | Classes in the ATM system with attributes and operations.

72  2005 Pearson Education, Inc. All rights reserved. 72 Fig | Class BankDatabase with operation parameters.

73  2005 Pearson Education, Inc. All rights reserved. 73 Fig | Class Account with operation parameters.

74  2005 Pearson Education, Inc. All rights reserved. 74 Fig | Class Screen with operation parameters.

75  2005 Pearson Education, Inc. All rights reserved. 75 Fig | Class CashDispenser with operation parameters.


" 2005 Pearson Education, Inc. All rights reserved. 1 6 6 Metodlar." indir ppt

Benzer bir sunumlar


Google Reklamları