Merhaba Arkadaslar, bu yazimiz Java’da instance variable ‘a initialize islemi/deger atamasi uzerine olacaktir.
Java , bir degisken(instance variable) tanimladigimizda 2 secenek sunar ya oldugu gibi birakiriz/unitialized ya da deger atamasinda bulunuruz.
Degisken kapsam alaninina gore (instance variable , local variable … ) farkli durumlar ortaya cikmaktadir. Bir onceki yazida Degisken kapsam alani ( Variable Scope) konusunu incelemistik.
Primitive && Object Type Instance Variable
Instance Variable(member variables) , hatirlayacagimiz gibi sinif seviyesindeki degiskenlerdi. Yani bu instance variable’lar bir metot, yapilandirici, kod blogu icerisinde tanimlanamaz.
Instance Variable’lara varsayilan olarak deger atamasi yapilir. Asagidaki tabloda varsayilan olarak atanan bu degerleri gorebiliriz.
Primitive Instance Variable
Yukarida primitive tiplerin listesi yer almaktadir. Daha oncesinde de primitive/ilkel tipler nelerde incelemistik.Burada ornek uzerinde deger atamayan primitive instance variable/degiskenleri gorelim.
Primitive.java
public class Primitive { int insVariable; byte insVariable2; boolean insVariable3; double insVariable4; float insVariable5; char insVariable6; @Override public String toString() { return "Primitive [insVariable=" + insVariable + ", insVariable2=" + insVariable2 + ", insVariable3=" + insVariable3 + ", insVariable4=" + insVariable4 + ", insVariable5=" + insVariable5 + ", insVariable6=" + insVariable6 + "]"; } public static void main(String[] args) { Primitive pri = new Primitive(); System.out.println(pri); } //Primitive [insVariable=0, insVariable2=0, insVariable3=false, insVariable4=0.0, insVariable5=0.0, insVariable6= }
Object Reference Instance Variable
Referans degiskenler varsayilan olarak null olarak atanacaktir.
ObjectReference.java
import java.awt.Button; public class ObjectReference { String s; Button b; Thread t; Runnable r; ObjectReference o; Object obj; @Override public String toString() { return "ObjectReference [s=" + s + ", b=" + b + ", t=" + t + ", r=" + r + ", o=" + o + ", obj=" + obj + "]"; } public static void main(String[] args) { ObjectReference obj = new ObjectReference(); System.out.println(obj); } //ObjectReference [s=null, b=null, t=null, r=null, o=null, obj=null] }
Simdi de su ornegi inceleyelim;
NPE.java
public class NPE { String str; public static void main(String[] args) { NPE npe = new NPE(); System.out.println(npe.str); System.out.println(npe.str.toLowerCase()); } }
String degiskenimize deger atamadigimiz icin null olacaktir, fakat toLowerCase() metodunu cagirdigimizda meshur NullPointerException hatasini calisma zamaninda/runtime alacagiz.
Array Instance Variable
Ilerleyen yazilarda array konusuna tekrar gelecegiz ama burada ilgili kismi inceleyelim. Java da bir array objedir. Bu nedenle sadece declare/tanimlanan ve acik bir sekilde deger atanmasi yapilmayan /explicitly initialize diziler/array null degerine sahip olacaklardir.
CoolArray.java
import java.util.Arrays; public class CoolArray { int[] coolVar; double[] coolVar2; String[] coolVar3; @Override public String toString() { return "CoolArray [coolVar=" + Arrays.toString(coolVar) + ", coolVar2=" + Arrays.toString(coolVar2) + ", coolVar3=" + Arrays.toString(coolVar3) + "]"; } public static void main(String[] args) { CoolArray ca = new CoolArray(); System.out.println(ca); } //CoolArray [coolVar=null, coolVar2=null, coolVar3=null] }
Tum diziler null degere sahip olacaklardir. Peki initialize islemini gerceklestirirsek dizi icerisindeki elemanlar ne olacak ?
CoolArray.java
import java.util.Arrays; public class CoolArray { int[] coolVar = new int[2]; double[] coolVar2 = new double[3]; String[] coolVar3 = new String[4]; @Override public String toString() { return "CoolArray [coolVar=" + Arrays.toString(coolVar) + ", coolVar2=" + Arrays.toString(coolVar2) + ", coolVar3=" + Arrays.toString(coolVar3) + "]"; } public static void main(String[] args) { CoolArray ca = new CoolArray(); System.out.println(ca); } //CoolArray [coolVar=[0, 0], coolVar2=[0.0, 0.0, 0.0], coolVar3=[null, null, null, null]] }
Ciktiyi inceledigimizde , dizimiz hangi turdense (int , double, String) elemanlarida otomatik olarak ilgili turun sahip oldugu degere sahip olmaktadir (int 0 , double 0.0 , String null )
cheap replica football kits online
Thanks for the post. awesome!