Static Sınıfı

+ Static anahtar kelimesini nerdeyse her yerde gördük şimdi geldik bunun ne olduğunu öğrenmeye.

Peki nerelerde gördük ?

Main() fonksiyonunun önünde static void Main(string[]) şeklinde her zaman bir static komutu vardı. Şimdi içine girelim.


Static Alanlar

+ Herhangi bir sınıfın üyeleri(alan,özellikleri,metot) static olarak tanımlanabilir.Herhangi bir sınıfın üyesini static, olarak belirlediğiniz zaman o üye sadece o sınıfa ait olabilir. Yani static olarak tanımlanan üyeler sınıfın nesneleri tarafından kullanılamaz. Örneğin;

class Ders
{
    public static float miktar = 6;

    public Ders()
    {
          
    }
}

+ Şeklinde bir kod yazdık burda Ders adında bir class(sınıf) oluşturduk .
+ Daha sonra public static float miktar adında bir değişken oluşturduk ve bunu 6 yapdık.
+ Daha sonra Yapıcı metot oluşturduk . Şimdi (Main) fonksiyonumuza gelelim

static  void Main(string[] args)
{
    Console.WriteLine("BİLGİ MİKTARI "+ Ders.miktar);
    Console.Read();
}

+ Kod kısmında da gördüğünüz gibi new leme işlemi yapmadan miktar alanı yazdırılmışdır.
+ Eğerki static yapmasaydık konsola yazı yazdırılmayacakdı.
+ Static erişim belirtecinden tanımlarkan önce veya sonra gelebilir. Public static void || static public void şeklinde.


Static Metotlar

+ Tıpkı static alanlarda olduğu gibi static metotlarda Ram belleğinin belirili bir bölgesinde tek bir meto oluşturur ve tüm nesneler/ kodlar bu metodu kullanır.Dolayısıyla Global bir metot oluşturulmuşdur.
+ Şu ana kadar kullandığımız Main sınıfındaki metotlar aslında bir static metotur.Math sınıfındaki static metotlara erişmek için herhangi bir nesne oluşturmadan doğrudan Sınıf.Math şeklinde eriştik.

class Hayvan { public static void Köpek() { Console.WriteLine("hav"); } }

+ Hayvan adında bir sınıf oluşturduk bu küresel static metodudur. +Şimdi Main fonksiyonuna geçelim.

static void Main(string[] args) { Hayvan.Köpek(); Hayvan hayvan = new Hayvan(); //1 hayvan.Köpek(); //2 Console.Read(); }

Bu şekilde kodu çalıştırırsak sonuç "hav" dır.
Fakat 1. ve 2. bölümdeki yorum satırını kaldırırsak hata lacağız çünkü stasic metotlara new leme ile oluşturlan nesnelerden erişilemez.

Yukarı Çık