2012-01-04 99 views
7

我是java中的新手。说,我有一个类个人。我想打印打印对象的引用

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

以上代码给出了这样的输出:

[email protected] 
  1. 这样做有什么意义呢?
  2. 对于那个对象它是一种独特的编号 ?
  3. 我可以定制这个吗?我的意思是写一个我自己的功能 ,当打印时它会输出?
  4. 如果是这样,我该怎么办 这个?
+0

我已经详细解答了我的答案。它会帮助你更多。谢谢 – Ahamed 2012-01-04 16:37:45

回答

10

如果你想打印任何对象的有意义的内容,你必须实现自己的toString()方法,这将覆盖父(Object)类的toString()方法。默认情况下,所有类(无论你创建什么)都会扩展Object类。

示例代码:

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); 
    } 
} 

输出:

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

如果你有很多变数较大的类,你可以使用XStream来实现你的toString()方法。 XStream将以XML格式打印对象。即使你可以将它们解析回等价对象。希望这会帮助你。

+0

没有解释如何/为什么1922221真的出现在第一位。 – KNU 2014-11-18 11:37:18

2

由于尚未解释,重写toString()方法仅仅意味着您在类中创建了自己的toString()方法。通过在你的类中放入你自己的toString()版本,你可以让java使用你的toString()方法而不是默认的方法。因为原始的toString()方法返回一个字符串,但是,toString()方法也必须返回一个字符串。您的个人类将是这个样子:

public class Individual{ 

    //any other code in the class 

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

} 

然后,当你叫你是System.out.print(IND);它会打印出你的字符串。