מה השימוש בשיטת עקיפה שווה ב-Java?
מה השימוש בשיטת עקיפה שווה ב-Java?

וִידֵאוֹ: מה השימוש בשיטת עקיפה שווה ב-Java?

וִידֵאוֹ: מה השימוש בשיטת עקיפה שווה ב-Java?
וִידֵאוֹ: Israel cyber security 21 05 2020 2024, אַפּרִיל
Anonim

ביטול שווה ו-hashCode in Java

שווים () שיטה הוא בשימוש כדי להשוות בין אובייקטים לשוויון בעוד hashCode הוא בשימוש כדי ליצור קוד שלם המתאים לאותו אובייקט

מכאן, מה השימוש בשיטת equals ב-Java?

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

בנוסף, איך מעקפים את שיטת equals ב-Java? בקטע של מחלקת הקוד לעיל ל-Person יש שיטת equals() שנדחתה, אשר נקטה בגישה שלב אחר שלב הבאה:

  1. אם ההפניה לאובייקט זה זהה להפניה לאובייקט הארגומנט, החזר true.
  2. אם הארגומנט הוא null, החזר false.
  3. אם האובייקטים אינם מאותה מחלקה, החזר false.

בהתאם לכך, מדוע עלינו לעקוף את שיטת equals ב-Java?

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

מה השימוש בעקיפה של שיטת hashCode ושווה ב-Java?

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

מוּמלָץ: