您的位置:首页 > 其它

遇到的一个关于 this 和toString()的问题

2015-11-15 21:40 267 查看
在学习 垃圾回收 机制的时候,遇到一个问题,然后改写了一下代码,如下:

package day1021;
class Person
{
private String name;
private int age;
public Person(String name,int age)
{
this.name =name;
this.age = age;
}
public String toString()
{
return "姓名--"+name+"--年龄--"+age;
}

public void  dada()
{
System.out.println("对象被释放"+this);
}

}
public class  Test3
{
public static void main(String[] args)
{
Person per = new Person("张三",30);
per.dada();
}
}


测试结果输出的是:对象被释放姓名–张三–年龄–30

首先奇怪的是输出,为什么没有调用toString()方法,为什么会输出方法里面的内容呢?经过仔细的查找了一下 原因在于toString() 是String 类中的一个方法,上面的代码对改方法进行了重写,并且该方法返回的是此对象本身

api中解释如下:



上面的代码 toString中 return 的字符串 赋值给了 当前对象,返回的是对象本身,所以结果输出的是 张三–年龄–30

而不是this的地址。

–本人初学者,勿喷。希望自己谨记 错误,不断概括,不断学习。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  this toString