logo

שיעורי עטיפה בג'אווה

ה כיתת עטיפה ב-Java מספק את המנגנון להמיר פרימיטיבי לאובייקט ואובייקט לפרימיטיבי .

מאז J2SE 5.0, אוטובוקסינג ו unboxing תכונה ממירה פרימיטיבים לאובייקטים ואובייקטים לפרימיטיבים באופן אוטומטי. ההמרה האוטומטית של פרימיטיבי לאובייקט ידועה כ-autoboxing ולהיפך unboxing.

שימוש בשיעורי Wrapper ב-Java

ג'אווה היא שפת תכנות מונחה עצמים, ולכן אנחנו צריכים להתמודד עם אובייקטים פעמים רבות כמו ב-Collectors, Serialization, Synchronization וכו'. הבה נראה את התרחישים השונים, שבהם עלינו להשתמש במחלקות העטיפה.

ירושה ג'אווה
    שנה את הערך בשיטה:Java תומך רק בהתקשרות לפי ערך. לכן, אם נעביר ערך פרימיטיבי, הוא לא ישנה את הערך המקורי. אבל, אם נמיר את הערך הפרימיטיבי באובייקט, זה ישנה את הערך המקורי.סדרה:אנחנו צריכים להמיר את האובייקטים לזרמים כדי לבצע את הסידרה. אם יש לנו ערך פרימיטיבי, נוכל להמיר אותו באובייקטים דרך מחלקות העטיפה.סִנכְּרוּן:סנכרון Java עובד עם אובייקטים ב-Multithreading.חבילת java.util:חבילת java.util מספקת את מחלקות השירות להתמודדות עם אובייקטים.מסגרת אוסף:מסגרת אוסף Java עובדת עם אובייקטים בלבד. כל המחלקות של מסגרת האוסף (ArrayList, LinkedList, Vector, HashSet, LinkedHashSet, TreeSet, PriorityQueue, ArrayDeque וכו') עוסקות באובייקטים בלבד.

שמונת הכיתות של ה java.lang החבילה ידועות כשיעורי עטיפה ב-Java. הרשימה של שמונה כיתות עטיפה ניתנת להלן:

סוג פרימיטיבישיעור עטיפה
בוליאניבוליאנית
לְהַשְׁחִיר אופי
בייטבייט
קצרקצר
int מספר שלם
ארוךארוך
לָצוּףלָצוּף
לְהַכפִּיללְהַכפִּיל

אוטובוקסינג

ההמרה האוטומטית של סוג נתונים פרימיטיבי למחלקת העטיפה המתאימה לו ידועה כ-autoboxing, לדוגמה, byte to Byte, Character to Character, int למספר שלם, long ל-Long, float to Float, בוליאני לבולאני, כפול לכפול וקצר לשורט.

מאז Java 5, איננו צריכים להשתמש בשיטת valueOf() של מחלקות עטיפה כדי להמיר את הפרימיטיבי לאובייקטים.

דוגמה למחלקת עטיפה: פרימיטיבי ל-Wrapper

 //Java program to convert primitive into objects //Autoboxing example of int to Integer public class WrapperExample1{ public static void main(String args[]){ //Converting int into Integer int a=20; Integer i=Integer.valueOf(a);//converting int into Integer explicitly Integer j=a;//autoboxing, now compiler will write Integer.valueOf(a) internally System.out.println(a+' '+i+' '+j); }} 

תְפוּקָה:

apurva padgaonkar
 20 20 20 

Unboxing

ההמרה האוטומטית של סוג העטיפה לסוג הפרימיטיבי המתאים לה ידועה בשם unboxing. זה תהליך הפוך של בוקסינג אוטומטי. מאז Java 5, איננו צריכים להשתמש בשיטת intValue() של מחלקות עטיפה כדי להמיר את סוג העטיפה לפרימיטיבים.

להתקין maven

כיתת עטיפה דוגמה: עטיפה לפרימיטיבית

 //Java program to convert object into primitives //Unboxing example of Integer to int public class WrapperExample2{ public static void main(String args[]){ //Converting Integer to int Integer a=new Integer(3); int i=a.intValue();//converting Integer to int explicitly int j=a;//unboxing, now compiler will write a.intValue() internally System.out.println(a+' '+i+' '+j); }} 

תְפוּקָה:

 3 3 3 

דוגמה לשיעורי Java Wrapper

 //Java Program to convert all primitives into its corresponding //wrapper objects and vice-versa public class WrapperExample3{ public static void main(String args[]){ byte b=10; short s=20; int i=30; long l=40; float f=50.0F; double d=60.0D; char c='a'; boolean b2=true; //Autoboxing: Converting primitives into objects Byte byteobj=b; Short shortobj=s; Integer intobj=i; Long longobj=l; Float floatobj=f; Double doubleobj=d; Character charobj=c; Boolean boolobj=b2; //Printing objects System.out.println('---Printing object values---'); System.out.println('Byte object: '+byteobj); System.out.println('Short object: '+shortobj); System.out.println('Integer object: '+intobj); System.out.println('Long object: '+longobj); System.out.println('Float object: '+floatobj); System.out.println('Double object: '+doubleobj); System.out.println('Character object: '+charobj); System.out.println('Boolean object: '+boolobj); //Unboxing: Converting Objects to Primitives byte bytevalue=byteobj; short shortvalue=shortobj; int intvalue=intobj; long longvalue=longobj; float floatvalue=floatobj; double doublevalue=doubleobj; char charvalue=charobj; boolean boolvalue=boolobj; //Printing primitives System.out.println('---Printing primitive values---'); System.out.println('byte value: '+bytevalue); System.out.println('short value: '+shortvalue); System.out.println('int value: '+intvalue); System.out.println('long value: '+longvalue); System.out.println('float value: '+floatvalue); System.out.println('double value: '+doublevalue); System.out.println('char value: '+charvalue); System.out.println('boolean value: '+boolvalue); }} 

תְפוּקָה:

 ---Printing object values--- Byte object: 10 Short object: 20 Integer object: 30 Long object: 40 Float object: 50.0 Double object: 60.0 Character object: a Boolean object: true ---Printing primitive values--- byte value: 10 short value: 20 int value: 30 long value: 40 float value: 50.0 double value: 60.0 char value: a boolean value: true 

שיעור Wrapper מותאם אישית ב-Java

מחלקות Java Wrapper עוטפות את סוגי הנתונים הפרימיטיביים, ולכן זה ידוע בתור מחלקות עטיפה. אנחנו יכולים גם ליצור מחלקה שעוטפת סוג נתונים פרימיטיבי. אז, אנחנו יכולים ליצור כיתת עטיפה מותאמת אישית ב-Java.

 //Creating the custom wrapper class class Javatpoint{ private int i; Javatpoint(){} Javatpoint(int i){ this.i=i; } public int getValue(){ return i; } public void setValue(int i){ this.i=i; } @Override public String toString() { return Integer.toString(i); } } //Testing the custom wrapper class public class TestJavatpoint{ public static void main(String[] args){ Javatpoint j=new Javatpoint(10); System.out.println(j); }} 

תְפוּקָה:

 10