📘 10.1 – static Nedir?
🔹 Açıklama:
C# dilinde static anahtar kelimesi, bir sınıfa ait olan ama nesneye ait olmayan değişkenleri, metotları veya üyeleri tanımlamak için kullanılır.
Normalde bir sınıftan nesne (örnek) oluşturulduğunda her nesne kendi verilerini taşır. Ancak static üyeler tüm sınıf için ortaktır ve bellekte tek bir kopyaları bulunur. Yani, kaç nesne oluşturulursa oluşturulsun, static üyeye erişim tektir.
🔍 Nerelerde Kullanılır?
- Tüm nesneler arasında ortak veri paylaşımı gerektiğinde
- Sınıfın durumu (örneğin: kaç nesne oluşturuldu?) takip edilmek istendiğinde
- Yardımcı fonksiyonlar (Helper) oluştururken
- Global ayarlar veya sistem bilgileri depolanırken
- Nesne oluşturmadan çağrılabilecek metotlar gerektiğinde
💡 Kritik Özellikler:
Özellik | Açıklama |
static değişken | Sınıfa aittir, nesneye değil |
static metot | Nesne oluşturmadan çağrılır |
static sınıf | İçinde sadece static üyeler olabilir |
this anahtarı | static metot içinde kullanılamaz |
Bellekte yerleşim | Tek bir kopya tüm sınıf için geçerlidir |
🧠 Kazanımlar:
Bu başlığı tamamladığında öğrenci:
- static üyelerin nasıl ve neden kullanıldığını kavrar
- Sınıf düzeyinde veri paylaşımının nasıl yapıldığını öğrenir
- Nesneye gerek kalmadan çalışan yapılarla tanışır
- Kod organizasyonunu sadeleştirecek ortak metotlar oluşturabilir
🧪 10.1 – static Nedir? – Uygulamalı 5 Örnek
📌 Örnek 1: static Değişkenle Ortak Sayaç
🎯 Amaç: Her nesne oluşturulduğunda artan ortak bir sayaç.
public class Ogrenci
{
public static int NesneSayisi = 0;
public Ogrenci()
{
NesneSayisi++;
}
}
// Kullanım:
Ogrenci o1 = new Ogrenci();
Ogrenci o2 = new Ogrenci();
MessageBox.Show(“Toplam nesne: ” + Ogrenci.NesneSayisi);
📝 Açıklama:
NesneSayisi static olduğu için tüm nesneler tarafından ortak kullanılır.
📌 Örnek 2: static Metot ile Yardımcı İşlem
🎯 Amaç: Toplama yapan bir static metot.
public class Hesaplama
{
public static int Topla(int a, int b)
{
return a + b;
}
}
// Kullanım:
int sonuc = Hesaplama.Topla(10, 15);
MessageBox.Show(“Toplam: ” + sonuc);
📝 Açıklama:
Nesne oluşturmadan metot çağırma imkânı sağlar.
📌 Örnek 3: static Alanı Kullanıcı Girişi Sayacı Olarak Kullanmak
🎯 Amaç: Kaç farklı kullanıcı giriş yaptı?
public class Kullanici
{
public static int GirisSayisi = 0;
public static void GirisYap(string ad)
{
GirisSayisi++;
MessageBox.Show(ad + ” giriş yaptı.”);
}
}
// Kullanım:
Kullanici.GirisYap(“Ahmet”);
Kullanici.GirisYap(“Zeynep”);
MessageBox.Show(“Toplam giriş: ” + Kullanici.GirisSayisi);
📝 Açıklama:
Her çağrıda sayaç artar, bilgi statik olarak tutulur.
📌 Örnek 4: static Özelliklerle Ayarlar Yönetimi
🎯 Amaç: Uygulama ayarlarını merkezi bir yerden yönetmek.
public static class Ayarlar
{
public static string Dil = “Türkçe”;
public static string Tema = “Açık”;
}
// Kullanım:
MessageBox.Show(“Dil: ” + Ayarlar.Dil);
Ayarlar.Tema = “Koyu”;
📝 Açıklama:
Global verileri merkezi bir sınıfta saklamak için idealdir.
📌 Örnek 5: static Sınıf ile Yardımcı Metotlar
🎯 Amaç: Yalnızca static metotlar içeren yardımcı sınıf.
public static class Formatlayici
{
public static string TarihGoster(DateTime dt)
{
return dt.ToString(“dd.MM.yyyy”);
}
}
// Kullanım:
string bugun = Formatlayici.TarihGoster(DateTime.Now);
MessageBox.Show(“Bugünün tarihi: ” + bugun);
📝 Açıklama:
static class içinde sadece static üyeler bulunabilir, nesne oluşturulamaz.
✅ Özet:
Bu örneklerle öğrenciler:
- static değişkenin nesneye değil sınıfa ait olduğunu öğrendi
- Metotları nesne oluşturmadan çağırmayı kavradı
- Gerçek dünya senaryolarında static kullanımını gördü
- Kodun hangi durumda ortak çalışacağını ayırt etmeyi öğrendi
Pingback : A'DAN Z'YE C# İLE NTP - Hasan TANDOĞAN