为什么我的toString()会打印出来?

时间:2015-04-17 14:34:24

标签: tostring

public static void main(String args[]){
Person p = new Person();

System.out.println(p.toString());
}   

这是我在类上调用toString的地方。 这堂课是:    公共类人员{

private String FirstName;
private String LastName;
private int age;
private int salary;

public void setFN(String NewName)
{FirstName = NewName;}

public void setLN(String NewName)
{LastName = NewName;}

public void setAge(int NewAge)
{age = NewAge;}

public void setSalary(int NewSalary)
{salary = NewSalary;}

public String getFN()
{return FirstName;}

public String getLN()
{return LastName;}

public int getAge()
{return age;}

public int getSalary()
{return salary;}

}
它打印出来:

Person@7852e922    

我想知道为什么要打印这个以及它是什么。我的老师给了我这个任务,但我在谷歌或任何其他地方找不到任何东西。

2 个答案:

答案 0 :(得分:2)

您看到的输出来自Java默认toString方法:

  

public String toString()

     

返回的字符串表示形式   宾语。通常,toString方法返回一个字符串   “文字表示”这个对象。结果应该是简洁但是   信息表达,便于人们阅读。它是   建议所有子类都覆盖此方法。

     

toString   类Object的方法返回一个由名称组成的字符串   对象是实例的类,符号字符“@”,   和哈希码的无符号十六进制表示   宾语。换句话说,此方法返回一个等于的字符串   价值:

     

getClass()。getName()+'@'+ Integer.toHexString(hashCode())

     

返回:对象的字符串表示。

For more information about this take a look at the docs.

答案 1 :(得分:0)

根据http://www.javabeginner.com/learn-java/java-tostring-method

toString()默认输出为:

类名 + @ + 对象哈希码的十六进制版本连接成一个字符串。

Object中的默认哈希码方法通常通过将对象的内存地址转换为整数来实现。