27. Lớp Object trong lập trình java hướng đối tượng

Lớp Object là một lớp căn bản trong lập trình Java hướng đối tượng, là lớp cơ sở cho tất cả các lớp khác trong hệ thống lớp của Java. Mọi lớp trong Java đều kế thừa từ lớp Object, trực tiếp hoặc gián tiếp.

Lớp Object định nghĩa một số phương thức quan trọng mà mọi đối tượng trong Java có sẵn:

  1. equals(Object obj): Phương thức này được sử dụng để so sánh hai đối tượng. Mặc định, nó kiểm tra xem hai đối tượng có cùng tham chiếu hay không. Tuy nhiên, phương thức này có thể được ghi đè để thực hiện so sánh tùy chỉnh.
  2. hashCode(): Phương thức này trả về mã băm (hash code) của đối tượng. Mã băm được sử dụng trong các cấu trúc dữ liệu như bảng băm (hash table) để tìm kiếm hiệu quả.
  3. toString(): Phương thức này trả về một chuỗi biểu diễn của đối tượng. Thông thường, phương thức này trả về tên lớp và địa chỉ bộ nhớ của đối tượng.
  4. getClass(): Phương thức này trả về đối tượng Class đại diện cho lớp của đối tượng hiện tại. Đối tượng Class chứa thông tin về lớp, bao gồm tên lớp, phương thức, thuộc tính, v.v.
  5. finalize(): Phương thức này được gọi trước khi đối tượng bị thu gom rác (garbage collected). Nó cho phép đối tượng thực hiện các hoạt động cuối cùng trước khi bị hủy.

Ví dụ, xem xét lớp Person mà kế thừa từ Object:

java
public class Person {
    private String name;
    private int age;

    // Constructors, getters, setters, etc.

    @Override
    public boolean equals(Object obj) {
        // Ghi đè phương thức equals()
        // Xử lý so sánh tùy chỉnh cho lớp Person
    }

    @Override
    public int hashCode() {
        // Ghi đè phương thức hashCode()
        // Trả về mã băm tùy chỉnh cho lớp Person
    }

    @Override
    public String toString() {
        // Ghi đè phương thức toString()
        // Trả về chuỗi biểu diễn của đối tượng Person
    }
}

Lớp Person ở ví dụ trên kế thừa các phương thức cơ bản từ lớp Object, nhưng nó cũng có thể ghi đè (override) các phương thức này để cung cấp hành vi tùy chỉnh phù hợp với lớp.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top