Java da dahil, tüm programlama dilleri, farklı tiplerdeki verileri saklamak ve program yürütüldüğü esnada kullanmak için onu bir yapının içine koyar. Bu yapı, söz konusu veririnin türünü, değerini ve bulunduğu konumun ismini içerir. Türkçe’de Değişken olarak tanımladığımız bu kavrama Variable ismi verilir. Java’da Local Variable, Instance Variable ve Class/Static Variable olmak üzere üç temel Variable türü vardır. Bu yazıda bu Variable türlerinden bir tanesi olan Instance Variable’ı ele alacağız.
Instance Variable nedir?
Instance Variable kavramı, Türkçe’de farklı şekillerde isimlendirilmiştir. Bizce, bu isimlendirmelerden en doğru ve en başarılı olanı Nesne Değişkeni ismidir. Zira bu isimlendirmeden de anlaşılabileceği üzere instance variable’lar, static olanların aksine, herhangi bir sınıfa değil, oluşturulan objeye ait ve bağlı olurlar. Bu değişkenin bulunduğu sınıftan bir obje oluşturulduğunda bunlar da otomatik olarak, oluşturulurlar. Obje yani nesne ortadan kaldırıldığında ise bu değişkenler de onlarla birlikte yok olurlar.
Instance Variable nasıl oluşturulur?
Instance Variable yani Nesne Değişkeni, bir sınıfın içerisinde, non-static olarak (static ifadesi kullanılmadan), diğer tüm class elemanlarından bağımsız bir şekilde oluşturulur. Yani instance variable herhangi bir şekilde bir metodun, constructor’ın veya kod bloğunun içerisine yazılmaz.
Instance Variable’ın başına herhangi bir access modifier (erişim belirteci) eklenebilir. Eklenmemesi halinde bu, default olarak kalacaktır. Bu tür değişkenlere değer atması yapılmayabilir. Bu durumda, söz konusu değişkenin değeri default olarak kalacaktır. Varsayılan değerler, data tipine göre farklılık arz etmektedir. Sayısal datalar için bu değer genellikle ‘0’ olurken, boolean değerler için ‘false’, String gibi değerler için ise ‘null’ olarak gelmektedir.
Tüm bunların dışında Instance Variable’larla ilgili şunları söylemek mümkün;
- Instance variable’lara yalnızca oluşturulan class üzerinden erişmek mümkündür.
- Instance variable’ları kullanmak için bağlı olduğu classtan bir obje oluşturmak gerekir.
- Bir instance variable’ın kullanılması zorunlu değildir.
- Instance variable’lar herhalükarda, oluşturuldukları class içerisinden erişilebilirler.
- Instance variable’lar static ifadesi ile kullanılamazlar.
- Instance variable’lar bir constructor içerisinde initalized edildikten sonra final ifadesi ile kullanılabilirler.
- Instance variable’a, private, public, protected, ve default gibi bir access modifier atamak mümkündür.
public class Ornek {
String ogrenciIsmi; //default instance variable
private int ogrenciNotu;//private instance variable
final String okulIsmi = "Harvards";//final instance variable
public static void main(String[] args) {
Ornek obje = new Ornek();
System.out.println(obje.ogrenciIsmi); // null
System.out.println(obje.ogrenciNotu); // 0
System.out.println(obje.okulIsmi); // Harvards
}
}