29 Aralık 2014 Pazartesi

Wrapper Classes

            Bugünkü konumuz Wrapper Classes olacak. Türkçe olarak sarmalanmış sınıflar diyebiliriz. Peki nedir bu sarmalanmış sınıflar ? Bildiğimiz gibi 2 tür değişkenimiz vardı. Obje ve İlkel . Bunları daha önceki yazılarımızda az da olsa yer vermiştik. Peki sarmalanmış sınıflar bu işin neresinde diye soracak olursanız şöyle cevap verebiliriz. Biz ilkel değişkenlerle çalıştığımız zaman (int, long gibi) bazen Objelere ihtiyaç duyabiliriz. Özellikle koleksiyon sınıfında bu gibi durumlar ortaya çıkabilir. İşte tam da bu durumda bu sınıflar ilkel değişkenimizi alıp, sarmalayıp ,obje yapar. Ve bu nedenle sarlanmış sınıflar diyoruz. Şimdi hangi tipin hangi objelere döndürüldüğüne ait bir resim paylaşacağız daha sonra da kodla bunu destekleyeceğiz.

Resim-1 
      
      Şimdi burada ne demek istiyor kısaca açıklamaya çalışalım. boolen değişkenini ele alalım. Bunun sarmalayıcı sınıfı Boolean'dır diyor. Peki hangi değerleri içine yazarsak sarmalayabiliriz sorusunun cevabı ise boolean ve Stringdir. Yani argüman olaran ya String yazmamız lazım ya da 'false/true' yazmamız lazım. Bunun dışındaki değişkenlerde hata verecektir derleyici. Mesela argüman olarak 10, 10.5 gibi nümerik değerler verdiğimizde derleyici hata verecektir. Ne istediğimizi şimdi koda dökelim. Daha iyi anlaşılacağını umuyorum.

public class Test {
public static void main(String[] args) {

Boolean b = new Boolean("tRuE"); //büyük hüçük harf farketmez
Boolean b2 = new Boolean("anything");
Boolean b3 = new Boolean(true);
Boolean b4 = new Boolean(false);
                //Boolean b5 = new Boolean(45);
                //Sadece String ve false/true değerleri alabilir
System.out.println("Boolean Test");
System.out.println(b + " " + b2 + " " + b3 + " " + b4);

               
Byte bt = new Byte((byte) 10);
Byte bt2 = new Byte("10");
                //Byte bt = new Byte(10); 
                //10'nun varsayılan değeri int olduğu için cast yapılmalı
System.out.println("Byte Test");
System.out.println(bt + " " + bt2);
                
                Short st= new Short((short)10);
                Short st2= new Short("10");
                //cast işlemi short için de geçerlidir
                System.out.println("Short Test");
System.out.println(st + " " + st2);

Character c = new Character('c');
                //Character c1 = new Character("ss");
                //character string alamaz,char alır!!
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);
                
                Long lo1 = new Long(10); 
Long lo2 = new Long("10");
System.out.println("Long Test");
System.out.println(lo1 + " " + lo2);

Float f1 = new Float(10);
Float f2 = 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 +  " " + f4 + " " + f5);

                Double db1= new Double(10);
                Double db2=new Double(10.5);
                System.out.println("Double Test");
                System.out.println(db1+ "" + db2 + "");
}
}

    Kod içerisinde yorumları kısa kısa da olsa yazmaya çalıştık. Umarım anlamanıza vesile oluruz.

Hiç yorum yok:

Yorum Gönder