Sobes.tech
Junior

Javaда Wrapper класстары (Wrapper classes) эмне?

sobes.tech AI

AIден жооп

Java-дагы Wrapper класстары — булдар, алар примитивдүү түрлөрдүн объектке негизделген көрүнүшүн камсыздайт. Алар коллекциялар же көптөгөн агымдар менен иштөөдө объекттер керек болгон учурларда primitives маанилерди колдонууга мүмкүндүк берет.

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

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

Колдонуу мисалдары:

primitives колдонуу:

// primitives түрү
int x = 10;

Wrapper классты колдонуу:

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

Между primitives жана Wrapper объекттеринин түрлөрү:

  • Автобоксинг: primitives автоматтык түрдө Wrapper объектине айланат.
    // Автобоксинг
    int primitiveInt = 100;
    Integer wrapperInt = primitiveInt;
    
  • Авунboxing: Wrapper объект автоматтык түрдө primitivesке айланат.
    // Авун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);
    }
}