Static metotlar
static metotları ve örnek olmadan çağırmayı öğrenirsin.
Static metotlar
Bir statik metot (static method), sınıf adı üzerinden çağrılır ve örnek üretmeyi gerektirmez. Örnek alanlarına erişemez; yalnızca statik alanları kullanabilir.
Tanımlamak için static anahtar kelimesi dönüş türünden önce yazılır: public static int Square(int n). Çağırmak için MathHelper.Square(5) yazılır. Yardımcı (helper) işlemler, matematiksel hesaplar ve dönüşümler statik metot olarak tasarlanır.
Ne zaman statik metot?
Statik metot, örnek durumuna (instance state) ihtiyaç duymayan işlemler için uygundur. Bir metot yalnızca parametrelerine ve sınıfın statik üyelerine bakıyorsa, statik yapılabilir.
Örnek: int.Parse("42"), Math.Max(3, 5), string.IsNullOrEmpty(s). Bunların hiçbiri bir nesne örneği gerektirmez. Öte yandan bir Account nesnesinin Balance alanını okuyan metot örnek metot olmalıdır.
Uygulama Kare hesaplayan yardımcı
MathHelper sınıfına public static int Square(int n) metodunu ekle. Gövdesi n * n döndürsün. Main içinde MathHelper.Square(5) çağırıp sonucu yazdır.
Örnek çözümü göster
MathHelper içine `public static int Square(int n) { return n * n; }` ekle. Main içine `Console.WriteLine(MathHelper.Square(5));` yaz.
Örnek çözüm:
using System;
class MathHelper
{
public static int Square(int n)
{
return n * n;
}
}
class Program
{
static void Main()
{
Console.WriteLine(MathHelper.Square(5));
}
}
Kendini test et
-
Boşluğu doldur: statik metot tanımı
class MathHelper { public ____ { return n * n; } }Cevabı göster
class MathHelper { public static int Square(int n) { return n * n; } } -
Aşağıdakilerden hangisi doğrudur?
- Statik metot yalnızca statik üyelere erişir.
- Statik metot örnek alanlara erişebilir.
- Statik metot yalnızca örnek üzerinden çağrılır.
- Statik metot yapıcı metot olabilir.
Cevabı göster
Statik metot yalnızca statik üyelere erişir. — Doğru. Statik metot örnek üyelere erişemez, yalnızca statik üyelere erişir.
-
Eşleştir: statik metot çağrıları
- Math.Max(3, 5)
- iki sayının büyüğü
- int.Parse("42")
- dizeyi tamsayıya çevirir
- MathHelper.Square(5)
- kareyi hesaplar
- string.IsNullOrEmpty(s)
- boş dizeyi denetler