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.
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.
Her bir objenin değişkenini arttırdık. Sizce çıktı olarak her obje için
Evet diyorsanız yanılıyorsunuz. Çıktı olarak:
aldık.
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:
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çin
1
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.
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.