Phương thức toString() trong java

Phương thức toString() trong java

Nếu bạn muốn đại diện bất kỳ đối tượng nào dưới dạng chuỗi. Bạn có thể sử dụng phương thức toString().

Phương thức toString() trả về chuỗi đại diện của đối tượng.

Khi bạn in đối tượng, nội bộ trình biên dịch java sẽ gọi phương thức toString() từ đối tượng đó và trả về kết quả mong muốn. Nó có thể là trạng thái của một đối tượng, vv phụ thuộc vào việc cài đặt của bạn.

toString() là một phương thức của lớp Object, có cú pháp như sau:

public String toString() {
    return getClass().getName()+"@"+Integer.toHexString(hashCode());
}

Lợi ích của phương thức toString() trong Java

Bằng việc ghi đề phương thức toString() của lớp Object, chúng ta có thể trả về giá trị của đối tượng.


Vấn đề khi không ghi đè phương thức toString() trong Java

Như bạn đã biết tất cả các lớp trong Java được kế thừa lớp Object.

Khi không ghi đè phương thức toString(), thì phương thức toString của lớp Object sẽ được gọi khi bạn muốn in đối tượng ra màn hình.

Ví dụ:

package vn.viettuts.string;
 
public class Student {
    int rollno;
    String name;
    String city;
 
    Student(int rollno, String name, String city) {
        this.rollno = rollno;
        this.name = name;
        this.city = city;
    }
 
    public static void main(String args[]) {
        Student s1 = new Student(101, "Viet", "HaNoi");
        Student s2 = new Student(102, "Nam", "DaNang");
 
        // trình biên dịch sẽ ghi s1.toString() thay vì s1
        // có nghĩa là khi khai báo s1 thì phương thức s1.toString() 
        // được gọi
        System.out.println(s1);
        // trình biên dịch sẽ ghi s2.toString() thay vì s2
        System.out.println(s2);
    }
}

Output:

vn.viettuts.string.Student@15db9742
vn.viettuts.string.Student@6d06d69c

Khi ghi đề phương thức toString() trong Java

Kết quả trả về của phương thức toString() mặc định của lớp Object có vẻ như không có ý nghĩa gì với chúng ta. Do đó chúng ta nên ghi đè phương thức toString() để ghi ra những gì có ý nghĩa như trong ví dụ sau.

Ví dụ:

package vn.viettuts.string;
 
public class Student {
    int rollno;
    String name;
    String city;
 
    Student(int rollno, String name, String city) {
        this.rollno = rollno;
        this.name = name;
        this.city = city;
    }
 
    // Ghi đè phương thức toString()
    public String toString() {
        return rollno + " " + name + " " + city;
    }
 
    public static void main(String args[]) {
        Student s1 = new Student(101, "Viet", "HaNoi");
        Student s2 = new Student(102, "Nam", "DaNang");
 
        // trình biên dịch sẽ ghi s1.toString() thay vì s1
        // có nghĩa là khi khai báo s1 thì phương thức s1.toString() 
        // được gọi
        System.out.println(s1);
        // trình biên dịch sẽ ghi s2.toString() thay vì s2
        System.out.println(s2);
    }
}

Output:

101 Viet HaNoi
102 Nam DaNang

THANKS FOR YOUR TIME !!!

Related Posts
Lịch sử ngôn ngữ lập trình Java

Java (phiên âm Tiếng Việt: "Gia-va") là một ngôn ngữ lập trình hướng đối tượng, dựa trên lớp được thiết Read more

Phím tắt trong Eclipse giúp tăng năng suất coding

Các phím tắt sẽ giúp tốc độ coding của bạn nhanh hơn rất nhiều, hơn nữa format code của bạn Read more

Lập trình Hướng đối tượng(OOP)

Lập trình hướng đối tượng (tiếng Anh: Object-oriented programming, viết tắt: OOP) là một mẫu hình lập trình dựa trên Read more

Kiểu dữ liệu Nguyên thủy(Primitive)

1. Tổng quan Trong ngôn ngữ lập trình Java có 2 kiểu dữ liệu chúng ta cần nắm và phân Read more

Hãy bình luận đầu tiên

Để lại một phản hồi