- /*
- this语句 :用于构造函数之间进行互相调用。
- this语句只能定义在构造函数的第一行。因为初始化要先执行。
- */
- class Person
- {
- private String name;
- private int age;
- {
- System.out.println("code run");
- }
- Person()
- {
- System.out.println("person run");
- }
- Person(String name)
- {
- this();//这里的this()调用的是上面的构造函数Person()
- this.name =name;
- }
- Person(String name,int age)
- {
- this(name);//这里的this(name)调用的是上面的构造函数Person(String name)
- this.name = name;
- this.age = age;
- }
- }
- class PersonDemo4
- {
- public static void main(String[] args)
- {
- new Person();
- //Person p = new Person("lisi",30);
- //Person p1 = new Person("lisi2",36);
- }
- }
复制代码 帮你把代码整理了下,注释中写明了this在构造函数中的调用过程。
如果this不是在构造函数的第一行,输出结果会出错。- Person(String name,int age)
- {
- this.name = name;
- this.age = age;
- this("haha");
- }
复制代码 像上面的代码,无论你输入的name是什么,输出的name都是haha。
|