Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
1
NESNEYE YÖNELİK PROGRAMLAMA
Tuna GÖKSU
2
Metotlar Şu ana kadar yaptığımız örneklerde hep önceden hazırlanmış ReadLine(), WriteLine() vb. gibi metotları kullandık. Artık kendi metotlarımızı yapmanın zamanı geldi. Bilmem farkında mısınız, ama aslında bütün örneklerimizde birer metot oluşturmuştuk. O da çalışabilir her programda bulunması gereken Main metoduydu. Artık Main metodu gibi başka metotlar yazıp programımızın içinde kullanabileceğiz.
3
Metotlar Metotlar oluşturarak programımızı parçalara böler ve programımızın karmaşıklığını azaltırız. Ayrıca bazı kodları bir metot içine alıp aynı kodlara ihtiyacımız olduğunda bu metodu çağırabiliriz. Bu sayede de kod hamallığı yapmaktan kurtuluruz.
4
Metot oluşturma ve kullanımı
Bu metot, iki tane int türünden girdi alır ve bu girdilerin toplamını int türünden tutar. Ancak bu metodu programımız içinde kullanabilmemiz için bu metodun içinde bulunduğu sınıf türünden bir nesne oluşturup "." operatörüyle bu nesne üzerinden metodumuza erişmeliyiz.
5
Örnek
6
Statik Metotlar static olarak tanımlanan metotlara erişmek için metodun içinde bulunduğu sınıf türünden bir nesne oluşturmaya gerek yoktur. static olarak tanımlanan metotlara sadece metodun adını yazarak erişilebilir.
7
Örnek
8
Farklı Sınıflardaki Metotlar
Eğer metot, içinde bulunduğumuz sınıfta değil de, başka bir sınıf içinde yazılmışsa o metodu kullanabilmek için önce sınıfın adını belirtmemiz gerekir.
9
Örnek
10
public Deyimi Dikkat ettiyseniz önceki örnekteki metodun başlık satırının (4. satır) başına public anahtar sözcüğü konmuş. public sözcüğüyle derleyiciye bu metoda her sınıftan erişilebileceğini söylüyoruz. Eğer public sözcüğü yazılmamış olsaydı bu metoda sadece Metotlar1 sınıfından erişilebilirdi.
11
Farklı Sınıflardaki Metotlar
static olmayan bir metodun başka bir sınıf içinde kullanımı:
12
Değer Tutmayan (Döndürmeyen) Metotlar
Herhangi bir değer tutmayan (WriteLine gibi) metotları void anahtar sözcüğüyle yazarız. Örnek:
13
Değer Tutmayan (Döndürmeyen) Metotlar
Herhangi bir değer tutmayan metotlarda return; komutu, yanına herhangi bir ifade olmadan kullanılabilir. Aslında return; komutunun asıl görevi metottan çıkmaktır, ancak yanına bazı ifadeler koyularak metodun tuttuğu değeri belirtme vazifesi de görür. Örneğin bir if koşulu yazıp, eğer koşul sağlanırsa metottan çıkılmasını, koşul sağlanmazsa başka komutların da çalıştırılmasını sağlayabiliriz. Ancak doğal olarak bir metodun son satırında return; komutunun kullanılması gereksizdir.
14
Örnek:
15
Metotlarla ilgili önemli özellikler
Metotları kullanırken parametrelerini doğru sayıda, doğru sırada ve doğru türde vermeliyiz. Değer tutan metotlarda return satırıyla belirtilen ifade, metodu yaratırken verilen türle uyumlu olmalıdır. Değer tutmayan (void ile belirtilmiş) metotlarda return komutunun herhangi bir ifadeyle kullanılması yasaktır. Değer tutmayan metotların bir değermiş gibi kullanılması yasaktır. Metotlar değer tutmayabileceği gibi, parametre de almayabilirler.
16
Parametre almayan metot örneği
17
Metot parametresi olarak diziler
18
Dizi ve değişken parametreler arasındaki fark
Örnek1:
19
Dizi ve değişken parametreler arasındaki fark
Örnek 2:
20
Dizi ve değişken parametreler arasındaki fark
Verilen iki örnek programı çalıştırdığınızda göreceksiniz ki metoda parametre olarak aktarılan dizinin metot içinde bir elemanının değiştirilmesi esas diziyi etkiliyor. Ancak metoda parametre olarak aktarılan değişkenin metot içinde değiştirilmesi esas değişkeni etkilemiyor. Çünkü bir metoda parametre olarak bir dizi verildiğinde derleyici metoda dizinin bellekteki adresini verir; metot o adresteki verilerle çalışır. Dolayısıyla da dizinin herhangi bir elemanındaki değişiklik esas diziyi etkileyecektir. Çünkü gerek esas program, gerekse de metot aynı adresteki verilere erişir.
21
Dizi ve değişken parametreler arasındaki fark
Halbuki bir metoda parametre olarak bir değişken verdiğimizde metot için değişkenin bellekteki adresi önemli değildir, metot için önemli olan değişkenin değeridir. Metot, değişkeni kullanabilmek için geçici bir bellek bölgesi yaratır ve parametre olarak aldığı değişkenin değerini bu geçici bellek bölgesine kopyalar ve o geçici bellek bölgesiyle çalışır. Metottan çıkıldığında da o geçici bellek bölgesi silinir.
22
ref anahtar sözcüğü Bir metoda aktarılan bir değişkende yapılan bir değişikliğin tıpkı dizilerdeki gibi esas değişkeni etkilemesini istersek ref anahtar sözcüğünü kullanırız. ref anahtar sözcüğü değişkenlerin metotlara adres gösterme yoluyla aktarılmasını sağlar. ref sözcüğünün hem metodu çağırırken , hem de metodu oluştururken değişkenden önce yazılması gerekir. Ayrıca ref sözcüğüyle bir değişkenin metoda adres gösterme yoluyla aktarılabilmesi için esas programda değişkene bir ilk değer verilmelidir. Yoksa program hata verir.
23
ref anahtar sözcüğü Bu program ekrana 10 yazacaktır.
24
out anahtar sözcüğü Kullanımı ref anahtar sözcüğüyle tamamen aynıdır.
Tek farkı out ile belirtilen değişkenlere esas programda bir ilk değer verilmesinin zorunlu olmamasıdır.
25
out anahtar sözcüğü
26
Metotların aşırı yüklenmesi
C#'ta parametre sayısı ve/veya parametrelerin türleri farklı olmak şartıyla aynı isimli birden fazla metot yaratılabilir. Buna metotların aşırı yüklenmesi denir. C#, bir metot çağrıldığında ve çağrılanla aynı isimli birden fazla metot bulunduğunda metodun çağrılış biçimine bakar. Yani ana programdaki metoda girilen parametrelerle metotları kıyaslar.
27
Aşağıdaki programda metotların çağrılma sırası :3,1,2 dir.
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.