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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ※芤雀翎※ 中级黑马   /  2013-10-15 02:20  /  1302 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨增坤 于 2013-10-15 09:35 编辑

class Person
{
        private String name;
        private int age;
        
        Person()
        {
                  this("hah");
               
        }
        
        Person(String name)
        {
                 this();
                this.name =name;
        }
        Person(String name,int age)
        {
               
                this.age = age;
               
        }

}

class  PersonDemo4
{
        public static void main(String[] args)
        {
                new Person();
        
        }
}
就这一段代码中,我在主函数中new的person在建立过程中初始化的顺序,成员变量和成员函数相互调用的关系和顺序究竟是怎么样的啊,毕老师说是死循环,这一段看了很多遍一直弄不明白,折腾到半夜了睡不着,求大神们帮助。

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1

查看全部评分

3 个回复

倒序浏览
new Person();调用Person()无参构造方法,
而Person()构造方法首行通过
this("hah");
调用Person(String name)构造方法,
而Person(String name)首行又通过
this()
调用无参构造方法Person();
这是一个死循环,永远执行不完.

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1

查看全部评分

回复 使用道具 举报
谢谢了啊
回复 使用道具 举报
楼上兄弟说的很多正确。还有当返回值是当前对象时,就要用到 return this;
老毕都有讲的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马