25 Initialize Instance Variables

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.

default-var

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 )

One Comment
  1. cheap replica football kits online

    Thanks for the post. awesome!

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*
*