Sobes.tech
Junior

Классҳои Wrapper (Wrapper classes) дар Java чист?

sobes.tech AI

Ҷавоб аз AI

Java-дағы Wrapper кластар — бұл примитивті типтердің объектіге бағытталған көрінісін қамтамасыз ететін кластар. Олар коллекциялар немесе көпжіптілікпен жұмыс кезінде объектілер қажет болған жағдайларда примитивті мәндерді пайдалануға мүмкіндік береді.

Негізгі Wrapper кластар:

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

Қолдану мысалдары:

Примитивті пайдалану:

// Примитивті тип
int x = 10;

Wrapper класты пайдалану:

// Wrapper класс
Integer y = new Integer(20); // Ескі әдіс
Integer z = 30; // Автобоксинг (примитивті объектке автоматты түрлендіру)

Примитивтер мен Wrapper объектілерінің арасындағы түрлендіру:

  • Автобоксинг: Примитивті автоматты түрде Wrapper объектісіне айналады.
    // Автобоксинг
    int primitiveInt = 100;
    Integer wrapperInt = primitiveInt;
    
  • Авунboxing: Wrapper объектісі автоматты түрде примитивке айналады.
    // Авунboxing
    Integer wrapperInteger = new Integer(200);
    int primitiveInteger = wrapperInteger;
    

Wrapper кластардың артықшылықтары:

  • Коллекциялармен жұмыс: (List, Set, Map) тек объектілерді сақтайды.
  • null мәнімен жұмыс: Wrapper объектілерінің мәні null болуы мүмкін, ал primitives — жоқ.
  • Құнды түрлендіру, салыстыру әдістері: Wrapper кластарында жолдарға түрлендіру, мәндерді салыстыру сияқты әдістер бар. Мысалы, Integer.parseInt(String s).
  • Генериктермен жұмыс: Генериктер тек объектілермен жұмыс істейді.

Кемшіліктері:

  • Жадыны көп пайдалану: Wrapper объектілері primitives-ке қарағанда көп жады алады.
  • Өнімділіктің төмендеуі: Автоқорау және автоматты түрде түрлендіру өнімділікті аздап төмендетуі мүмкін.

Коллекцияда қолдану мысалы:

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); // Автобоксинг
        numbers.add(new Integer(20)); // Объектіні нақты жасау

        int firstNum = numbers.get(0); // Авунboxing
        System.out.println(firstNum);
    }
}