我是java中的新手。说,我有一个类个人。我想打印打印对象的引用
Individual ind = new Individual();
System.out.println(ind);
以上代码给出了这样的输出:
[email protected]
- 这样做有什么意义呢?
- 对于那个对象它是一种独特的编号 ?
- 我可以定制这个吗?我的意思是写一个我自己的功能 ,当打印时它会输出?
- 如果是这样,我该怎么办 这个?
我是java中的新手。说,我有一个类个人。我想打印打印对象的引用
Individual ind = new Individual();
System.out.println(ind);
以上代码给出了这样的输出:
[email protected]
如果你想打印任何对象的有意义的内容,你必须实现自己的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格式打印对象。即使你可以将它们解析回等价对象。希望这会帮助你。
没有解释如何/为什么1922221真的出现在第一位。 – KNU 2014-11-18 11:37:18
这是默认的toString()方法的结果 - 类名+散列码。这可以通过覆盖toString()来覆盖。
一些参考这里:http://www.javapractices.com/topic/TopicAction.do?Id=55
我想你想覆盖个人的toString。见http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html#toString()
由于尚未解释,重写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);它会打印出你的字符串。
我已经详细解答了我的答案。它会帮助你更多。谢谢 – Ahamed 2012-01-04 16:37:45