Junior
Java-ში Wrapper კლასები (Wrapper classes) რა არის?
sobes.tech AI
პასუხი AI-სგან
Java-ში Wrapper კლასები — ეს კლასებია, რომლებიც უზრუნველყოფენ პრიმიტიული მონაცემთა ტიპების ობიექტზე ორიენტირებულ წარმოდგენას. ისინი საშუალებას აძლევენ primitive მნიშვნელობების გამოყენებას იმ კონტექსტებში, სადაც საჭიროა ობიექტები, მაგალითად, კოლექციებში ან მრავალთრაქტულ მუშაობაში:
ძირითადი Wrapper კლასები:
ByteShortIntegerLongFloatDoubleBooleanCharacter
გამოყენების მაგალითები:
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);
}
}