מה ההבדל בין מוטציה לבלתי ניתנת לשינוי בג'אווה?



מאמר זה בנושא מוטציה ובלתי ניתנים לשינוי בג'אווה הוא מדריך מקיף להבדלים ביניהם וגם דן מדוע מיתרי ג'אווה אינם ניתנים לשינוי.

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

מהו אובייקט משתנה?





האובייקטים שבהם ניתן לשנות את השדות והמצבים לאחר יצירת האובייקט ידועים כאובייקטים משתנים. דוגמא : java.util.Date, StringBuilder וכו '.

מהו אובייקט בלתי ניתן לשינוי?



ה חפצים שבו אינך יכול לשנות דבר ברגע שנוצר האובייקט ידועים כאובייקטים בלתי ניתנים לשינוי. דוגמא : אובייקטים פרימיטיביים בארגז כמו שלם, ארוך וכו '.

אז עכשיו שאתה יודע מה ניתן לשינוי ובלתי משתנה בג'אווה, הבה נתקדם ונראה את ההבדלים בין השניים.

ההבדל בין עצמים ניתנים לשינוי ובלתי ניתנים לשינוי



שירות הכשרת מערכת כרטיסים כעת

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

מִשְׁתַנֶה בלתי ניתן לשינוי
ניתן לשנות שדות לאחר יצירת האובייקטלא ניתן לשנות שדות לאחר יצירת האובייקט
בדרך כלל מספק שיטה לשינוי ערך השדהאין שום שיטה לשנות את ערך השדה
בעל שיטות גטר וסתריש רק שיטת גטר
דוגמה: StringBuilder, java.util.Dateדוגמה: מחרוזת, אובייקטים פרימיטיביים בארגז כמו מספר שלם, ארוך וכו '

עכשיו שאתה יודע את ההבדלים בין עצמים ניתנים לשינוי ובלתי ניתנים לשינוי, הבה נבדוק כיצד ליצור אותם שיעורים.

איך ליצור כיתה משתנה?

כדי ליצור מחלקה ניתנת לשינוי ב- Java עליכם לוודא כי הדרישות הבאות מתקיימות:

  1. ספק שיטה כדי לשנות את ערכי השדה
  2. שיטת גטר וסתר

שקול את הקוד הבא:

חברות המשתמשות בשפת תכנות r
חבילה edureka דוגמה למחלקה ציבורית {private String coursename example (String coursename) {this.coursename = coursename} public String getName () {return coursename} public void setName (String coursename) {this.coursename = coursename} public public static void main (String [] טענות) {דוגמה obj = דוגמא חדשה ('Machine Learning') System.out.println (obj.getName ()) // לעדכן את השם, אובייקט זה ניתן למערכת obj.setName ('Masters Learning Masters'). out.println (obj.getName ())}}

היית רואה את הפלט הבא:

פלט אובייקט משתנה - משתנה ובלתי משתנה בג

אז עכשיו כשאתה יודע ליצור מחלקה משתנה, הבא במאמר זה, הבה נבחן כיצד ליצור מחלקה בלתי ניתנת לשינוי.

כיצד ליצור כיתה בלתי ניתנת לשינוי?

כדי ליצור מחלקה שאינה ניתנת לשינוי ב- Java עליכם לוודא כי הדרישות הבאות מתקיימות:

  1. יש להכריז על כיתה כ סופי כדי שלא ניתן יהיה להאריך אותו.
  2. יש להפוך את כל השדות לפרטיים כך שלא תותר גישה ישירה
  3. אין שיטות מגדיר
  4. הפוך את כל השדות המשתנים לסופיים, כך שניתן יהיה להקצות אותם פעם אחת בלבד.
חבילה edureka מחלקה ציבורית לדוגמהimmutable {private final מחרוזת coursename exampleimmutable (final מחרוזת coursename) {this.coursename = coursename} final final מחרוזת getName () {return coursename} public public static ריק (String [] args) {example obj = new example ( 'למידת מכונה') System.out.println (obj.getName ())}}

היית רואה את הפלט שלהלן:

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

מדוע מיתרים בלתי ניתנים לשינוי בג'אווה?

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

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

אם אני צריך להסביר לך בדוגמה, אז,

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

הדרכת שירות למתחילים pdf

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

כעת לאחר שהבנתם את היסודות של ג'אווה, עיינו ב מאת אדוריקה, חברת למידה מקוונת מהימנה עם רשת של יותר מ -250,000 לומדים מרוצים הפזורים ברחבי העולם. קורס ההכשרה וההסמכה של Java J2EE ו- SOA של אדוריקה מיועד לסטודנטים ואנשי מקצוע שרוצים להיות מפתח Java. הקורס נועד לתת לך יתרון בתכנות ג'אווה ולהכשיר אותך למושגי ג'אווה מרכזיים ומתקדמים יחד עם מסגרות ג'אווה שונות כמו Hibernate & Spring.

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