Sobes.tech
Junior

Java-da Wrapper sinifləri (Wrapper classes) nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Java'da Wrapper sinfləri, primitiv məlumat tiplərinin obyekt yönümlü təqdimatını təmin edən sinflərdir. Onlar, kolleksiyalarda və ya çox ipli işləmədə obyektlər tələb olunan kontekstlərdə primitiv dəyərlərdən istifadə etməyə imkan verir.

Əsas Wrapper sinfləri:

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

İstifadə nümunələri:

Primitiv tiplərin istifadəsi:

// Primitiv tip
int x = 10;

Wrapper sinfi istifadəsi:

// Wrapper sinfi
Integer y = new Integer(20); // Köhnə yaradılma üsulu
Integer z = 30; // Autoboxing (primitiv dəyərin obyektə çevrilməsi)

Primitivlər və Wrapper obyektləri arasında çevrilmə:

  • Autoboxing: Primitiv dəyərin avtomatik olaraq Wrapper obyektinə çevrilməsi.
    // Autoboxing
    int primitiveInt = 100;
    Integer wrapperInt = primitiveInt;
    
  • Unboxing: Wrapper obyektinin avtomatik olaraq primitivə çevrilməsi.
    // Unboxing
    Integer wrapperInteger = new Integer(200);
    int primitiveInteger = wrapperInteger;
    

Wrapper sinflərinin üstünlükləri:

  • Kolleksiyalar ilə işləmək: Kolleksiyalar (List, Set, Map) yalnız obyektləri saxlayır.

  • null ilə işləmək: Wrapper obyektləri null dəyər ala bilər, primitivlərdən fərqli olaraq.

  • Faydalı metodlar təqdim edir: Wrapper sinflər, stringlərin çevrilməsi, dəyərlərin müqayisəsi və s. üçün metodlara malikdir. Məsələn, Integer.parseInt(String s).

  • Generiklərlə işləmək: Generiklər yalnız obyektlərlə işləyir. Wrapper sinflərinin çatışmazlıqları:

  • Yaddaş istifadəsi: Wrapper obyektləri primitivlərdən daha çox yaddaş tutar.

  • Performansın azalması: Avtomatik çevirmə (autoboxing və unboxing) performansı azalda bilər. Nümunə kolleksiyada istifadəsi:

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); // Autoboxing
        numbers.add(new Integer(20)); // Ob'ektin açıq yaradılması

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