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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ztw 中级黑马   /  2014-7-26 21:04  /  1209 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 ztw 于 2014-7-27 14:38 编辑

为什么一下代码不能编译呢?
class Person{
        private String name;
        private int age;
        Person(){}
        Person(int age){
                this.age = age;
        }
        Person(String name,int age){
                this.name = name;
                this(age);
                System.out.println("age = "+ age);
        }
}
class Test{
        public static void main(String[] args){
                Person p = new Person("zt",20);
        }
}

6 个回复

倒序浏览
构造方法中,对this和super的调用 必须在第一句
你把this(age); 放在第一句就好了
回复 使用道具 举报
this(参数);this语句用法:1,用于构造函数间相互调用;2,只能放在构造函数的第一行。
回复 使用道具 举报
单线程xia 发表于 2014-7-26 21:28
构造方法中,对this和super的调用 必须在第一句
你把this(age); 放在第一句就好了 ...

喔,谢谢啦,这样子啊,那可以这样用吗?this.Person(age);
回复 使用道具 举报
打酱油。。。。
回复 使用道具 举报
楼上已经说出来了,就是this要在第一句
回复 使用道具 举报
小乖乖灬浩歌 来自手机 中级黑马 2014-7-28 00:13:15
7#
同意楼上的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马