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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

路易斯威登吕

初级黑马

  • 黑马币:0

  • 帖子:13

  • 精华:0

© 路易斯威登吕 初级黑马   /  2012-8-22 10:29  /  823 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1• 01  public class LianXi1
• 02  {
• 03    public LianXi1()
• 04    {
• 05      System.out.println("调用无参构造器");
• 06      new LianXi1("hello");
• 07    }
• 08    public LianXi1(String s)
• 09    {
• 10      System.out.println("调用有参构造器");
• 11      new LianXi1();
• 12    }
• 13    public static void main(String args[])
• 14    {
• 15      new LianXi1();
• 16    }
• 17  }

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1 新人发帖,赞一个!

查看全部评分

2 个回复

倒序浏览
个人觉得,因为第11行和第6行的同时存在,导致出现无限循环的运行了构造函数,第11行和第6行只留一个即可。是否?
回复 使用道具 举报
本帖最后由 刘源 于 2012-8-22 10:48 编辑

public class LianXi1
  {
    public LianXi1() //第二步,第四步。。。。
    {
     System.out.println("调用无参构造器");
     new LianXi1("hello");
    }
   public LianXi1(String s) //第三步,第五步。。。。
   {
     System.out.println("调用有参构造器");
    new LianXi1();    
}
    public static void main(String args[])
    {
      new LianXi1(); //第一步
    }
}
我给你把执行顺序打一遍,你就知道哪里错了。你在无参中调用有参,有参中调用无参,你说你这个程序如何能停下来。   对了只需要把红色代码去 掉就OK了。
这样,你就在主函数中调用过无参函数,然后在无参函数中调用有参函数,而到有参函数程序就停了,这样无参和有参的构造器就都只执行了一次。你的目的就达到了

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1

查看全部评分

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