Java’da Autoboxing ve Unboxing Kavramları Nedir?

422
views

Bir önceki yazımızda ArrayList konusunu öğrenmiştik. Bu yazımızda ise java’da autoboxing ve unboxing kavramlarının ne olduğunu öğreneceğiz.

Autoboxing ve Unboxingi göstermek için ilk olarak belli başlı işlemler yapmamız gerekir.

İlk olarak String classından bir ArrayList oluşturuyoruz.

String veri tipinden bir ArrayList oluşturabildik. Fakat int veri tipinde bir ArrayList oluşturmaya çalışırken hata aldık. Bunun nedeni int ilkel bir veri tipi ve bir referansa ihtiyacı var. String ise bir class olduğundan dolayı String olarak tanımladığımızda hata almadı.

Peki ilkel veri tipleri ile ArrayList oluşturamıyor muyuz?

Bunun için java’da Wrapper Classlarımız var. Herbir ilkel veri tipine karşılık gelen bir sınıf var aslında. İlkel veri tiplerini ve karşılık gelen wrapper classlarını aşağıdaki gibidir.

İlkel Veri Tipleri

  • boolean ======> Boolean
  • char ======> Character
  • byte ======> Byte
  • short ======> Short
  • int ======> Integer
  • long ======> Long
  • float ======> Float
  • double ======> Double

Örnekle anlamaya çalışalım;

int veri tipinde bir a değeri tanımlayalım.

a. dediğimizde herhangi bir öneri vermiyor bize. Çünkü a nın üzerinde herhangi bir özellik ve metot bulunmuyor. Ancak biz a değeri int in wrapper classı şeklinde tanımlasaydık bakalım bu sefer olacak?

a nın bütün metotları karşımıza gelmiş oluyor. İşte bunlar wrapper classlarımız. Yani biz arrayimizi int veri tipinde tanımlayacaksak değişkenimizi Integer şeklinde wrapper class özelliklerine erişebilecek şekilde aşağıdaki gibi tanımlamamız gerekir.

Peki autoboxing ve unboxing kavramları ne anlama geliyor? Örnek üzerinden anlamaya çalışalım;

arraylist2 ye 10 tane değer atamak istiyorum.

Bu şekilde yazdığımızda autoboxing oluyor. Yani biz ilkel veri tipini bir kutuya alıyoruz ve bunu wrapper class cinsinde arraya atıyoruz.

veya

şeklinde yaptığımızda unboxing yapmış oluyoruz.

Autoboxing te ilkel veri tipini bir kutuya otomatik olarak alıyoruz.

Unboxing te ise o kutudan int değerini çıkarmış oluyoruz.

Ancak bu işlemleri bu kadar uzun yapmanın dışında kısa bir yolu daha var. Java zaten bizim yerimize  bu işlemi aşağıdaki gibi yapıyor.

Java bizim yerimize bir önceki görseldeki işlemi bu görselde yapıyor. Bizim ilkel veri tiplerine karşılık gelen tam 8 tane wrapper classımız var. Ve eğer integer üzerinde işlem yapmak istiyorsanız bunları wrapper class cinsinden tanımlayabilirsiniz. Veya bu wrapper classların içindeki kendi metotlarını kullanabilirsiniz.

Bir sonraki yazımızda String sınıfı ve metotlarını işleyeceğiz. Sonraki derse geçmek için tıklayınız.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz