学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
 15 12
发新话题
打印

public String toString()

public String toString()

class stu
{
int age;
stu(int age)
{
this.age = age;
}
public String toString()
{
System.out.println("diaoyong");
return age+"";
}
}
class str
{
public static void main(String []args)
{
stu s = new stu(15);
System.out.println(s);//这个时候为什么去调用了我们重写的toString方法
System.out.println(s.age);这个时候应该也去调用啊?为什么没有去调用,我感觉它在这个地方是隐式 的 去 调 用了tostring()方法
}
}

TOP

能调用呀。在子类中父类的方法若被重写那么就调用重写的方法

TOP

楼主的程序没有什么问题啊

当你打印出对象的时候,它默认就去调用对象的toString方法,这是JAVA里面的规定

第二个,s.age表示是调用对象s里面的成员变量age,这个时候怎么会去调用toString呢?
可惜不是你,陪我到最后

TOP

哈哈,恍然大悟!冰封还有别的情况可以掉用我们自己重写的toString吗?

[shadow=255,red,2]待到秋来九月八,我花开时百花杀。冲天香阵透长安,满城尽是黄金甲。 [/shadow]

TOP

用+相加的时候,反正就是用到字符串时候,它会自动调用toString把你的对象转为字符串,然后再做别的事情
可惜不是你,陪我到最后

TOP

冰封,我还是有点不太明白,我知道是对象的时候调用我们重写的toString()方法,那你说+的时候,用到字符串时候就调用,可否在我的小例子上改一下,麻烦你了!

[shadow=255,red,2]待到秋来九月八,我花开时百花杀。冲天香阵透长安,满城尽是黄金甲。 [/shadow]

TOP

class stu
{
int age;
stu(int age)
{
this.age = age;
}
public String toString()
{
System.out.println("diaoyong");
return age+"";
}
}
class str
{
public static void main(String []args)
{
stu s = new stu(15);
System.out.println("abcd"+s);//这个时候为什么去调用了我们重写的toString方法
System.out.println(s.age);这个时候应该也去调用啊?为什么没有去调用,我感觉它在这个地方是隐式 的 去 调 用了tostring()方法
}
}
可惜不是你,陪我到最后

TOP

十分感谢!!

[shadow=255,red,2]待到秋来九月八,我花开时百花杀。冲天香阵透长安,满城尽是黄金甲。 [/shadow]

TOP

神经塔学的怎么样了
win32汇编
病毒 加密
目前兴趣所在

TOP

哈哈,后天开始学jsp了!真是高兴!我看你都学完了strus了!牛!加你的qq,我的qq是494909176

[shadow=255,red,2]待到秋来九月八,我花开时百花杀。冲天香阵透长安,满城尽是黄金甲。 [/shadow]

TOP

 15 12
发新话题