this关键字
- 作用二:方便构造方法之间相互调用
- this()使用的时候必须是位于方法中有效代码的第一行才行(说白了就是必须在第一行)。
下面是一个学生类,大家先看一下普通方法的调用
public class Student {
// 普通方法aa
public void aa(){
bb();//在同一个类里面,普通方法之间可以通过 方法名()直接相互调用
System.out.println("我是方法aa");
}
// 普通方法bb
public void bb(){
aa();
System.out.println("我是方法bb");
}
}
可以清楚的看到,普通方法在同一个类中,可以通过 方法名()直接相互调用。
但是构造方法不行。必须用this(),用this()来调用构造方法,通过不同参数调用不同的构造方法
public class Student {
// 下面的name sex age是三个成员变量(也叫做全局变量)
String name ="丽丽";
String sex="男";
// 这是无参构造方法1,构造方法之间不能像普通方法那样直接调用
public Student(){
// 这里调用的是参构造方法2
this("老刘","男");//用this()来调用构造方法,通过不同参数调用不同的构造方法
System.out.println("我是构造方法1");
}
// 这是有参构造方法2
public Student(String name,String sex){
this.name=name;
this.sex=sex;
System.out.println(this.name+"我是构造方法2");
}
}
在测试类中运行构造方法1和结果:
public class Text01 {
public static void main(String[] args) {
// 创建对象的同时调用了无参的构造方法1,进行初始化赋值
Student stu1=new Student();
}
}
可以看到结果是:构造方法1中,先按顺序调用了构造方法2,再执行的构造方法1的输出
老刘我是构造方法2
我是构造方法1