Programlama Dilinde Metotlar: Metot Oluşturma, Parametre ve Argüman, Değer ve Referans Veri Tipleri, ve Daha Fazlası
METODLAR
Bir yazılım geliştiricisi, kod yazarken birçok işlemi birbiri ardına gerçekleştirir.
Projenin boyutu büyüdükçe kod miktarı da artar ve işler karmaşık hale gelir.
Kod gruplarının tekrarlanması, kod satırlarının kontrolünün zorlaşması ve aynı görevi yerine getiren kod bloklarından hata alındığında tamamını düzeltme gereksinimi ortaya çıkar.
Bu sorunların üstesinden gelmek için fonksiyonel programlama dillerinde fonksiyon, nesne tabanlı programlama dillerinde ise metot kullanılır.
Metotlar, belirli işlemleri gerçekleştirmek için oluşturulurlar ve kod akışında işlem sırası geldiğinde kullanılırlar.
Bu sayede yazılım geliştiricileri aynı işlemi tekrar tekrar yazmak zorunda kalmazlar, daha az kod satırı yazılır, kod karmaşıklığı önlenir ve kodun okunabilirliği artar.
Ayrıca, aynı işlevi farklı yerlerde gerçekleştiren kodun yönetimi tek bir yerden yapıldığı için kod yönetimi ve hata yakalama daha kolay hale gelir.
Bu avantajların yanı sıra, tek bir yerden yönetim sayesinde kod kolayca geliştirilebilir.
- Metot Oluşturma
Metotlar belirli kurallara uygun olarak tanımlanır.
Bu kurallar şunlardır:
- Metotlar bir isimle tanımlanır ve değişken tanımlarında geçerli olan kurallar metot isimlerinde de geçerlidir.
- Metotlar belirli bir erişim seviyesine sahiptirler.
- Metotlar dönüş değeri olabilir. Eğer dönüş değeri yoksa, void anahtar kelimesi kullanılmalıdır.
- Metotlar parametre alabilirler ve birden fazla parametre varsa parametreler virgül (,) ile ayrılır.
- Main Metodu ve Özel İfadeler
• Main() Metodu
Main() metodu, C# programlama dilinde en önemli ve özel metotlardan biridir.
Bu metot, bir C# uygulamasının giriş noktasıdır ve program çalıştırıldığında ilk olarak bu metot çalıştırılır.
Main() metodu, herhangi bir dönüş değeri almayan (void) ve statik (static) bir metottur. Program çalıştırıldığında, Main() metodu otomatik olarak çağrılır ve uygulama bu metodu çalıştırmaya başlar.
Main() metodu, uygulamanın giriş noktası olarak işlev görür ve diğer tüm metotlar bu metot üzerinden çağrılır.
Main() metodu, genellikle programın çalıştırılması sırasında kullanıcı tarafından verilecek olan komut satırı argümanlarını (command-line arguments) almak için kullanılır.
Bu argümanlar, programın çalışması için gerekli olan bazı parametreleri içerebilir.
Main() metodu bu argümanları alır ve bu argümanlara göre programın ilgili işlemlerini yapar.
Özetle, Main() metodu, bir C# programının giriş noktasıdır ve uygulamanın çalışmasını sağlamak için gereklidir. Bu metot, programın gerekli işlemlerini yapmak için diğer metotları çağıran ve programın kontrolünü sağlayan önemli bir rol oynar.
• Return Anahtar Sözüğü
return anahtar sözcüğü, bir fonksiyon veya metot içerisinde kullanılarak, fonksiyonun çağrıldığı yere bir değer veya nesne döndürmek için kullanılır.
• This Anahtar Sözcüğü
Bu örnekte "Ogrenci" adında bir sınıf tanımlanmıştır. Bu sınıfın "adi" ve "yasi" adında iki tane özel değişkeni vardır. "Ogrenci" sınıfının yapıcı metodu ("constructor"), "adi" ve "yasi" değerlerini alır ve bu değerleri sınıfın özel değişkenlerine ("adi" ve "yasi") atar. "BilgileriYazdir" adında bir metot da tanımlanmıştır. Bu metot, "adi" ve "yasi" özel değişkenlerini ekrana yazdırır.
Gördüğünüz gibi, yapıcı metot ve "BilgileriYazdir" metodu içinde "this" anahtar sözcüğü kullanılmıştır.
Böylece, "adi" ve "yasi" gibi benzer adlara sahip olan değişkenlerin sınıfın özel değişkenleri olduğu belirtilmiştir.
Bu sayede, "adi" ve "yasi" değişkenleri global olarak tanımlanmış olsalar bile, "this" anahtar sözcüğü sayesinde bu değişkenlerin sınıfın özel değişkenleri olduğu belirtilerek doğru şekilde kullanılması sağlanmıştır.
- Parametre ve Argüman
Parametre tanımı: Bir metotun girdi olarak beklediği değişkenlerdir. Bu değişkenler, metot imzasında belirtilen tiplerde olmalıdır.
Argüman tanımı: Bir metot çağrısında, belirlenen parametrelerin gerçek değerleridir. Argümanlar, parametrelerin sırasına uygun olarak belirtilmelidir.
- Metot Türleri
Geriye Değer Dönmeyen Metotlar (void): Bu tür metotlar, herhangi bir değer döndürmezler.
Sadece işlemler yapar ve programın akışını değiştirirler. Örneğin, ekrana bir mesaj yazdırmak için kullanılabilirler.
Geriye Değer Dönen Metotlar: Bu tür metotlar, bir değer döndürürler. Bu değer, metot tarafından hesaplanan veya işlenen verilerin sonucu olabilir. Örneğin, bir metot, iki sayıyı toplar ve toplamı geri döndürür.
Parametre Almayan Metotlar: Bu tür metotlar, herhangi bir parametre almadan çalışırlar. Bu nedenle, metot içinde kullanılacak veriler önceden tanımlanmış olmalıdır.
Parametre Alan Metotlar: Bu tür metotlar, bir veya daha fazla parametre alırlar. Bu parametreler, metot tarafından işlenecek verileri belirler. Örneğin, bir metot, iki sayı alabilir ve bu sayıların toplamını hesaplayabilir.
Yöntem Aşırı Yüklemesi (Method Overloading): Bu tür metotlar, aynı isimle birden fazla kez tanımlanır ve her biri farklı parametreler alır. Bu sayede, aynı işlevi farklı tipte veya sayıda verilerle kullanmak mümkün olur.
- Metot Çağrıları
Metot çağırma, bir metodu çalıştırmak için kullanılan kavramdır. Metodlar, yalnızca lokal alanda çağrılabilirler ve global alanda kod bloğu olarak dururlar.
C# programlama dili, metotların kullanımını kolaylaştırmak için bazı ipuçları sunar.
Örneğin, oluşturulan metoda açıklama eklemek için metot imzasının üzerine yan yana üç adet slash işareti (///) eklenir. Ayrıca, otomatik açılan summary aralığına metodun yaptığı işlemlerle ilgili kısa bir açıklama eklenebilir.
Bu sayede, metodun hangi görevi yerine getirdiği diğer kullanıcılar tarafından kolayca anlaşılabilir.
Metod adının üzerine gelindiğinde ise açıklama görüntülenebilir.
- Değer ve Referans Veri Tipleri
C# programlama dilinde, veri tipleri değer tipi ve referans tipi olmak üzere ikiye ayrılır. Değer tipleri, bellekte stack alanında oluşturulur ve değişkenler doğrudan bellekteki değerleri tutarlar. Bu tür veri tipleri arasında bool, char, int, float ve double gibi temel veri tipleri bulunur.
Referans tipleri ise, bellekte heap alanında oluşturulan nesnelerin adreslerini tutarlar. Bu tür veri tipleri arasında sınıflar, arayüzler, diziler ve delegeler gibi karmaşık yapılar bulunur. Referans tipleri, değişkenlerin bellekteki adreslerini tutarak, aslında nesneye işaret ederler.
Değer tipleri ile referans tipleri arasındaki temel fark, bellekteki yerleşim yerleridir. Değer tipleri stack bellek bölgesinde oluşturulurken, referans tipleri heap bellek bölgesinde oluşturulur. Değer tipleri direkt olarak bellekteki değerleri saklarlar ve hızlı bir şekilde erişilebilirlerken, referans tipleri bellekteki adresleri sakladıkları için biraz daha yavaş erişilebilirler.
Bu bilgi, C# programlama dilinde veri tipleri konusunda önemlidir. Değer tipleri ve referans tipleri arasındaki farkın anlaşılması, doğru türde değişkenlerin kullanılmasını sağlar ve programların daha verimli çalışmasına yardımcı olur.
Evet, değer tipleri hızlı bir şekilde erişilebilirler ve bellekte az yer kaplarlar. Bu nedenle, programcılar genellikle basit değişkenlerde (int, float, bool vb.) değer tiplerini kullanırlar.
Referans türleri ise, bellekte veri yerine adresi tutarlar. Bu nedenle, referans türleri bellekte daha fazla yer kaplayabilirler ve hızlı bir şekilde erişilemezler. Ancak, referans türleri daha karmaşık veri yapılarının oluşturulmasına izin verirler ve birbirleriyle ilişkili nesnelerin oluşturulmasını sağlarlar.
Bir ifade referans türleri içeriyorsa, işlemler nesnenin adresi üzerinden yapılır. Bu nedenle, referans türleri kullanırken, değişkenlerin değil, adreslerin işlendiğine dikkat etmek gerekir. Bu, programlama hatalarının önlenmesine yardımcı olur.
Değer Tipleri:
- int
- float
- double
- char
- decimal
- long
- bool
- short
- byte
- enum
- struct
Referans Tipleri:
- string
- class
- object
- array
- interface
- pointer
- delegate
Yukarıdaki listede, C# dilinde yer alan veri tipleri değer ve referans olmak üzere iki kategoriye ayrılmaktadır. Değer tipleri, veriyi doğrudan bellekte saklar ve hızlı bir şekilde erişilebilirken, referans tipleri verinin bellekteki adresini tutar ve daha fazla bellek kullanımına neden olabilirler.
- Değer ve Referans ile Çağırma
Programlama dilinde, metotlara gönderilen değişken türüne göre farklı durumlar meydana gelebilir. Değer türünde gönderilen parametreler için, metoda parametrenin bir kopyası gönderilir. Bu nedenle, metot içinde değiştirilen değer, asıl değişkeni etkilemez. Ancak referans türündeki bir değişken metoda gönderildiğinde, değişkenin referansı gönderilir. Bu nedenle, metot içindeki parametre olarak geçilen referans türündeki değişken üzerinde yapılan değişiklikler, orijinal değişkende gerçekleşir. Bu durum, referans türü değişkenlerinin bellekteki adresleri üzerinden işlem yapılması nedeniyle oluşur. Bu özellik, C# dilinde özellikle nesne tabanlı programlama yaparken oldukça faydalıdır.
- Ref - Out Anahtar Sözcükleri
C# programlama dilinde, değer tipleri ve değer tipleri gibi davranan referans tipleri metotlara argüman olarak verildiğinde, bu değişkenlerin kopyaları üzerinden işlem yapılır. Bu nedenle, orijinal değişkenin değerinin değiştirilmesi istendiğinde, argüman olarak değişkenin referans adresi verilmelidir. Bu işlem, C# dilinde "ref" ve "out" anahtar sözcükleri ile gerçekleştirilir.
"Ref" ve "out" anahtar sözcükleri, metot oluşturulurken parametre ile kullanıldığında, argüman olarak verilen değişkenin referans adresine gider ve orijinal değer değiştirilebilir hale gelir. Ayrıca, bu anahtar sözcüklerin diğer önemli kullanım amacı, metotların birden fazla değer döndürmesini sağlamaktır. Bu durumda, C# programlama dili argüman olarak verilen değişkeni metot parametresine referans ile çağırma yöntemi ile gönderir.
- Params Anahtar Sözcüğü
Normal metot tanımlamaları, belirli sayıda parametrelerle sınırlıdır ve işlemler bu parametreler üzerinde gerçekleştirilir.
Ancak, bazı durumlarda kullanıcılar belirsiz sayıda parametre kullanarak işlem yapmak isteyebilirler.
Bu durumda, Params anahtar sözcüğü devreye girer ve aynı tipte olmak koşuluyla metot içinde kullanılabilecek parametre sayısının bilinmediği durumlarda kullanılır.
Params anahtar sözcüğü, dizilerle birlikte kullanılabileceği gibi, dizileri normal dizilerden farklı bir şekilde tutar.
Bu nedenle, params anahtar sözcüğü ile işaretlenmiş bir parametre, metotun en son parametresi olmalıdır. Bu, params anahtar sözcüğü ile işaretlenmiş parametrenin kendinden sonra gelen parametreleri kabul etmeyeceği anlamına gelir.
Bu nedenle, bir metotta sadece bir tane params anahtar sözcüğü kullanılabilir.
Params anahtar sözcüğü, özellikle değişken sayıda parametrelere sahip metotların tanımlanmasında oldukça faydalıdır.
Hiç yorum yok:
Yorum Gönder