Upload
others
View
10
Download
1
Embed Size (px)
Citation preview
ÜNİTE
9
METOTLAR
İÇİNDEK
İLER
• Metotlar
• Metot Oluşturma ve Kullanma
• Metot Parametresi Olarak Diziler
• Değer ve Referans Parametreleri
• Metotların Aşırı Yüklenmesi
• Kendini Çağırabilen Metotlar
HED
EFLER •Bu üniteyi çalıştıktan sonra;
•Metot tanımlayıp programlar içerisinde kullanabilecek,
•Değer ve Referans Parametreleri arasındaki farkları öğrenip uygulayabilecek,
• Kendini çağırabilen metotları yazabileceksiniz.
NESNE TABANLI
PROGRAMLAMA – I
Okt. Mustafa
AKBUĞA
Metotlar
Atatürk Üniversitesi Açıköğretim Fakültesi 2
GİRİŞ
Bilgisayar dillerinin öğretilmesinde, fonksiyonlar ve metotlar önemli bir
ağırlığa sahiptir. Bunun sebebi ise sürekli tekrar edilmesi gereken kodların bir kod
bloğuna yazılarak, her defasında aynı kodları yazmak yerine bu kod bloğunun
çağrılarak çalıştırılmasıdır. Bu sayede hem hata yapma ihtimali en aza indirilir hem
de zamandan kazanılarak program yapısı küçültülmüş olur.
Şu ana kadar yapılan örneklerde genelde sistem tarafından hazırlanmış C #
dilindeki ReadLine(), WriteLine() vb. gibi hazır metotlar kullanılmıştır.Bu ünitede ise
özel metodlar tanımlanarak, programların içerisinde nasıl kullanılacağı
anlatılacaktır.
METOTLAR
Nesneye yönelik programlama dillerinde genellikle fonksiyonlar “metot”
olarak isimlendirilir. Her çalışan C# programında bir ana metot (Main) mevcuttur.
Program çalışmaya ilk olarak bu metotla başlar. Tüm kodların bu (Main) metodu
içine yazılması da büyük programlar için iyi bir programcılık sayılmaz. Çünkü
gerçek hayatta olduğu gibi programlarda bir bütün olarak ele alınmamalıdır. Küçük
parçalara ayrılarak, her parça için uygun birer metot yazılmalıdır.
Programın herhangi bir yerinde kullanmak için belirli bir işi yerine getirmek
amacıyla tasarlanmış alt programlara metot denir. C#’ta bildirilen bütün metotlar
mutlaka bir sınıfın içinde olmalıdır. Bir sınıfın üyesi olmayan metotlar bildirilemez.
Burada bahsedilen Sınıflarla ilgili bilgiler bir sonraki ünitede anlatılacaktır.
Metot Oluşturma ve Kullanma:
Metotları tanımlarken kullanılan bildirim şu şekildedir:
[ erişim belirteçleri ] < dönüş değeri > metot ismi ( parametre
listesi )
{
metot gövdesi;
}
[erişim belirteçleri]: Erişim belirteçleri (Private, Public, Protected,
Protected Internal) ,metoda nerelerden erişilebileceğini belirleyen ayarlardır.
Belirtilmediği durumlarda “private” olarak kabul edilir. Yani sadece tanımlandığı
sınıf içinde kullanılabilen bir metot hâline gelir.
<Geri dönüş değeri>: Tanımlanan metodun, çağıran fonksiyona
gönderdiği veririn (int, float, string, bool ..vb.) türüdür.
Metotlar tek başlarına
çalıştırılabilen yapılar
değildir. Metot, sadece
metodu çağıran ana
program için faydalı
işler yapar.
Metodun iş yapması
için kendisini çağıran
metottan aldığı bilgilere
parametre (argüman),
kendisini çağıran
fonksiyona döndürdüğü
bilgiye ise geri dönüş
değeri (return value)
denir.
Metotlar
Atatürk Üniversitesi Açıköğretim Fakültesi 3
Metot ismi: Her bir metot tanımlanırken metota mutlaka bir isim verilir.
Metot çağrılırken verilen bu isim kullanılarak çağırma işlemi yapılabilir.
(Parametre listesi): Parametreler ise metodun çalışırken ihtiyaç duyduğu
çağıran fonksiyondan gönderilen bilgileridir.
Örnek tanım şekli:
using System; class Program { int MetotAdi(int a, int b) { return a + b; } }
Bu metot, iki int türünden girdi değerini alır ve bu girdilerin toplamını int
türünden tutar. Ancak bu metot statik olmadığından programımız içinde
kullanabilmemiz için bu metodun içinde bulunduğu sınıf türünden bir nesne
yaratıp “.” operatörüyle bu nesne üzerinden metodumuza erişmeliyiz.
Yukarıda verilen tanıma uygun kullanım Şekil 9.1’de örnek program_1’de
içerisindeki kodla gösterilmiştir.
Örnek program_1:
Şekil 9.1. Dinamik olarak tanımlanmış metotların kullanımını gösteren C# kodu
Metotlar, statik ve
dinamik olmak üzere iki
faklı şekilde bellekte yer
kaplar.
Metotlar
Atatürk Üniversitesi Açıköğretim Fakültesi 4
Şekil 9.2. Örnek program_1’in ekran görüntüsü
Statik olarak tanımlanan metotlara erişmek için metodun içinde bulunduğu
sınıf türünden bir nesne yaratmaya gerek yoktur. Statik olarak tanımlanan
metotlara sadece metodun adını yazarak erişilebilir. Şekil 9.2’deki ekran
görüntüsüyle aynı sonucu verecek şekilde metot tanımı Şekil 9.3’te örnek
program_2’de gösterilmiştir.
Örnek program_2:
Şekil 9.3. Statik olarak tanımlanmış metotların kullanımını gösteren C# kodu
Şekil 9.4. Örnek program_2’nin ekran görüntüsü
Şekil 9.3 içerisindeki kırmızı okla işaretlenen Topla metodu tanımında static
anahtar kelimesi kullanılmıştır. Bu kelimenin kullanılması ile ikinci okla işaretlenen
yerde metodun sadece ismi ve parametreleri verilerek toplama işlemi
Bütün programlarda
önce Main metodu
çalışır. Diğer metotlar
Main metodunun
içinden çağrılmadıkça
çalışmaz.
Metotlar
Atatürk Üniversitesi Açıköğretim Fakültesi 5
yaptırılmıştır. Şekil 9.2 ve Şekil 9.4’teki ekran çıktılarına dikkat edilirse tanımlanan
metotların aynı sonuç ürettikleri görülecektir.
Örnek program_3:
Metodun oluşturulmasında tanım satırının başına public anahtar sözcüğü
konmuş ise bu metoda, her sınıftan erişilmesinin önünü açacaktır. Bu durum Şekil
9.6’da kırmızı okla gösterilmiştir. Eğer public sözcüğü yazılmamış olsaydı bu
metoda sadece Metotlar sınıfının dışından erişilemezdi. Erişim belirleyiciler Sınıflar
ve Nesneler ünitesinde daha ayrıntılı olarak anlatılacaktır.
Şekil 9.6. Public olarak tanımlanmış metotların kullanımını gösteren C# kodu.
Herhangi bir değer tutmayan (WriteLine gibi) metotlar da void anahtar
sözcüğüyle kullanılır. void anahtar sözcüğünün kullanıldığı yerlerde return ve geri
dönüş değeri bulunmaz. Daha önceki örneklerde sıkça kullanıdığımız WriteLine
metodunun yerine geçecek Yaz metodu aşağıdaki örnek Program_4’deki gibi
hazırlanabilir.
Örnek program_4:
Şekil 9.7. Yaz metodunun hazırlanmasını gösteren C# kodu
Bütün değer tutan
metotlar bir değermiş
gibi kullanılabilir, ancak
değişkenmiş gibi
kullanılamaz.
Metotlar
Atatürk Üniversitesi Açıköğretim Fakültesi 6
Şekil 9.8. Örnek program_4’ nin ekran görüntüsü
Şekil 9.7 ‘ye dikkat edilirse Yaz metodunun tanım satırında public anahtar
kelimesi kullanılmıştır. Bu sebeple bu metot başka sınıflar içinden WriteLine gibi
rahatça çağrılabilir. Ayrıca statik olarak tanımlandığından bu metot çağrılırken
sadece metot isminin yazılması yeterli olacaktır.
Örnek program_4’ün çalıştırılması sonucu Şekil 9.8’de gösterildiği gibi
parametre olarak verilen değerlere uygun olarak “Nesne Tabanlı Programlama”
ifadesi üç kez yazılmıştır.
Metotların doğru tanımlanması için aşağıdaki hususlara dikkat edilmesi gerekir:
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 yazarken
verilen türle uyumlu olmalıdır.
Değer tutmayan (void ile belirtilmiş) metotlarda return komutu herhangi bir
ifadeyle kullanılmaz.
Değer tutmayan metotların bir değermiş gibi kullanılması mümkün değildir.
Metotlar değer tutmayabileceği gibi ayrıca parametre de almayabilirler.
Metotlar içinde tanımlanan değişkenler programın başından sonuna kadar
durmaz. Bu değişkenler, programın akışı metoda geldiğinde tanımlanır.
Metodun işlevi bittiğinde ise bellekten silinir.
Metod Parametresi Olarak Diziler
Diziler C#‘ta ayrı bir tür olarak ele alındığı için Dizi kavramı, tanımlama ve
dizi elemanları üzerindeki işlemler gibi konular diziler ve koleksiyonlar ünitesinde
ayrıntılı olarak anlatılacaktır. Bu bölümde sadece Dizilerin metod içerisinde
kullanılacağına değinilecektir.
Metot tanımında void
anahtar sözcüğü
kullanılmışsa, return ve
geri dönüş değerine yer
verilmez.
Metotlar
Atatürk Üniversitesi Açıköğretim Fakültesi 7
[ erişim belirteçleri ] < dönüş değeri > metot ismi ( tür[]
diziAdı )
{
Metot gövdesi;
}
Önceden verilen metot tanımında parametre kısmına dizi elemanın türü ve
adı yazılarak diziler metot içinde kullanabilir. Bu durum örnek program_5’te
gösterilmiştir.
Örnek program_5:
Şekil 9.9. Metot içerisinde dizilerin kullanılmasını gösteren C# kodu.
Şekil 9.9‘da verilen C# kodlarının, kırmızı okla işaretlenen program
satırında, yeniDizi adında int veri türünde ve (0,1,2,3,4) üye değerine sahip 5
elemanlı bir dizi tanımlanmıştır ve Yaz(yeniDizi) program koduyla da Yaz metodu,
almış olduğu dizinin bütün elemanlarını Şekil 9.10’da gösterildiği gibi ekrana
yazdırmaktadır.
Şekil 9.10. Örnek program_5’ nin ekran görüntüsü
Değer türleri stack
hafıza bölgesinde
tutulur. Başvuru türleri
(nesneler) ise heap
üzerinde oluşturulur.
Metotlar
Atatürk Üniversitesi Açıköğretim Fakültesi 8
Değer Ve Referans Parametreleri
Bir metot içerisine parametre olarak aktarılan dizinin, metot içindeki bir
elemanının değiştirilmesi esas diziyi de etkiler. Çünkü bir metoda parametre olarak
bir dizi verildiğinde derleyici metoda dizinin bellekteki adresini verir; metot o
adresteki verilerle çalışır. Bu yüzden metot içerisinde verilen dizi değerine referans
tipli parametreler adı verilir.
Bir metoda parametre olarak bir değişken değeri verildiğinde ise metot için
değişkenin bellekteki adresi artık ö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. Metoda parametre olarak aktarılan
değişkenin metot içinde değiştirilmesi esas değişkeni etkilemez. Metottan
çıkıldığında da o geçici bellek bölgesi de silinir. Bu yüzden metot içerisinde verilen
değişken değerileri için değer tipli parametreler denir.
Ancak bazı durumlarda değer tipli parametreler de referans tipli olarak
kullanılmak istenebilir. Bu durum özellikle metot dışına birden fazla hesaplanmış
değer çıkarılacağı zamanlarda oldukça faydalıdır. Bunun için Virtual C#,
programlama dilinde out ve ref anahtar sözcükleri kullanılır.
Bilgisayarda bellek bölgeleri:
Bilgisayarlar genelde belleklerinde, uygulama programlarını ve bu
programların kullandığı veriyi tutarlar. Değer ve referans türleri arasındaki farkları
anlamak için, bellekte verinin nasıl düzenlendiğini anlamak yararlı olacaktır.
C# , System.IO kütüphanesini ve dosya metotlarını kullanmadan harici
disklere erişemez. İşletim sistemleri ve programlama dilleri verileri tutmak için
sistemde kullanılan RAM belleği, her biri ayrı ayrı yönetilen iki büyük parçaya ayırır.
Belleğin iki büyük parçasına stack ve heap adı verilir.
Bu bellek bölgeleri iki farklı amaca hizmet eder:
Bir yöntemi çağırdığınızda, o yöntemin değerleri ve yerel değişkenleri için
gerekli bellek her zaman stack’dan alınır. Yöntem bittiğinde değerler ve
yerel değişkenler için alınan bellek, otomatik olarak stack’a geri verilir.
new anahtar sözcüğünü kullanarak bir nesne oluşturduğunuzda, nesneyi
oluşturmak için gerekli bellek her zaman heap’ten alınır. Başvuru
değişkenlerini kullanarak birkaç yerden aynı nesneye başvurulabilmektedir.
Bir nesneye son başvuru geçersiz olduğunda, nesne tarafından kullanılan
bellek de, yeniden kullanıma uygun hâle gelir.
Başlangıç değeri
bulunan değer
tiplerindeki
değişkenlerin değerleri
metotlara ref anahtar
sözcüğü ile aktarılırken,
ilk değeri olmayan
değişkenlerin değeri ise
out anahtar sözcüğü ile
aktarılır.
Metotlar
Atatürk Üniversitesi Açıköğretim Fakültesi 9
out ve ref Anahtar sözcükleri:
out anahtar sözcüğü, metotlarda değer tipli parametrelerin referans tipli olarak
verilmesi amacıyla kullanılır. Bu şekilde tanımlanmış parametrelerde ilk değer
verme zorunluluğu yoktur. İlk değerler istenirse metot içerisinde verilebilir. ref
anahtar sözcüğü ile tanımlanan parametreler de değer tipini aynı out gibi referans
tipi olarak aktarmak amacıyla kullanılır. Fakat değer tiplerini referans olarak bu
sözcükle aktarırken ilk değer verme zorunluluğu vardır.
Örnek program_6:
Şekil 9.11. Metot içerisinde out anahtar kelimesinin kullanılmasını gösteren C# kodu
Şekil 9.12. Örnek program_6’nın ekran görüntüsü
Şekil 9.11‘deki örnek program_6 incelendiğinde Main ana programında int
sayı adında bir değişken tanımlanmış ve ilk değeri olmadan bu hâliyle Değiştir
metoduna gönderilmiştir. Değiştir metodu içinde sayı değişkeninin değeri 3 olarak
belirlenerek Yaz metodu çalıştılmış ve ekrana Şekil 9.12’de görülen 3 değeri
Metotlar
Atatürk Üniversitesi Açıköğretim Fakültesi 10
yazdırılmıştır. return anahtar kelimesi kullanılmadan metot dışına bu şekilde bir
değişken değerin referans değer gibi alınabildiği gösterilmiştir.
Örnek program_7:
Şekil 9.13. metot içerisinde ref anahtar kelimesinin kullanılmasını gösteren C# kodu
Şekil 9.14. Örnek program_7’nin ekran görüntüsü
Şekil 9.12‘deki örnek program_7 incelendiğinde Main ana programında int
sayı adında bir değişken tanımlanmış ve ilk değeri 3 olarak verilmiştir. ref anahtar
kelimesi ile Değiştir metoduna gönderilmiştir. Değiştir metodu içinde sayı
değişkeninin değeri 9 olarak belirlenerek Yaz metodu çalıştılmış ve ekrana Şekil
9.12’de görülen 9 değeri yazdırılmıştır. Başlangıçta değeri 3 olan bir değişken ref
anahtar kelimesiyle yardımıyla metot içerisine gönderilmiş ve değeri değiştirilerek
return anahtar kelimesi kullanılmadan metot dışına alınabilmiştir.
Metotlar
Atatürk Üniversitesi Açıköğretim Fakültesi 11
Metotların Aşırı Yüklenmesi
C#’ta parametre sayısı veya parametrelerin türleri farklı olmak şartıyla aynı
isimli birden fazla metot oluşturulabilir. Bu şekilde tanımlanan metotlara
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 yaratılmış olan metotların parametrelerini kıyaslar. Önce
parametre sayısına bakar. Eğer aynı isimli ve aynı sayıda parametreli birden fazla
metot varsa bu sefer parametre türlerinde tam uyumluluk arar, uyumlu bulduğu
metodu çalıştırarak sonucu ekrana yazdırır. Parametre türlerinin tam uyumlu
olduğu bir metot bulamazsa program hata verir.
Örnek program_8:
Şekil 9.15. Metotların aşırı yüklenmesini gösteren C# kodu.
Şekil 9.16. Örnek program_8’in ekran görüntüsü
Çalışma zamanında
hangi metodun
çağrıldığını
belirleyebilmek için
metodun imzasına
(method signature)
bakılır.
Metotlar
Atatürk Üniversitesi Açıköğretim Fakültesi 12
Şekil 9.15’te kodları gösterilen örnek program_8’de MetodA ismindeki üç
metot da aynı sayıda parametre almıştır. Bu durumda parametrelerin türlerine
bakılır. Ana programdaki MetotA("Atatürk Üniversitesi","Açıköğretim Fakültesi");
satırıyla üçüncü metot ilk olarak çağrılır. MetotA(6,9); metot çağrımının parametre
türlerinin tam uyumlu olduğu metot birinci metottur, o yüzden birinci metot ikinci
olarak çağrılır. Eğer birinci metot oluşturulmamış olsaydı ikinci metot çağrılacaktı.
Son olarak MetotA(1.11f,99.99f); satırıyla da ikinci metot çağrılacaktır. Bu durum
Şekil 9.16’da program görüntüsünde gösterilmiştir.
Kendini Çağırabilen Metotlar
Kendi kendini çağıran metotlara özyenileyici (recursive) metotlar denilir. Bu
metotlarda, çağrımı sonlandıran bir kontrol yapısı metot içerisine mutlaka
yerleştirilmelidir. Şekil 9.17’de özyenileyici metot örneği yer almaktadır. Örnek
program_8’in çalışmasıyla Şekil 9.19’daki ekran çıktısı görülecektir.
Örnek program_8:
Şekil 9.17. Metotların aşırı yüklenmesini gösteren C# kodu
Şekil 9.17’deki gösterilen kod incelendiğinde Cevir metoduna parametre
verilen Onluk sayı, metod içinde kendi kendini tekrarlayarak ikilik sayı sistemine
çevrilmektdir. Metod içinde kırmızı okla işaretlenen kod satırı metot için kotrol
yapısı oluşturmaktadır.
Şekil 9.18. Örnek program_8’in ekran görüntüsü
Bir metodun imzası
metodun adı,
parametrelerin sayısı ve
türleri ile ilgilidir.
Metodun geri dönüş
değerleri imzasına dâhil
değildir.
Metotlar
Atatürk Üniversitesi Açıköğretim Fakültesi 13
Main metodu
Çalışan her programda mutlaka bir Main metodunun bulunması gerekir.
Bütün programlarda ilk önce Main metodu çalıştırılır. Diğer metotlar Main
metodunun içinden çağrılmadıkça çalışmaz. Bu özellikler dışında Main metodunun
diğer metotlardan başka hiçbir farkı yoktur. Ancak şimdiye kadar Main metodunu
yalnızca static void Main() şeklinde parametresiz kullandık. Ancak Main
metodunun int türünden (static int Main( ) ) bir geri dönüş değeri de döndürmesi
sağlanabilir. Bu değer genellikle işletim sistemine programın çalışması hakkında
bilgi vermek amacıyla kullanılır. Örneğin Main metodu 0 değerini döndürürse
işletim sistemi programın düzgün şekilde sonlandırıldığını, 1 değerini döndürürse
de hatalı sonlandırıldığını anlayabilmektedir. Ayrıca Main metodu parametre de
alabilir. Komut satırından çalıştırıldığında verilen parametreleri bir string dizisi içine
alarak da işleyebilmektedir.
Örnek program_9:
Şekil 9.19. Metotların aşırı yüklenmesini gösteren C# kodu
Şekil 9.20. Örnek program_8’in ekran görüntüsü
Şekil 9.21. Örnek program_8’in ekran görüntüsü
Metotlar
Atatürk Üniversitesi Açıköğretim Fakültesi 14
Şekil 9.22. Örnek program_8’in ekran görüntüsü
Metotlar
Atatürk Üniversitesi Açıköğretim Fakültesi 15
Özet
•Nesne tabanlı programlamada sürekli tekrar edilmesi gereken olan kodlar bir kod bloğuna yazılarak, her defasında aynı kodları yazmak yerine bu kod bloğu çağrılarak çalıştırılır.Bu şekilde yapılandırılmış kod bloklarına fonksiyon ya da metot adı verilir.
•Metotlar sayesinde programda hem hata yapma şansı en aza indirilir hem de zamandan kazanılarak program yapısı küçültülmüş olur.
•Metotlar tanımlanırken erişim belirleyici, geri dönüş değeri,metot ismi ve parametre liste sırasıyla verilir.
•Metodun iş yapması için kendisini çağıran metottan aldığı bilgilere parametre, kendisini çağıran fonksiyona döndürdüğü bilgiye ise geri dönüş değeri denir.
•Bir metod içerisine parametre olarak aktarılan dizinin, metot içindeki bir elemanının değiştirilmesi esas diziyi de etkiler.Bu yüzden metoda parametre olarak bir dizi verildiğinde derleyici, metoda dizinin bellekteki adresini verir; metot o adresteki verilerle çalışır. Bu yüzden metot içerisinde verilen dizi değerine referans tipli parametreler adı verilir.
•Metoda parametre olarak aktarılan değişkenin metot içinde değiştirilmesi esas değişkeni etkilemez. Metottan çıkıldığında da o geçici bellek bölgesi de silinir. Bu yüzden metot içerisinde verilen değişken değerlerine değer tipli parametreler denir.
•Değer tipli parametreler, referans tipli olarak kullanılmak istenebilir. Bunun için Virtual C#, programlama dilinde out ve ref anahtar sözcükleri kullanılmaktadır. Başlangıç değeri bulunan değer tiplerindeki değişkenlerin değerleri metotlara ref anahtar sözcüğü ile aktarılırken; ilk değeri olmayan değişkenlerin değeri ise out anahtar sözcüğü ile aktarılır.
•İşletim sistemleri ve programlama dili çalışma zamanları sık sık veriyi tutmak için kullanılan RAM, belleği her biri ayrı olarak yönetilen iki büyük parçaya ayırır. Belleğin iki büyük parçasına stack ve heap adı verilir.
•Bir yöntemi çağırdığınızda, o yöntemin değerleri ve yerel değişkenleri için gerekli bellek her zaman stack'dan alınır.
•new anahtar sözcüğünü kullanarak bir nesne oluşturduğunuzda, nesneyi oluşturmak için gerekli bellek her zaman heap'ten alınır.
•C#'ta parametre sayısı veya parametrelerin türleri farklı olmak şartıyla aynı isimli birden fazla metot oluşturulabilir Bu şekilde tanımlanan metotlara metotların aşırı yüklenmesi denir.
•Kendi kendini çağıran metotlara özyenileyici (recursive) metotlar denilir. Bu metotlarda, çağrımı sonlandıran bir kontrol yapısı metod içerisine mutlaka yerleştirilmelidir.
•Her çalışan C# programında mutlaka bir ana (Main) metot mevcuttur. Program ilk çalıştığında bu metotla başlar.
Metotlar
Atatürk Üniversitesi Açıköğretim Fakültesi 16
DEĞERLENDİRME SORULARI
1. Bir metot tanımında aşağıdakilerden hangisi yer almaz?
a) Erişim belirteçleri
b) Dönüş değeri
c) Adlandırma ismi
d) New anahtar sözcük
e) Parametre listesi
2. Metotların tanımlanmasına ilişkin aşağıdakilerden hangisi kesinlikle hatalıdır?
a) Metotların parametreleri doğru sayıda ve türde verilmelidir.
b) Değer tutan metotlarda return satırıyla verilen ifade, metodu yazarken
verilen türle uyumlu olmalıdır.
c) Değer tutmayan metotlarda void sözcüğü kullanılır.
d) Metotlar içinde tanımlanan değişkenler, metodun işlevi bittiğinde silinir.
e) Metotlarda mutlaka parametre kullanılmalıdır.
3. Aşağıdakilerden hangisi metotlarda değer tipi parametrelerin referans tipli olarak
kullanılmasını sağlar?
a) new
b) class
c) out
d) int
e) void
Değerlendirme sorularını
sistemde ilgili ünite
başlığı altında yer alan
“bölüm sonu testi”
bölümünde etkileşimli
olarak cevaplayabilirsiniz.
Metotlar
Atatürk Üniversitesi Açıköğretim Fakültesi 17
4.
using System; class sorular { static void Hesapla(... int sayi1) { sayi1=4; } static void Main() { int sayi=0; Hesapla(... sayi); }}
Yukarıda verilen kodlar içerisindeki (...) ile gösterilen boşluğa aşağıdaki anahtar
sözcüklerden hangisi gelmelidir?
a) new
b) class
c) out
d) ref
e) void
5.
using System; class Sorular { int Topla(int a,int b) { return a + b; } static void Main() { Sorular soru5 = new Sorular(); int a = soru5.(.....); Console.Write(a); } }
Yukarıda verilen kodlar içerisindeki (...) ile gösterilen boşluğa aşağıdaki kod
satırlarından hangisi gelmelidir?
a) Topla (0, 100);
b) Topla ( 100);
c) Sorular ( 100);
d) Sorular (0,100);
e) Soru5 ( 0,100);
Metotlar
Atatürk Üniversitesi Açıköğretim Fakültesi 18
6. Referans tipler bilgisayar hafızasının hangi bölümünde saklanır?
a) Heap bölgesinde
b) Stack bölgesinde
c) Harddiskte
d) Diskette
e) Flash diskte
7. Değer tipler bilgisayar hafızasının hangi bölümünde saklanır?
a) Heap bölgesinde
b) Stack bölgesinde
c) Harddiskte
d) Diskette
e) Flash diskte
8. Aşağıdaki erişim türlerinden hangisine her yerden ulaşmak mümkündür?
a) Private
b) Protected
c) Public
d) Internal
e) Proteced Internal
9. C#’ta parametre sayısı ve parametre türleri farklı olmak koşulu ile aynı isimde faklı
metotlar oluşturma işlemine ne denir?
a) Kendini çağıran
b) Ana metot
c) Yavru metot
d) Fonksiyon
e) Aşırı yükleme
Metotlar
Atatürk Üniversitesi Açıköğretim Fakültesi 19
10.
using System; class Sorular { static void Islem(int a) { if (b == 0) return;
.... (b>>1); Console.Write(b & 1); } static void Main() { Islem(10); } }
Yukarıda verilen kodlar içerisindeki (...) ile gösterilen boşluğa hangi kod
satırında verilen anahtar sözcük gelmelidir?
a) Islem
b) Main
c) Sorular
d) new
e) void
Cevap Anahtarı:
1.D,2.E, 3.C,4.D,5.A,6.A,7.B,8.C,9.E,10.A
Metotlar
Atatürk Üniversitesi Açıköğretim Fakültesi 20
YARARLANILAN KAYNAKLAR VE BAŞVURULABİLECEK
DİĞER KAYNAKLAR
ALGAN, Sefer, (2010), Her Yönüyle C#, İstanbul: Pusula Yayıncılık, İstanbul.
AKTAŞ, Volkan, (2013), Her Yönüyle C# 5.0, KODLAB, İstanbul.
CLARK, Dan, (2013), Your visual blueprint for building.NET application, 2nd Edition,
Hungry Minds, New York.
SCHILDT, Herbert, (2002), The Complete Reference C#, çev. Duygu Arbatlı Yağcı, Alfa
Basım Yayım Dağıtım, İstanbul.
SHARP, John, (2002), Microsoft Visual C#.NET, çev. Mert Derman, Arkadaş Yayınevi,
Ankara.
YANIK, Memik, (2004), Microsoft Visual c#.NET, 1.Baskı, Seçkin Yayıncılık, Ankara.