Java "static" ne demektir?

Javada main fonksiyonunu yazarken static anahtar kelimesini kullanırız. Peki neden? Statik kelimesi ne gibi bir değişiklik yapar? Örneklerle anlatmaya çalışayım. Static kelimesinin anlam olarak bellekte bir değişkenin bir defa oluşması şekilnde üstünkörü bir tanım yapılabilir.

Java:
class statiksinif{
    static int a = 0;         //statik değişken
    public void arttır(){
        a++;
    }
}
class normalsinif{
    int a = 0;                  //normal değişken
    public void arttır(){
        a++;
    }
}
public class Furkaninkosesistatik{
    public static void main(String[] args) {

    }
}

Görmüş olduğunuz üzere iki adet sınıf tanımladım. Sınıflardan birisi static bir değişken içeriyor diğeri de normal. Hadi şimdi objeler oluşturup metodları test edelim.


Java:
class statiksinif{
    static int a = 0;
    public void arttır(){
        a++;
    }
}
class normalsinif{
    int a = 0;
    public void arttır(){
        a++;
    }
}

public class Furkaninkosesistatik{
    public static void main(String[] args) {

        statiksinif obje_1 = new statiksinif();
        statiksinif obje_2 = new statiksinif();
        normalsinif obje_3 = new normalsinif();
        normalsinif obje_4 = new normalsinif();
     
        System.out.println("Statik sınıf objelerinin değeri"+obje_1.a+" "+obje_2.a);
        System.out.println("Normal sınıf objelerinin değeri"+ obje_3.a +" "+ obje_4.a);

        obje_1.arttır();
        obje_2.arttır();
        obje_3.arttır();
        obje_4.arttır();

        System.out.println(" ");
        System.out.println("Statik sınıf objelerinin değeri"+obje_1.a+" "+obje_2.a);
        System.out.println("Normal sınıf objelerinin değeri"+ obje_3.a +" "+ obje_4.a);



    }
}

Her bir objenin değişkenini arttırdık. Sizce çıktı olarak her obje için1 mi aldık?

Evet diyorsanız yanılıyorsunuz. Çıktı olarak:

Statik sınıf objelerinin değeri 0 0 Normal sınıf objelerinin değeri 0 0 Statik sınıf objelerinin değeri 2 2 Normal sınıf objelerinin değeri 1 1

aldık.

1596313779168.png



Bir sınıfın içinde static cinsinden bir değişken tanımlanırsa bellekte o değişken 1 defa oluşturulur ve bütün objeler o değişkene erişir. Main metodumuzun static olma sebebi ise program çalıştırılırken bellekte 1 defa oluşturulmasıdır.

Yazımın sonuna geldim teşekkür ederim.
  • java(.png
    java(.png
    18,5 KB · Görüntüleme: 432
Yazar hakkında
Furkaninkosesi
Bilgisayar ile 2 yazılım ile 10 yaşında tanışan biri.

Yorumlar

Güzel bir anlatım olmuş. Ek olarak static bir class ile current obje arasındaki farkı da işlerseniz insanlar için daha da akılda kalıcı olur veya static bir attribute için static bir method örneği.
Tam anlatamadıysam şöyle:

private static float PI = 3.14;
private static int count = 0;
private double radius;

public double area ( )
{
return ( PI * this.radius * this.radius );
}
public static int getCount ( )
{
return ( count );
}
 

Blog girdisi detayları

Ekleyen
Furkaninkosesi
Okuma süresi
2 dakika okuma
Görüntüleme
2.833
Yorumlar
4
Son güncelleme

Yazılım kategorisindeki diğer girdiler

Furkaninkosesi adlı kullanıcının diğer girdileri

Bu girdiyi paylaş

Geri
Yukarı