33 Wrapper Classes – 01

Merhaba Arkadaslar, bu yazimda Java’da yer alan Wrapper siniflardan bahsedecegim. Wrapper’in turkce karsiligi sargi/sarici gibi anlama gelmektedir. Bu karsiligi aklimizda tutmakta fayda var. Oncelikle asagidaki tabloda Wrapper siniflar neler bunu gorebiliriz ;

OOP_WrapperClass

Dikkat edecek olursak Java’da yer alan tum primitive/ilkel tipler icin bir Wrapper sinif yer almaktadir. Bunlardan char haric digerlerinde sadece bas harfi buyuk char da ise Character sinifi olarak karsimiza cikmaktadir. Number abstract sinifi Byte, Short,Integer gibi Wrapper siniflarin super sinifidir.  Tum Wrapper siniflar Object sinifini kalitmaktadir. Dolayisiyla Wrapper turunden bir degisken primitive/ilkel tipte degildir.

Wrapper siniflarin bazi ozelliklerine bakacak olursak ;

public final class Integer extends Number implements Comparable<Integer> {
...
}
public final class Double extends Number implements Comparable<Double> {
...
}

Ornegin ; Integer ve Double sinifinin tanimlanmasina goz attigimizda, final oldugunu ve Number sinifini kalittigini gormekteyiz.Ayrica Comparable arabirimini uygulamaktadir, bu arabirime ilerleyen donemlerde gelecegiz.

Boolean ve Character wrapper siniflarinin tanimlanmasina goz atalim ;

public final class Boolean implements java.io.Serializable, Comparable<Boolean>
{
..
}
public final class Character implements java.io.Serializable, Comparable<Character> {
...
}

Wrapper siniflar final olarak tanimlanmistir ve Comparable arabirimini uygulamaktadir.

Wrapper objelerin en onemli ozelligi ise , immutable(degismez) olmalaridir.  Bir kere deger verildikten sonra bu deger degistirilmez yeni bir obje olusturulur.

Wrapper siniflarin yapilandiricilarini inceleyecek olursak ;

wrapper

Ornek bir test sinifi yazalim ;

public class Test {

	public static void main(String[] args) {

		Boolean b = new Boolean("tRuE");
		Boolean b2 = new Boolean("levent");
		Boolean b3 = new Boolean(true);
		Boolean b4 = new Boolean(false);

		System.out.println("Boolean Test");
		System.out.println(b + " " + b2 + " " + b3 + " " + b4);

		// Byte bt0 = new Byte(10);
		// derleme hatasi olur cunku Byte Wrapper sinifinin yapilandiricisi
		// byte veya String parametre almaktadir. Hatirlayacagimiz gibi Java da
		// tamsayi literalleri
		// varsayilan olarak int tipindedir tir. Bu nedenle cast islemi yapilmak
		// zorundadir.

		Byte bt = new Byte((byte) 10);
		Byte bt2 = new Byte("10");

		System.out.println("Byte Test");
		System.out.println(bt + " " + bt2);

		Character c = new Character('c');
		System.out.println("Character Test");
		System.out.println(c);

		Integer i1 = new Integer(10);
		Integer i2 = new Integer("10");

		System.out.println("Integer Test");
		System.out.println(i1 + " " + i2);

		Float f1 = new Float(10);
		Float f2 = new Float(10.5);
		Float f3 = new Float(10.5);
		Float f4 = new Float("10.5");
		Float f5 = new Float("10.5f");
		System.out.println("Float Test");
		System.out.println(f1 + " " + f2 + " " + f3 + " " + f4 + " " + f5);

		Long lo1 = new Long(10);
		Long lo2 = new Long("10");
		System.out.println("Long Test");
		System.out.println(lo1 + " " + lo2);
	}
}

Siz burada yazilanlardan cok daha fazlasini yazin ve deneyin diger turlu akilda kalmaz
Byte , Short wrapper siniflarinda karsimiza cikabilecek durumu kod icerisinde aciklama olarak verdim. Boolean sinifinin ,String yapilandiricisinda “tRuE” , “truE” gibi true kelimesinin buyuk-kucuk harfini onemsemeden yazdigimizda sonuc true donecektir, bunun disinda her String literal bize false sonucunu dondurecektir.

Wrapper siniflar ile ilgili ilk bolumu burada bitiriyorum.

Bir cevap yazın

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

*
*