Junior
Ի՞նչ են Java-ի Wrapper դասերը (Wrapper classes):
sobes.tech AI
Պատասխան AI-ից
Java-յի Wrapper դասերը՝ դա դասեր են, որոնք օբյեկտ-կենտրոնական ներկայացում են primitív տվյալների տիպերի համար: Դրանք թույլ են տալիս օգտագործել primitív արժեքները այն կոնտեքստերում, որտեղ անհրաժեշտ են օբյեկտներ, օրինակ՝ հավաքածուներում կամ բազմապտույտ աշխատանքում:
Հիմնական Wrapper դասերը՝
ByteShortIntegerLongFloatDoubleBooleanCharacter
Օգտագործման օրինակներ՝
primitív օգտագործում՝
// primitív տիպ
int x = 10;
Wrapper դասի օգտագործում՝
// Wrapper դաս
Integer y = new Integer(20); // Հնացած ձև
Integer z = 30; // Ավտոբոքսինգ (ինքնաբերաբար փոխարկում primitívից օբյեկտ)
Միջանցք primitívների և Wrapper օբյեկտների միջև փոխարկում՝
- Autoboxing: ինքնաբերաբար primitívը փոխարկվում է Wrapper օբյեկտի՝
// Autoboxing int primitiveInt = 100; Integer wrapperInt = primitiveInt; - Unboxing: ինքնաբերաբար Wrapper օբյեկտը փոխարկվում է primitív՝
// Unboxing Integer wrapperInteger = new Integer(200); int primitiveInteger = wrapperInteger;
Wrapper դասերի առավելություններ՝
- Հավաքածուներով աշխատելիս՝ Collection-ները (
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);
}
}