this是一个对象,它代表调用这个函数的对象。
面向对象的语法,都要按照 类名.变量(函数) 的格式,即每个变量或函数都必须属于某一个实际的对象而不是一个类(static除外)。
1. this访问类的成员变量,解决与局部变量名称冲突的问题:
class Person {
int age;
public Person(int age) {
this.age = age;
}
public int getAge() {
return this.age;
}
}
2. this调用成员方法:
class Person {
public void openMouth() {
...
}
public void speak() {
this.openMouth();
}
}
此时的this可以省略。
3. 构造方法是在实例化对象时被jvm自动调用的,在程序中不能像调用其他方法那样去掉用构造方法,但可以在一个构造方法中使用this([参数1,参数2,...])的形式来调用其他构造方法:
class Person {
public Person() {
System.out.print("无参构造方法被调用");
}
public Person(String name) {
this();
System.out.print("有参构造方法被调用");
}
public static void main(String args[]) {
Person person = new Person("小张");
}
}
//输出无参和有参调用了
注意:
1)只能在构造方法中使用this调用其他构造方法,而不能在其他函数中使用。
2)在构造方法中,使用this调用其他其他构造方法必须在第一行,且只能出现一次。
3)不能两个构造方法(一个类里)用this互调。