Tres usos de esta palabra clave:
1. Acceder a una variable miembro a través de la palabra clave this puede resolver el problema de los conflictos de nombres de variables locales.
Ejemplos:
public class Student {
String name;//成员变量name
int age;//成员变量age
long phone;//成员变量phone
String address;//成员变量address
public Student(String name, int age, long phone, String address) {
this.name = name;
this.age = age;
this.phone = phone;
this.address = address;
}
}
Los parámetros nombre, edad, etc. definidos en el método de construcción en el código anterior son variables de miembro, y las variables de miembro como nombre y edad también se definen en la clase. El uso de edad en el método de construcción es para acceder a variables locales. Si se usa this.age, son variables miembro de Access.
2. Invocar métodos de miembros a través de esta palabra clave
Ejemplos:
public class Student {
public void A(){
System.out.println("A方法执行了......");
}
public void B(){
this.A();//调用A()方法
}
}
En el método B (), use this.A () para acceder al método A (). Tenga en cuenta que la palabra clave this aquí puede omitirse y el efecto es el mismo.
public class Student {
public void A(){
System.out.println("A方法执行了......");
}
public void B(){
A();//调用A()方法
}
}
3. Acceda al método de construcción esta
instancia ([parámetro 1, parámetro 2, ...]) en el método de construcción :
public class Student {
String name;//成员变量name
public Student() {
this("张三");
}
public Student(String name) {
this.name = name;//访问有参构造方法
}
public void print(){
System.out.println("姓名:" + name);
}
public static void main(String[] args) {
Student student = new Student();
student.print();
}
}
En el método de construcción sin parámetros, se llama al método de construcción de parámetros y se deben tener en cuenta los siguientes puntos cuando se usa para llamar al método de construcción:
- Solo puede usar this () en el constructor para llamar a otros constructores, no en métodos miembros.
- En el constructor, la declaración que usa this () para llamar al constructor debe estar en la primera línea y solo puede aparecer una vez.
- No puede usar this () para llamarse entre sí en dos constructores en una clase.
public class Student {
String name;//成员变量name
public Student() {
System.out.println("无参构造方法...");
this("张三");//会错误,必须位于第一行
}
public Student(String name) {
this.name = name;//访问有参构造方法
}
}
public class Student {
String name;//成员变量name
public Student() {
this("张三");//错误,不能相互调用
}
public Student(String name) {
this();//错误,不能相互调用
this.name = name;//访问有参构造方法
}
}
¡Vamos! ! !