神经塔 发表于 2007-1-7 01:30

public String toString()

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

liupei1012 发表于 2007-1-7 08:10

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

千里冰封 发表于 2007-1-7 09:00

楼主的程序没有什么问题啊<BR><BR>当你打印出对象的时候,它默认就去调用对象的toString方法,这是JAVA里面的规定<BR><BR>第二个,s.age表示是调用对象s里面的成员变量age,这个时候怎么会去调用toString呢?

神经塔 发表于 2007-1-7 10:46

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

千里冰封 发表于 2007-1-7 10:55

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

神经塔 发表于 2007-1-7 11:07

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

千里冰封 发表于 2007-1-7 11:21

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

神经塔 发表于 2007-1-7 11:31

<P>十分感谢!!</P>

无理取闹 发表于 2007-1-7 11:53

神经塔学的怎么样了[em01]

神经塔 发表于 2007-1-7 12:10

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

无理取闹 发表于 2007-1-7 12:21

加你了 yoyoyoyoyo那个

jialong 发表于 2008-4-11 17:46

使用s就是调用toString方法吗?

sunkaidong 发表于 2008-4-11 17:59

不是..是说当你要打印对象的时候对象会调用tostring()函数..一般用来打印对象信息

he20041987 发表于 2008-4-11 20:20

这里不是输出了三次吗? 看不懂中间的15是怎么来的

[[it] 本帖最后由 he20041987 于 2008-4-11 20:27 编辑 [/it]]

sunkaidong 发表于 2008-4-11 20:38

第一次是调用tostring()方法是调用的..第二次是返回值打印..第三次是后一个打印函数的内容

页: [1]

编程论坛