2012-01-04 45 views
7

Tôi là một newbie trong java. Giả sử, tôi có một lớp học Cá nhân. Tôi muốn inIn tài liệu tham khảo đến một đối tượng

Individual ind = new Individual(); 
System.out.println(ind); 

Trên đang cung cấp cho đầu ra như thế này:

[email protected] 
  1. tầm quan trọng của việc này là gì?
  2. Có một số loại id duy nhất cho đối tượng đó không?
  3. Tôi có thể tùy chỉnh điều này không? Tôi có nghĩa là viết một chức năng của của riêng tôi mà sẽ cung cấp cho đầu ra khi tôi in?
  4. Nếu có, làm cách nào để tôi có thể thực hiện điều này?
+0

Tôi đã nêu chi tiết câu trả lời của mình. Nó sẽ giúp bạn nhiều hơn. Cảm ơn – Ahamed

Trả lời

10

Nếu bạn muốn in nội dung có ý nghĩa của bất kỳ đối tượng nào, bạn phải triển khai phương pháp toString() của riêng mình, phương pháp này sẽ ghi đè phương thức toString() của lớp học. Theo mặc định, tất cả các lớp (Dù bạn tạo) mở rộng lớp Object.

Sample Code:

public class Individual { 
    private String name; 
    private String city; 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getCity() { 
     return city; 
    } 

    public void setCity(String city) { 
     this.city = city; 
    } 

    @Override 
    public String toString() { 
     StringBuilder builder = new StringBuilder(); 
     builder.append("Name of Individual :").append(this.getName()) 
       .append("\nCity :").append(this.getCity()); 
     return builder.toString(); 
    } 
    public static void main(String[] args) { 
     Individual individual = new Individual(); 
     individual.setName("Crucified Soul"); 
     individual.setCity("City of Crucified Soul"); 
     System.out.println(individual); 
    } 
} 

Output:

Name of Individual :Crucified Soul 
City :City of Crucified Soul 

Nếu bạn có lớp lớn hơn với nhiều biến, bạn có thể sử dụng XStream để thực hiện phương thức toString() của bạn. XStream sẽ in đối tượng của bạn có ý nghĩa trong định dạng XML. Thậm chí bạn có thể phân tích chúng trở lại đối tượng tương đương. Hy vọng điều này sẽ giúp bạn.

+0

Không có lời giải thích về cách/tại sao '1922221' thực sự xuất hiện ở vị trí đầu tiên. – KNU

2

Vì nó chưa được giải thích, việc ghi đè phương thức toString() đơn giản có nghĩa là bạn tạo phương thức toString() của riêng bạn trong lớp của bạn. Bằng cách đặt phiên bản của riêng bạn của toString() trong lớp của bạn, bạn làm cho nó để java sẽ sử dụng phương thức toString() của bạn chứ không phải là mặc định. Vì phương thức toString() ban đầu trả về một chuỗi, tuy nhiên, phương thức toString() của bạn cũng phải trả về một chuỗi. Lớp Cá nhân của bạn sẽ trông giống như sau:

public class Individual{ 

    //any other code in the class 

    public String toString(){ 
     return "your string"; 
    } 

} 

Sau đó, khi bạn gọi System.out.print (ind); nó sẽ in ra chuỗi của bạn.

Các vấn đề liên quan