Java关键字this与super详解用法
this关键字
介绍
在Java中,this是一个关键字,它可以用来引用当前对象。每个对象都有一个隐式的this引用,它指向对象的本身。使用this关键字可以访问当前对象的成员变量、成员方法、构造方法等。
用法
访问成员变量
使用this关键字可以访问当前对象的成员变量。如果成员变量与方法参数的名字相同,就可以使用this关键字来区分。
public class Person {
private String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}
调用构造方法
在一个构造方法中,可以使用this关键字来调用同一类的另一个构造方法。
public class Person {
private String name;
private int age;
public Person() {
this("John", 20);
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
在上面的例子中,第一个构造方法调用了同一类的另一个构造方法,这个构造方法接受两个参数:name和age。第一个构造方法调用的是第二个构造方法,并传递了"John"和20作为参数。
super关键字
介绍
在Java中,super是一个关键字,它可以用来引用父类的成员变量、成员方法、构造方法等。使用super关键字可以访问父类的内容。
用法
访问父类成员变量和成员方法
可以使用super关键字来访问父类的成员变量和成员方法。如果子类和父类中有名字相同的成员变量或成员方法,可以使用super关键字来访问父类的成员变量或成员方法。
public class Student extends Person {
private String school;
public String getSchool() {
return this.school;
}
public String getName() {
return super.getName();
}
}
在上面的例子中,子类Student中有一个成员变量school,没有与父类Person中的成员变量name重名。但是,子类中的getName()方法与父类中的getName()方法重名,因此使用super关键字来访问父类的getName()方法。
调用父类构造方法
可以使用super关键字来调用父类的构造方法。如果子类没有显式的调用父类的构造方法,则编译器会自动调用父类的无参构造方法。如果子类显式的调用了父类的构造方法,则必须放在构造方法的第一行。
public class Student extends Person {
private String school;
public Student(String name, int age, String school) {
super(name, age);
this.school = school;
}
}
在上面的例子中,子类Student中显式的调用了父类Person的带参构造方法,通过super关键字调用。子类中的构造方法可以访问子类本身和父类的成员变量和成员方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java关键字this与super详解用法 - Python技术站