מילת המפתח חולפת בג'אווה

1. הקדמה

במאמר זה נבין תחילה את חולף מילת מפתח ואז נראה את התנהגותה באמצעות דוגמאות.

2. שימוש ב חולף

בואו נבין תחילה את הסידור לפני שנעבור אליו חולף כפי שהוא משמש בהקשר של סידור.

סידור הוא תהליך המרת אובייקט לזרם בתים, ודה-סידולציה הוא ההפך ממנו.

כאשר אנו מסמנים משתנה כלשהו כ- חולף, ואז המשתנה הזה לא מסודר. לכן, תהליך הסידור מתעלם מהערך המקורי של המשתנים ושומר ערכי ברירת מחדל עבור סוג נתונים זה.

ה חולף מילת המפתח שימושית בכמה תרחישים:

  • אנו יכולים להשתמש בו לשדות נגזרים
  • זה שימושי עבור שדות שאינם מייצגים את מצב האובייקט
  • אנו משתמשים בו לכל התייחסות שאינה מסווגת

3. דוגמא

כדי לראות את זה בפעולה, בואו ניצור תחילה סֵפֶר מעמד שאת האובייקט שלו נרצה לסדר:

יישומי ספרים בכיתה ציבורית ניתן לבצע סידור {פרטית סטטית פרטית סופית ארוכה סיבית = -2936687026040726549L; פרטי מחרוזת bookName; פרטי חולף תיאור מחרוזת; עותקים פרטיים חולפים; // גטרים וקובעים}

הנה, סימנו תיאור ו עותקים כפי ש חולף שדות.

לאחר יצירת הכיתה, ניצור אובייקט מהמחלקה הזו:

ספר ספרים = ספר חדש (); book.setBookName ("Java Reference"); book.setDescription ("לא יישמר"); book.setCopies (25);

כעת, אנו מסדר את האובייקט לסידור לקובץ:

חלל סטטי ציבורי בסידור (ספר ספרים) זורק חריג {קובץ FileOutputStream = FileOutputStream חדש (fileName); ObjectOutputStream out = ObjectOutputStream חדש (קובץ); out.writeObject (ספר); out.close (); file.close (); }

בואו וירוק את האובייקט עכשיו מהקובץ:

ספר סטטי ציבורי deserialize () זורק חריג {קובץ FileInputStream = FileInputStream חדש (fileName); ObjectInputStream ב = ObjectInputStream חדש (קובץ); ספר ספרים = (ספר) ב-readObject (); בקרוב(); file.close (); ספר החזרה; }

לבסוף, נאמת את ערכי ה- סֵפֶר לְהִתְנַגֵד:

assertEquals ("Java Reference", book.getBookName ()); assertNull (book.getDescription ()); assertEquals (0, book.getCopies ());

הנה אנו רואים זאת bookName התמיד כהלכה. מצד שני, ה עותקים לשדה יש ​​ערך 0 וה תיאור הוא ריק - את ערכי ברירת המחדל עבור סוגי הנתונים שלהם - במקום הערכים המקוריים.

4. התנהגות עם סופי

עכשיו, בואו נראה מקרה מיוחד שבו נשתמש חולף עם ה סופי מילת מפתח. לשם כך, ראשית, נוסיף א חולף סופי אלמנט שלנו סֵפֶר ואז ליצור ריק סֵפֶר לְהִתְנַגֵד:

מחלקה ציבורית מיישמת ספרים ניתנת לסידור {// שדות קיימים פרטיים סופיים ארעיים String bookCategory = "Fiction"; // גטרים וקובעים}
ספר ספרים = ספר חדש ();

כאשר אנו מאמתים את הערכים לאחר עריקת הניתוח, נצפה על כך חולף התעלם משדה זה, והערך המקורי נמשך:

assertEquals ("ספרות", book.getBookCategory ());

5. מסקנה

במאמר זה ראינו את השימוש ב- חולף מילת המפתח והתנהגותה בסידור ועריקול. ראינו גם את ההתנהגות השונה שלו עם ה- סופי מילת מפתח.

כמו תמיד, כל הקוד זמין ב- GitHub.