Nếu bạn muốn biễu diễn trạng thái của 1 object dưới dạng String, đó là lý do java cung cấp toString() method.
- Hướng dẫn cách vẽ quả táo đơn giản với 7 bước ai cũng thực hiện được
- Embedded System là gì? Kỹ năng cần có của một Embedded Developer
- SQA là gì? Đảm bảo chất lượng phần mềm có thực sự cần thiết?
- Cách chạy file PHP trên XAMPP
- Bomman – Minh Nghi: Cái kết viên mãn cho cặp đôi đẹp nhất nhì làng game Việt
Khi chúng ta muốn in hoặc ghi một đối tượng, Java compiler sẽ ngầm gọi toString() method trong Object class. Lưu ý rằng tất cả các class trong java đều là con của Object class.
Bạn đang xem: Biễn diễn trạng thái object qua toString() Java method
toString() method mặc định được định nghĩa trong Object class
public String toString() { return getClass().getName()+”@”+Integer.toHexString(hashCode()); }
Ví dụ
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,”Raj”,”lucknow”); Student s2=new Student(102,”Vijay”,”ghaziabad”); System.out.println(s1); System.out.println(s1.toString()); System.out.println(s2); System.out.println(s2.toString()); } }
Output:
Xem thêm : Quy đổi từ Phút ánh sáng sang Kilômét (Phút ánh sáng sang km):
Student@1b6d3586Student@1b6d3586Student@4554617cStudent@4554617c
Override toString()
Kết quả của ví dụ trên thật sự làm mình rất hoang mang và không hiểu gì hết đó là do implement mặc định của Object như vậy.
Để biễu diễn object có ý nghĩa hơn, chúng ta có thể override toString() và xuất các thông tin có ý nghĩa hơn như là xuất giá trị của tất cả các thuộc tính etc.
Ví dụ override toString() xuất giá trị của tất cả các thuộc tính của Student object.
class Student{ int rollno; String name; String city; Student(int rollno, String name, String city){ this.rollno=rollno; this.name=name; this.city=city; } @Override public String toString() { return “Student{” + “rollno=” + rollno + “, name='” + name + ”’ + “, city='” + city + ”’ + ‘}’; } public static void main(String args[]){ Student s1=new Student(101,”Raj”,”lucknow”); Student s2=new Student(102,”Vijay”,”ghaziabad”); System.out.println(s1); System.out.println(s1.toString()); System.out.println(s2); System.out.println(s2.toString()); } }
Output:
Student{rollno=101, name=’Raj’, city=’lucknow’}Student{rollno=101, name=’Raj’, city=’lucknow’}Student{rollno=102, name=’Vijay’, city=’ghaziabad’}Student{rollno=102, name=’Vijay’, city=’ghaziabad’}
Override toString() trong IntelliJ
Xem thêm : IPhone SE 32Gb Mới 100% (Máy Trần – Đã Kích Hoạt)
Như ví dụ trên thì mình không cần phải viết lại hàm toString() để xuất tất cả các thông tin của Student object đâu, mà các IDE hiện tại đã hỗ trợ tính năng này.
Để generate toString() method trong IntelliJ chúng ta có các bước sau:
1. Menu | Code | Generate Hoặc Alt + insert (windows)

Giao diện hiện thị chọn các method cần generate, tiếp theo chọn toString().

Chọn các thuộc tính muốn hiện thị trong toString() | OK

Tóm lược
toString() method sẽ hữu ích trong trường hợp chúng ta muốn hiển thị thông tin cần thiết của một object thay vì thấy những dòng loằng ngoằng khó hiểu mà toString() Object class định nghĩa.
Vì đây là những hàm phổ biến nên hầu hết các IDE đều hỗ trợ như IntelliJ, Eclipse, Netbean etc. Cách làm cũng giống như trên nên các bạn có thể xem hướng tiếp cận của IntellIJ mình đã trình bày để áp dụng cho IDE bạn đang sử dụng.
Nguồn: https://sigma.edu.vn
Danh mục: Công Nghệ





