Java'da qopqog'chi sinflar (Wrapper sinflar) nima?
sobes.tech AI
AIdan javob
Java'da Wrapper sinflari, primitiv turlarining ob'ektga yo'naltirilgan ta'rifini ta'minlaydigan sinflardir. Ular kolleksiyalar yoki ko'p ipli ishlashda ob'ektlar talab qilinadigan kontekstlarda primitiv qiymatlarni ishlatishga imkon beradi.
Asosiy Wrapper sinflar:
ByteShortIntegerLongFloatDoubleBooleanCharacter
Foydalanish misollari:
Primitiv turlarni ishlatish:
// Primitiv tur
int x = 10;
Wrapper sinfidan foydalanish:
// Wrapper sinf
Integer y = new Integer(20); // Eskirgan usul
Integer z = 30; // Autoboxing (primitivni avtomatik ob'ektga aylantirish)
Primitivlar va Wrapper ob'ektlar o'rtasida konvertatsiya:
- Autoboxing: Primitivni avtomatik ravishda Wrapper ob'ektiga aylantirish.
// Autoboxing int primitiveInt = 100; Integer wrapperInt = primitiveInt; - Unboxing: Wrapper ob'ektni avtomatik ravishda primitivga aylantirish.
// Unboxing Integer wrapperInteger = new Integer(200); int primitiveInteger = wrapperInteger;
Wrapper sinflarining afzalliklari:
-
Kolleksiyalar bilan ishlash: (
List,Set,Map) faqat ob'ektlarni saqlaydi. -
nullbilan ishlash: Wrapper ob'ektlarnullqiymatga ega bo'lishi mumkin, primitivlarga qaraganda. -
Foydali metodlar taqdim etadi: Wrapper sinflar stringlarni o'zgartirish, qiymatlarni solishtirish va h.k. uchun metodlarga ega. Masalan,
Integer.parseInt(String s). -
Generiklar bilan ishlash: Generiklar faqat ob'ektlar bilan ishlaydi. Wrapper sinflarining kamchiliklari:
-
Xotira iste'moli: Wrapper ob'ektlar primitivlardan ko'ra ko'proq xotira talab qiladi.
-
Ishlash tezligi pasayishi: Avtomatik konvertatsiya (autoboxing va unboxing) ishlash tezligini biroz pasaytirishi mumkin. Misol uchun kolleksiyada:
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'ektni aniq yaratish
int firstNum = numbers.get(0); // Unboxing
System.out.println(firstNum);
}
}