this 和 super 是 Java 中两个重要的关键字,用于引用类的当前对象和父类对象。
1.this 关键字
- this 引用当前对象的实例。在类的方法中,可以使用 this 来引用当前对象。
- 通过 this 访问类中的成员变量和成员方法。例如 this.count 访问变量,this.print() 调用方法。
- 在构造方法中使用 this 调用其他构造方法。
- this 不能在类的静态方法中使用。
在成员方法中使用this:
public class Person {
String name;
public Person(String name) {
this.name = name;
}public void printName() {
System.out.println(this.name);
}
}
通过this访问成员变量name和成员方法printName()。
构造方法中使用this调用其他构造方法:
public class Person {
String name;
int age;public Person(String name) {
this(name, 0);
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
this调用同一个类的其他构造方法。
2.super 关键字
- super 引用父类对象。在子类中可以使用 super 来引用父类。
- 通过 super 访问父类中的成员变量和成员方法。例如 super.count 访问变量,super.print() 调用方法。
- 在子类构造方法中使用 super() 调用父类构造方法。
- super 必须在子类方法和构造方法中使用,不能在静态方法中使用。
子类构造方法中使用super调用父类构造方法:
public class Student extends Person {
String school;
public Student(String name, String school) {
super(name);
this.school = school;
}
}
super调用父类Person的构造方法。
子类中使用super访问父类成员:
public class Student extends Person {
public void print() {
super.printName(); //调用父类方法
System.out.println(super.name); //访问父类变量
}}
super访问父类Person的成员。