Static alanlar
static alanların sınıf düzeyinde paylaşılmasını öğrenirsin.
Static alanlar
Bir statik alan (static field), sınıfın kendisine ait bir veridir. Örnek (instance) alanları her nesnede ayrı bir kopya tutarken, statik alanlar tüm örnekler arasında paylaşılan tek bir kopya tutar.
Bir alanı statik yapmak için static anahtar kelimesi kullanılır: public static int Count;. Bu alan new ile örnek üretilmeden önce de vardır. Sayaç, genel toplam ve tüm örneklerin paylaştığı durumlar için statik alanlar uygundur.
Statik alana erişim
Statik alana erişmek için nesne üretmek gerekmez; sınıf adı üzerinden yazılır: Counter.Count. Örnek üzerinden (counter.Count) de erişilebilir ama bu önerilmez; derleyici uyarı verir.
Statik alanlar sınıf yüklendiğinde varsayılan değere kurulur: int için 0, bool için false, referans türleri için null. İlk değer de verilebilir: public static int Count = 10;.
Uygulama Sayaç sınıfı
Counter sınıfına public static int Count = 0; alanını ekle. Yapıcı metot her çağrıda Count'u bir artırsın. Main içinde iki örnek üretip Counter.Count'u yazdır.
Örnek çözümü göster
Counter sınıfına `public static int Count = 0;` ekle. Yapıcı içinde `Count++;` yaz. Main içinde iki `new Counter()` üret ve `Console.WriteLine(Counter.Count);` çağır.
Örnek çözüm:
using System;
class Counter
{
public static int Count = 0;
public Counter()
{
Count++;
}
}
class Program
{
static void Main()
{
new Counter();
new Counter();
Console.WriteLine(Counter.Count);
}
}
Kendini test et
-
Hangisi geçerli bir statik alan tanımıdır?
- public int Count;
- static Count;
- public static int Count;
- public static Count int;
Cevabı göster
public static int Count; — Doğru. `public static int Count;` hem `static` anahtar kelimesini hem de türü içerir.
-
Boşluğu doldur: statik alan tanımı
class Counter { public ____ = 0; }Cevabı göster
class Counter { public static int Count = 0; } -
Eşleştir: statik alan kavramları
- statik alan
- tüm örneklerle paylaşılır
- örnek alanı
- her nesnede ayrı kopya
- Counter.Count
- sınıf adıyla erişim
- new Counter()
- yeni örnek üretir