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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 依然AI 中级黑马   /  2012-12-20 12:59  /  1444 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 依然AI 于 2012-12-30 12:57 编辑

class Person
{

        Person(String name)
        {
                this.name =name;
        }
        Person(String name,int age)
        {
                //this(name);     1:这是老师推荐的用法   this去调用上面的构造函数  再次传参操作  和执行里面的方法
                //this.name = name;      2:但是这里的用法是直接操作的     
                this.age = age;
                我的疑问是    参数传进来执行的话   用第一种会再次调用一次构造函数 再次传参操作然后执行里面的方法   然后第二种是直接进行了操作
                这样的话  这两种操作  那个更高效呢 ?   第一种更健壮 但是多传参会不会影响效率不如第二种写法呢
        }

}


请理解的透彻的大虾解答



评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 神马都是浮云

查看全部评分

1 个回复

倒序浏览
我觉得还是用第一种方法,因为这体现了封装性而且也提高了复用性。
你想,这里this(name);只是对一个值进行初始化,但是很可能在这个构造函数里面还有很多其他动作,
在  Person(String name,int age)里面你不复用而是自己再重写了this(name)的功能,一方面很繁琐,容易出错,
另外也不能很好的体现封装性

例如一个是Person(int a,int b, int c,int d,int d)
Person(int a,int b, int c,int d,int d,int e)
{
你是准备用this(int a,int b, int c,int d,int d),还是
this.a =a ;
this.b =b;
this.c =c;
this.d =d;
this.e =e;
这样写
}

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 赞一个!

查看全部评分

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