Sobes.tech
Junior

Java-ში Wrapper კლასები (Wrapper classes) რა არის?

sobes.tech AI

პასუხი AI-სგან

Java-ში Wrapper კლასები — ეს კლასებია, რომლებიც უზრუნველყოფენ პრიმიტიული მონაცემთა ტიპების ობიექტზე ორიენტირებულ წარმოდგენას. ისინი საშუალებას აძლევენ primitive მნიშვნელობების გამოყენებას იმ კონტექსტებში, სადაც საჭიროა ობიექტები, მაგალითად, კოლექციებში ან მრავალთრაქტულ მუშაობაში:

ძირითადი 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-დან ობიექტად)

შეცვლა primitives და Wrapper ობიექტებს შორის:

  • Autoboxing: primitives ავტომატურად გარდაიქმნება Wrapper ობიექტად.
    // Autoboxing
    int primitiveInt = 100;
    Integer wrapperInt = primitiveInt;
    
  • Unboxing: Wrapper ობიექტი ავტომატურად გარდაიქმნება primitives-ად.
    // Unboxing
    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); // ანბოქსინგი
        System.out.println(firstNum);
    }
}