مقدمة
فئة الكائنات: هذه الفئة java.lang.java هي الفئة الأم التي ورثتها جميع الفئات بشكل افتراضي.
ثلاث طرق شائعة الاستخدام في فئة الكائن: toString() ، equal() ، hashCode()
1.
أثناء وضع الذات لكائن ، نظرًا لأنه من المزعج طباعة متغيرات المثيل باستخدام طريقة get() ، يتم استخدام toString() للبساطة.
السلسلة العامة ToString () {return "Learn Well" + GetNo () + "name" + getName () ؛} System.out.println(s); يعادل System.out.println(s.toString());
الطباعة:
أ. اطبع قيمته مباشرة عندما يكون نوع البيانات الأساسية
ب. استدعاء toString() عند الإشارة إلى نوع البيانات والطباعة
إذا لم يتم إعادة كتابة طريقة toString() في فئة الكائن ، فقم بطباعة الكائن مباشرة ، والنتيجة التي تم الحصول عليها في وحدة التحكم هي:
hashcode يحتوي على اسم كامل @ كائن
2. إعادة الكتابة متساوية () طريقة تساوي () يجب إعادة كتابة Hashcode ().
Equals() يقارن محتويات كائنين ، أو الكائنين ؛ hashCode() هو العنوان الداخلي للكائن وهو عدد صحيح.
== الفرق بين متساوين ()؟
الإجابة: == المقارنة الأساسية هي ثنائية ، ويقارن نوع البيانات الأساسية القيم العددية ، ويقارن نوع البيانات المرجعية العنوان
يتم تقسيم Equals() إلى equals() من فئة الكائنات equals() من فئة السلسلة. equals() من فئة الكائن يعادل == مقارنة نوع المرجع ؛ equals() من فئة السلسلة يتجاوز طريقة equals() في فئة الكائن ، ومقارنة القيم الحرفية.
يحدد مثيل اسم الفصل ، أو قد يستخدم الانعكاس
مرجع الكائن متغير name extleof class name expression ، إذا كان اسم متغير مرجع الكائن هو كائن الفئة أو الفئة الأساسية التي لا تزال قيمة الإرجاع صحيحة.
طريقة equals() :
1. نفس النوع
2. حدد قواعد المقارنة الخاصة بك
منطقية عامة تساوي (كائن كائن) {// إعادة كتابة طريقة متساوٍ () من الكائن المساواة في equalstestest = (equalstest) كائن ؛ if (quareStest.getClass () == quareStest.class) {//؟؟؟؟؟؟؟؟؟؟؟؟؟؟ true ؛} آخر {return false ؛}} آخر {return false ؛}}3. يتم استخدام طريقة HashCode () لتسريع البحث وتنفيذ البحث عن الفهرس (خوارزمية الاستعلام ، خوارزمية التخزين)
public int hashcode () {return this.name.hashcode ()*13 + interger interger (getage) .hashCode ()*12 ؛}مبدأان من Hashcode:
1. عندما تكون قيمة الإرجاع للكائنين equals() صحيحة ، يجب أن تضمن أساليب hashCode() أيضًا أن تكون قيمة الإرجاع هي نفسها.
2. استخدام equals() لمقارنة الخصائص المستخدمة في الكائن ، ويجب استخدامها جميعها لحساب hashCode() .
Hashcode () خوارزمية التجزئة
يحتاج:
equals() hashCode()
2. أعد كتابة السمات لاستخدام hashCode() وما هي السمات التي يجب استخدامها في طريقة equals() .
ملاحظة: Hashcode هو نفسه ، يساوي ليس بالضرورة هو نفسه.
يستخدم Hashcode للحكم على المجلدات ، ويتم استخدام Equals للحكم على الملفات.
إذا لم يتم تجاوز طريقة hashCode() ، فسيتم العثور على طريقة hashcode () الافتراضية استنادًا إلى عنوان الكائن (قيمة المفتاح هي عنوان الكائن)
إذا قمت بإعادة كتابة طريقة hashCode() ، فلا يمكن استخدامها لتحديد ما إذا كان هو نفس الكائن.
يمكنك استخدام System.identityHashCode (الاسم المرجعي للكائن) إذا كان الرمز هو نفسه ، فهو نفس الكائن.
System.out.println(System.identityHashCode(对象的引用名));
إذا لم يكن هناك hashCode() ، يتم حساب ترميز كائنه بواسطة عنوان الكائن.
System.out.println(对象引用名.hashCode());
ملاحظة: ما إذا كانت العناصر موجودة في مجموعة التجزئة وطرق حذف تبعيات التشغيل هي hashCode() و equals() للعنصر.
لخص
ما سبق هي ثلاث طرق شائعة للكائن الأصل في Java المترجمة لك. آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل. شكرا لدعمكم ل wulin.com.