53. Phương thức toString() trong lập trình java

Trong lập trình java, Phương thức toString() là một phương thức được định nghĩa trong lớp Object, là lớp cơ sở cho tất cả các lớp trong Java. Tất cả các lớp con đều kế thừa phương thức toString() từ lớp Object, và bạn có thể ghi đè (override) phương thức này trong lớp con để cung cấp một biểu diễn chuỗi đại diện cho đối tượng đó.

Mục đích chính của phương thức toString() là trả về một chuỗi biểu diễn dễ đọc và thông tin về đối tượng. Phương thức này thường được sử dụng để ghi thông tin đối tượng vào các bản ghi nhật ký (logs), hiển thị thông tin của đối tượng trong giao diện người dùng hoặc debugging.

Mặc định, phương thức toString() trong lớp Object trả về một chuỗi có định dạng là tên lớp của đối tượng theo sau là một dấu @ và mã hash của đối tượng. Đây không phải là một biểu diễn thông tin hữu ích, vì nó chỉ cung cấp thông tin về lớp và mã hash và không liên quan đến dữ liệu thực sự trong đối tượng.

Để cung cấp một biểu diễn chuỗi hữu ích và chính xác hơn cho đối tượng, bạn nên ghi đè phương thức toString() trong lớp con theo nhu cầu của ứng dụng. Điều này thường đòi hỏi viết mã để trả về thông tin cụ thể và dễ đọc của đối tượng.

Dưới đây là một ví dụ minh họa về việc sử dụng phương thức toString():

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

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // Ghi đè phương thức toString() để trả về thông tin của đối tượng
    @Override
    public String toString() {
        return "Person[name=" + name + ", age=" + age + "]";
    }
}

public class ToStringExample {
    public static void main(String[] args) {
        Person person = new Person("John", 30);

        // Gọi phương thức toString() để nhận biểu diễn chuỗi của đối tượng
        System.out.println(person.toString()); // Kết quả: "Person[name=John, age=30]"
        // Phương thức toString() cũng được tự động gọi nếu đối tượng được truyền vào trong hàm println()
        System.out.println(person); // Kết quả: "Person[name=John, age=30]"
    }
}

Output sẽ là:

css
Person[name=John, age=30]
Person[name=John, age=30]

Lưu ý rằng khi gọi phương thức toString(), bạn cũng có thể thấy nó được tự động gọi nếu đối tượng được truyền vào trong hàm println() hoặc các phương thức khác yêu cầu một chuỗi.

Leave a Comment

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

Scroll to Top