הבדל בין מחלקה עטיפה לסוג פרימיטיבי בג'אווה

תוכן עניינים:

הבדל בין מחלקה עטיפה לסוג פרימיטיבי בג'אווה
הבדל בין מחלקה עטיפה לסוג פרימיטיבי בג'אווה

וִידֵאוֹ: הבדל בין מחלקה עטיפה לסוג פרימיטיבי בג'אווה

וִידֵאוֹ: הבדל בין מחלקה עטיפה לסוג פרימיטיבי בג'אווה
וִידֵאוֹ: Tricky Interview Question | Difference between Primitive Data Types and Wrapper Classes in Java 2024, נוֹבֶמבֶּר
Anonim

הבדל מפתח – מחלקת עטיפה לעומת סוג פרימיטיבי ב-Java

Java היא שפת תכנות פופולרית המשמשת לפיתוח יישומים שונים. יתרון אחד של Java הוא שהיא תומכת בתכנות מונחה עצמים (OOP). באמצעות OOP, ניתן לעצב את התוכנה או התוכנה באמצעות אובייקטים. מחלקה משמשת כשרטוט ליצירת אובייקט. בתכנות, יש צורך לאחסן נתונים. מיקומי זיכרון שמורים לאחסון נתונים ידועים כמשתנים. לכל משתנה יש סוג נתונים ספציפי. ישנם שמונה סוגים פרימיטיביים המסופקים על ידי שפת Java. הם קצרים, בייט, int, float, כפול, char, בולאני.לפעמים, נדרש להמיר את הטיפוס הפרימיטיבי לאובייקט ואת האובייקט בחזרה לסוג הפרימיטיבי. מחלקות העטיפה משמשות להמרה זו. מאמר זה דן בהבדל בין מחלקת עטיפה לסוג פרימיטיבי בג'אווה. ההבדל העיקרי בין מחלקת עטיפה לסוג פרימיטיבי ב-Java הוא שמחלקת עטיפה משמשת להמרת טיפוס פרימיטיבי לאובייקט ואובייקט חזרה לסוג פרימיטיבי בעוד שסוג פרימיטיבי הוא סוג נתונים מוגדר מראש המסופק על ידי שפת התכנות Java.

מהו כיתה Wrapper ב-Java?

מחלקה Wrapper ב-Java משמשת להמרת סוג נתונים פרימיטיבי לאובייקט ואובייקט לסוג פרימיטיבי. אפילו סוגי הנתונים הפרימיטיביים משמשים לאחסון סוגי נתונים ראשוניים, מבני נתונים כגון רשימות מערכים ו-Vectors מאחסנים אובייקטים. לכן, נדרש להשתמש בשיעורי עטיפה להמרה. מחלקות העטיפה המתאימות לסוגים פרימיטיביים char, byte, short ו-int הם Character, Byte, Short ו-Integer.מחלקות העטיפה המקבילות ל-long, float, double ובוליאן הן Long, Float, Double ובוליאן.

ההבדל בין Class Wrapper לסוג פרימיטיבי בג'אווה
ההבדל בין Class Wrapper לסוג פרימיטיבי בג'אווה

איור 01: תוכנית Java הממירה את מחלקות ה-Wrapper לסוגים פרימיטיביים

לפי התוכנית שלעיל, intobj הוא אובייקט במחלקת עטיפה של אינטגר. ה-floatobj הוא אובייקט מחלקה של Float wrapper. ה-doubleobj הוא אובייקט בכיתה כפולה. האובייקט Integer מומר ל-int פרימיטיבי באמצעות intValue (). באופן דומה, האובייקט Float מומר לצוף פרימיטיבי באמצעות floatValue(). האובייקט Double מומר לכפול פרימיטיבי באמצעות doubleValue (). אם המתכנת כותב את ההצהרה בתור int i=intobj; המהדר כותב באופן פנימי intobj. Value(). תהליך ההמרה האוטומטית של אובייקט ממחלקת עטיפה לסוג הפרימיטיבי המתאים לו ידוע בשם unboxing.אוספים כגון ArrayLists משתמשים במחלקת Wrapper מכיוון שהם מאחסנים אובייקטים.

מהו סוג פרימיטיבי ב-Java?

סוגי הנתונים הפרימיטיביים הם סוגי הנתונים המוגדרים מראש המסופקים על ידי שפת התכנות Java. ישנם שמונה סוגים פרימיטיביים. הם בתים, קצרים, int, ארוכים, צפים, כפולים, בוליאניים ו-char. סוג נתוני הבתים משמש לאחסון מספר שלם של 8 סיביות בסימן שני. סוג הנתונים הקצר משמש לאחסון מספר שלם של 16 סיביות בסימן שני. סוג נתונים int משמש לאחסון המספר השלם המשלים של 32 סיביות בסימן שני בעוד שסוג הנתונים הארוך משמש לאחסון המספר השלם המשלים של 64 סיביות 2. הצף משמש לאחסון ערך נקודה צפה 32 סיביות דיוק יחיד והכפול משמש לאחסון ערך נקודה צפה 64 סיביות דיוק כפול. הערך בוליאני משמש לייצוג נכון או שקר. ה-char משמש לאחסון תו בודד. אלה שמונת הטיפוסים הפרימיטיביים ב-Java.

ההבדל העיקרי בין Class Wrapper לסוג פרימיטיבי בג'אווה
ההבדל העיקרי בין Class Wrapper לסוג פרימיטיבי בג'אווה

איור 02: תוכנית Java הממירה את הסוגים הפרימיטיביים לשיעורי עטיפה

לפי התוכנית לעיל, num1 הוא סוג int. הוא מומר למספר שלם על ידי העברת num1 ל-Integer.valueOf(). ה-float1 יכול לאחסן ערכי צף. הוא מומר לסוג Float על ידי העברת float1 לתוך Float.valueOf(). באופן דומה, double1 יכול לאחסן ערכים כפולים. הוא מומר לסוג Double על ידי העברת double1 לתוך Double.valueOf(). אם המתכנת כותב את ההצהרה בתור Interger intobj=num1; המהדר כותב באופן פנימי Integer.valueOf(num1); התהליך של המרת הסוג הפרימיטיבי לאובייקט המתאים של מחלקת העטיפה באופן אוטומטי ידוע כ-autoboxing.

מהו הדמיון בין Class Wrapper לסוג פרימיטיבי ב-Java?

ניתן להשתמש גם במחלקת Wrapper וגם בסוג פרימיטיבי ב-Java לאחסון נתונים בתכנות

מה ההבדל בין סוג עטיפה לסוג פרימיטיבי ב-Java?

Class Wrapper לעומת סוג פרימיטיבי ב-Java

מחלקה Wrapper מספקת מנגנון להמרת סוג פרימיטיבי לאובייקט ואובייקט לסוג פרימיטיבי. סוג פרימיטיבי הוא סוג נתונים מוגדר מראש המסופק על ידי Java.
כיתה קשורה
מחלקה Wrapper משמשת ליצירת אובייקט; לכן, יש לו מחלקה מתאימה. סוג פרימיטיבי אינו אובייקט ולכן אינו שייך למחלקה.
ערכים אפס
אובייקטי מחלקת העטיפה מאפשרים ערכי אפס. סוג נתונים פרימיטיבי אינו מאפשר ערכי אפס.
זיכרון נדרש
הזיכרון הנדרש גבוה מהסוגים הפרימיטיביים. ה-Clustered Index אינו דורש רווח נוסף. הזיכרון הנדרש נמוך יותר בהשוואה לשיעורי גלישה.
Collections
ניתן להשתמש במחלקת Wrapper עם אוסף כגון ArrayList וכו'. לא נעשה שימוש בסוג פרימיטיבי עם אוספים.

סיכום – מחלקה עטיפה לעומת סוג פרימיטיבי ב-Java

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

מוּמלָץ: