การใช้วิธีการแทนที่เท่ากับใน Java คืออะไร?
การใช้วิธีการแทนที่เท่ากับใน Java คืออะไร?
Anonim

แทนที่เท่ากับ และ hashCode ใน Java

เท่ากับ () กระบวนการ เป็น ใช้แล้ว เพื่อเปรียบเทียบ Objects เพื่อความเท่าเทียมกันในขณะที่ hashCode is ใช้แล้ว เพื่อสร้างรหัสจำนวนเต็มที่สอดคล้องกับวัตถุนั้น

ในที่นี้การใช้วิธีเท่ากับใน Java คืออะไร?

NS เท่ากับ () กระบวนการ เปรียบเทียบสองอ็อบเจ็กต์เพื่อความเท่าเทียมกันและคืนค่า จริง หากเป็น เท่ากับ . NS เท่ากับ () กระบวนการ ให้ไว้ในคลาสอ็อบเจ็กต์ ใช้ ตัวดำเนินการข้อมูลประจำตัว (==) เพื่อตรวจสอบว่าวัตถุสองชิ้นเป็น เท่ากับ . สำหรับชนิดข้อมูลดั้งเดิม จะให้ผลลัพธ์ที่ถูกต้อง

นอกจากนี้ คุณจะแทนที่วิธีเท่ากับใน Java อย่างไร ในคลาสโค้ดด้านบน Person มีเมธอดเท่ากับ () ที่ถูกแทนที่ ซึ่งใช้วิธีการทีละขั้นตอนต่อไปนี้:

  1. หากการอ้างอิงไปยังวัตถุนี้เหมือนกับการอ้างอิงไปยังวัตถุอาร์กิวเมนต์ ให้คืนค่า true
  2. ถ้าอาร์กิวเมนต์เป็น null ให้คืนค่า false
  3. หากอ็อบเจ็กต์ไม่ได้มาจากคลาสเดียวกัน ให้คืนค่า false

เหตุใดเราจึงต้องแทนที่วิธีเท่ากับใน Java

คลาสสตริง แทนที่ NS เท่ากับวิธีการ มันสืบทอดมาจากคลาสอ็อบเจ็กต์และตรรกะที่นำไปใช้เพื่อเปรียบเทียบอักขระอ็อบเจกต์สตริงทั้งสองทีละอักขระ เหตุผลที่ เท่ากับวิธีการ ในคลาส Object การอ้างอิงความเท่าเทียมกันนั้นเป็นเพราะไม่รู้ว่าจะทำอะไรอย่างอื่น

การแทนที่ hashCode และวิธีเท่ากับใน Java คืออะไร?

ถ้าคลาสแทนที่ เท่ากับ , มันต้อง แทนที่ hashCode . เมื่อพวกเขาทั้งสอง แทนที่ , เท่ากับ และ hashCode ต้อง ใช้ ฟิลด์ชุดเดียวกัน ถ้าสองวัตถุคือ เท่ากับ แล้วพวกเขา hashCode ค่าต้องเป็น เท่ากับ เช่นกัน. ถ้าวัตถุนั้นไม่เปลี่ยนรูปแล้ว hashCode เป็นตัวเลือกสำหรับการแคชและการเริ่มต้นแบบสันหลังยาว

แนะนำ: