A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘文飞 中级黑马   /  2012-10-21 19:24  /  1274 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘文飞 于 2012-10-22 22:19 编辑

代码如下,问题见红色注释
————————————————————————————————————————
class Person{
        private int age;
        public Person(){}
        public Person(int age){
                this.age = age;
        }
        public void setAge(int age){
                this.age = age;
        }
        public int getAge(){
                return this.age;
        }
        public String toString(){
                return "Age" + "\t" + this.age;
                //return this.age;单独只是return this.age怎么就出现了类型转换错误了?前面加上字符串了就能完成自动转换?
        }
        
}
public class ConstructionDemo01{
        public static void main(String args[]){
                Person per1 = new Person();//具有有参构造的时候覆写了默认的无参构造
                per1.setAge(20);
                System.out.println(per1);
        }
}

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1

查看全部评分

4 个回复

倒序浏览
个人理解,首先你toString方法——  返回的是String
而这里的age  是int类型。  所以前面加上字符串会自动完成强转操作。
回复 使用道具 举报
个人理解:
前面加上字符传 “” + age,那么首先对于“”生成一个String对象,它调用重载的 + 操作符,得到的结果是String
但是如果直接写age,由于age只是个基本类型,并没有toString()可以调用,没有办法从 int 转型为 String
回复 使用道具 举报
数据类型不一样,程序没办法调用,
之后你的" "+就能帮你完成转换了
回复 使用道具 举报
本帖最后由 张飞年 于 2012-10-21 20:17 编辑

这种问题楼主不要走死脑筋哦,基本数据转字符串二种方法:一是直接加个空串“”二是用Strng.valueOf().
这里是return一个字符串,你如果直接给一个基本数据类型int人家当然不干 了。

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马