Java equals()

Khám Phá Phương Thức equals() Trong Java

Trong ngôn ngữ lập trình Java, phương thức equals() là một phương thức được cung cấp bởi lớp Object, và được sử dụng để so sánh cách thức bằng nhau của các đối tượng. Mặc định, phương thức này so sánh xem hai tham chiếu đối tượng có trỏ đến cùng một địa chỉ bộ nhớ hay không. Tuy nhiên, nhiều lớp thường ghi đè phương thức này để cung cấp cách so sánh chính xác hơn, thường dựa trên nội dung của các thuộc tính của đối tượng.

Định Nghĩa

Phương thức equals() được định nghĩa trong lớp Object và có cú pháp như sau:

public boolean equals(Object obj)

Phương thức này nhận vào một tham số kiểu Object và trả về giá trị boolean: true nếu hai đối tượng là bằng nhau, false nếu không.

Cú Pháp

Dưới đây là cú pháp cơ bản để sử dụng phương thức equals():

ClassName obj1 = new ClassName();
ClassName obj2 = new ClassName();

if (obj1.equals(obj2)) {
    // Thực hiện một hành động nếu obj1 và obj2 bằng nhau
}

Ví Dụ Sử Dụng Phương Thức equals()

Ví dụ 1: Sử Dụng equals() Với Lớp Đối Tượng Tùy Chỉnh

class Person {
    private String name;
    
    public Person(String name) {
        this.name = name;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true; // So sánh địa chỉ bộ nhớ
        }
        if (obj == null || getClass() != obj.getClass()) {
            return false; // Kiểm tra null và kiểu lớp
        }
        Person person = (Person) obj; // Ép kiểu đối tượng
        return name != null ? name.equals(person.name) : person.name == null; // So sánh tên
    }
}

public class Main {
    public static void main(String[] args) {
        Person p1 = new Person("Alice");
        Person p2 = new Person("Alice");
        
        System.out.println(p1.equals(p2)); // Kết quả: true
    }
}

Ví dụ 2: So Sánh Hai Đối Tượng String

public class Main {
    public static void main(String[] args) {
        String str1 = new String("Hello");
        String str2 = new String("Hello");

        System.out.println(str1.equals(str2)); // Kết quả: true
    }
}

Kết Luận

Phương thức equals() trong Java rất quan trọng trong việc xác định xem hai đối tượng có bằng nhau hay không. Việc ghi đè phương thức này trong các lớp tùy chỉnh giúp người lập trình có thể tạo ra những so sánh theo yêu cầu riêng, giúp cải thiện tính năng và khả năng tương tác của các đối tượng trong ứng dụng. Với các ví dụ trên, hy vọng bạn đã có cái nhìn rõ nét hơn về cách sử dụng phương thức equals() trong Java.