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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Moonboy2014 中级黑马   /  2014-6-12 14:53  /  1797 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Student
{
        private String name;
        private iont age;
        Student()
        {
                this("haha");
        }
        Student(String name)
        {
                this();
                this.name = name;
        }
}
........new Person();......
问一下,这段代码能够编译通过吗?尽量帮忙解答详细些,多谢了!

15 个回复

倒序浏览
首先private  iont  age;是不能通过的
回复 使用道具 举报
Gaara33 发表于 2014-6-12 14:56
首先private  iont  age;是不能通过的

呵呵,这个是笔误:loveliness:
回复 使用道具 举报
下面这个new Person()是啥?你是想写new Student()吧? 能不能通过你运行下不就知道了?
回复 使用道具 举报
class Student
{
        private String name;
        private int age;
        Student ()
        {
                this("haha");
        }
        Student (String name)
        {
                this.name = name;
        }
        public String getName()
         {
              return name;
         }
        public static void main(String[] args)
        {
        Student  s = new Student ();
        System.out.println(s.getName());
        }
}
是不是这个意思?第二个构造器里的this(); 是不是多余?带着它貌似就转圈出不来了。去了它就通顺了。
回复 使用道具 举报
闪耀.Q 发表于 2014-6-12 17:20
class Student
{
        private String name;

貌似构造函数确定了接收对象就不能用this();了。
回复 使用道具 举报
唐坚 中级黑马 2014-6-12 17:56:30
7#
验证了一下 编译不能通过,显示:: 错误: 递归构造器调用
也就是进入递归调用死循环 。程序出不来了。
去掉 this()或this("haha")中的一个就行了。
回复 使用道具 举报
唐坚 发表于 2014-6-12 17:56
验证了一下 编译不能通过,显示:: 错误: 递归构造器调用
也就是进入递归调用死循环 。程序出不来了。
去掉 ...

恩,我就是想知道两者之间相互调用的过程,谢谢!
回复 使用道具 举报
不能通过,不说private  iont age;这个失误,只说构造函数Student(){}
回复 使用道具 举报
不能通过,不说private  iont age;这个失误,只说构造函数Student(){this("haha")},当实例化对象时,如:Student  stu=new Student(),在执行this("haha")这句话时,会进入一个死循环,this("haha")相当于Student("haha"),然后再执行 Student(String name) {   this();  this.name = name;  },再当执行到this()时又开始执行Student(){this("haha"); },以此往返形成死循环
回复 使用道具 举报
构造函数是不能递归调用的,要不然就是死循环了,构造函数那两哥们就自个隔那玩起来了!
回复 使用道具 举报
焦国军 发表于 2014-6-12 23:11
不能通过,不说private  iont age;这个失误,只说构造函数Student(){this("haha")},当实例化对象时,如 ...

感谢解答:loveliness:
回复 使用道具 举报
不能吧,在你创建对象的时,好像构造函数出现死循环吧,最终导致内存溢出异常。
回复 使用道具 举报
^_^ ,,  学到了。懂得了。
回复 使用道具 举报
lilin202011 来自手机 中级黑马 2014-6-22 00:24:22
15#
不错顶一个
回复 使用道具 举报
Leung 中级黑马 2014-6-24 11:18:05
16#
死循环{:2_30:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马