البرمجة

تنفيذ أسلوب equals في Java

في السياق البرمجي لاختبار OCPJP، يعتبر الأسلوب equals من الأساليب المهمة جداً. يهدف هذا الأسلوب إلى مقارنة المحتوى بين كائنين من نفس النوع، والعودة بقيمة true إذا كانت المحتويات متطابقة، و false إذا لم تكن.

لفهم الإجابة (B)، يجب أن نلقي نظرة على الشيفرة المصدرية المعطاة في السؤال. يتم استخدام الكلاس Person لإنشاء كائنين، وتم تعيين قيم مختلفة للحقل name في كل كائن. ثم يتم استدعاء الطريقة equals للقيام بمقارنة بين الكائنين.

الشيفرة المصدرية:

java
class Person { String name; public boolean equals(Object obj) { if (this == obj) return true; if (obj == null || getClass() != obj.getClass()) return false; Person person = (Person) obj; return name != null ? name.equals(person.name) : person.name == null; } } public class Test { public static void main(String[] args) { Person p1 = new Person(); Person p2 = new Person(); p1.name = "John"; p2.name = "John"; System.out.println(p1.equals(p2)); } }

الإجابة الصحيحة هي (B)، وذلك لأن الشيفرة المصدرية في طريقة equals تستخدم name.equals(person.name) للمقارنة بين الأسماء. وبما أن الأسماء في الكائنين p1 و p2 متطابقة (كلاهما “John”)، فإن الدالة equals ستعيد قيمة true.

لتوضيح أكثر، يتم مقارنة الكائنين p1 و p2 في الخطوط التالية:

java
System.out.println(p1.equals(p2));

وبما أن الأسماء متطابقة، ستكون النتيجة true.

المزيد من المعلومات

طبعًا، دعنا نقوم بتوسيع المناقشة حول أسلوب equals في لغة البرمجة Java وكيفية تنفيذه بشكل صحيح.

أسلوب equals هو أحد الأساليب الأساسية المستخدمة في Java لمقارنة المحتوى بين كائنين من نفس النوع. عندما تقوم بتنفيذ هذا الأسلوب، يجب عليك اتباع بعض الإرشادات لضمان تحقيق مقارنة دقيقة وصحيحة. إليك بعض النقاط التي يجب مراعاتها:

  1. التحقق من الكائن الممرر: يجب التحقق مما إذا كان الكائن الذي تمرره للأسلوب equals هو null أو من نوع مختلف. يتم ذلك عن طريق فحص obj == null و getClass() != obj.getClass().

  2. تحويل الكائن: قد يكون من الضروري تحويل الكائن الممرر إلى نفس النوع من أجل مقارنة دقيقة. يتم ذلك باستخدام Person person = (Person) obj; في الشيفرة المصدرية المذكورة.

  3. مقارنة الحقول: يجب مقارنة الحقول الفردية لضمان تطابق المحتوى. في هذه الحالة، يتم مقارنة الحقل name باستخدام name.equals(person.name).

  4. التحقق من القيم null: عند مقارنة السلاسل (Strings)، يجب التحقق من أن القيمة ليست null لتجنب الأخطاء.

في الختام، يعد فهم كيفية تنفيذ واستخدام أسلوب equals أمرًا حيويًا لضمان تحقيق المقارنات بشكل صحيح. يُشدد دائمًا على أن يتم تخصيص اهتمام كبير للمقارنة بين الحقول الفردية والتحقق من حالات الحدود مثل القيم null.

مقالات ذات صلة

زر الذهاب إلى الأعلى

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!