تم تعريف وظيفة التساوي في كائن الفئة الأساسية. الكود المصدري هو كما يلي
انسخ رمز الكود كما يلي:
منطقية عامة يساوي (كائن كائن) {
العودة (هذا == obj)؛
}
يمكن أن نرى من الكود المصدري أن طريقة يساوي () الافتراضية تتوافق مع "= =". وهي إشارات إلى الكائنات التي تتم مقارنتها، وليست قيم الكائنات (وهذا يتوافق مع منطقنا السليم الذي يساوي (). تستخدم لمقارنة الكائنات والسبب هو أن معظم الفئات في Java قد تجاوزت طريقة يساوي () فيما يلي مثال على فئة السلسلة. الكود المصدري لأسلوب يساوي () لفئة السلسلة هو كما يلي:)
[جافا]
انسخ رمز الكود كما يلي:
/** يتم استخدام القيمة لتخزين الأحرف */
قيمة الحرف النهائية الخاصة[]؛
/** الإزاحة هي الفهرس الأول للتخزين المستخدم */.
إزاحة نهائية خاصة؛
/** العدد هو عدد الأحرف في السلسلة */
العد النهائي الخاص؛
[جافا] عرض نسخة عادية؟
منطقية عامة يساوي (كائن anObject) {
إذا (هذا == كائن) {
عودة صحيحة؛
}
إذا (مثيل كائن لسلسلة) {
String elseString = (String)anObject;
int n = العد؛
إذا (ن == آخرString.count) {
شار v1[] = القيمة؛
char v2[] = AnotherString.value;
int i = إزاحة;
int j = elseString.offset;
بينما (ن-- != 0) {
إذا (v1[i++] != v2[j++])
عودة كاذبة.
}
عودة صحيحة؛
}
} //www.software8.co
عودة كاذبة.
}
يعد Equals() لفئة String أمرًا بسيطًا للغاية، فهو يقوم فقط بتحويل فئة String إلى مصفوفة أحرف ومقارنتها شيئًا فشيئًا.
باختصار، عند استخدام طريقة يساوي () يجب أن ننتبه إلى ما يلي:
1. بما أنه يتم تطبيق يساوي () على كائن مخصص، فيجب عليك تجاوز أسلوب يساوي () الخاص بالنظام في الفئة المخصصة.
2. قليل من المعرفة، مشكلة كبيرة.