Sobes.tech
Junior

Java'da sarmalayıcı sınıflar (Wrapper sınıfları) nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Java'da Wrapper sınıfları, temel veri tiplerinin nesne odaklı temsilini sağlayan sınıflardır. Bu sınıflar, koleksiyonlar veya çok iş parçacıklı çalışma gibi durumlarda nesne gerektiren bağlamlarda temel değerlerin kullanılmasına olanak tanır.

Ana Wrapper sınıflar:

  • Byte
  • Short
  • Integer
  • Long
  • Float
  • Double
  • Boolean
  • Character

Kullanım örnekleri:

Temel tip kullanımı:

// Temel tip
int x = 10;

Wrapper sınıfı kullanımı:

// Wrapper sınıfı
Integer y = new Integer(20); // Eski oluşturma yöntemi
Integer z = 30; // Otomatik kutulama (primitive değerin nesneye dönüştürülmesi)

Temel tipler ve Wrapper nesneleri arasında dönüşüm:

  • Otomatik kutulama: Primitif değerin otomatik olarak Wrapper nesnesine dönüştürülmesi.
    // Otomatik kutulama
    int primitiveInt = 100;
    Integer wrapperInt = primitiveInt;
    
  • Unboxing: Wrapper nesnesinin otomatik olarak primitif hale getirilmesi.
    // Unboxing
    Integer wrapperInteger = new Integer(200);
    int primitiveInteger = wrapperInteger;
    

Wrapper sınıflarının avantajları:

  • Koleksiyonlarla çalışma: Koleksiyonlar (List, Set, Map) sadece nesne tutar.
  • null ile çalışma: Wrapper nesneleri null değer alabilir, temel tiplerin aksine.
  • Faydalı metodlar sağlar: Wrapper sınıflar, string dönüştürme, karşılaştırma gibi metodlara sahiptir. Örneğin, Integer.parseInt(String s).
  • Generics ile çalışma: Generics sadece nesnelerle çalışır.

Wrapper sınıflarının dezavantajları:

  • Bellek kullanımı: Wrapper nesneleri, temel tiplere göre daha fazla bellek kullanır.
  • Performans düşüşü: Otomatik kutulama ve unboxing, performansı hafifçe azaltabilir.

Koleksiyonlarda kullanım örneği:

import java.util.ArrayList;
import java.util.List;

public class WrapperExample {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        numbers.add(10); // Otomatik kutulama
        numbers.add(new Integer(20)); // Nesne oluşturma

        int firstNum = numbers.get(0); // Unboxing
        System.out.println(firstNum);
    }
}