Java this super 理解及应用示例
时间: 2023-08-14 21:07:28 浏览: 109
Java 中的 this 和 super 都是关键字,它们用于访问对象的成员变量和方法,但具体的用法和作用有所不同。
1. this
this 关键字用于引用当前对象,通常可以用来访问对象的成员变量和方法。在一个类中,可以使用 this 关键字来区分局部变量和成员变量,或者在一个构造器中调用同一个类的另一个构造器。下面是一个示例:
```java
public class Person {
String name;
int age;
public Person(String name, int age) {
this.name = name; // 使用 this 关键字访问成员变量
this.age = age;
}
public void sayHello() {
System.out.println("Hello, my name is " + this.name + ", and I am " + this.age + " years old."); // 使用 this 关键字访问成员变量
}
public static void main(String[] args) {
Person person = new Person("Tom", 20);
person.sayHello();
}
}
```
在上面的代码中,我们使用了关键字 this 来引用当前对象,以便于访问对象的成员变量和方法。在构造器中,我们使用 this 关键字来引用成员变量,以避免和局部变量重名。在 sayHello 方法中,我们同样使用 this 关键字来引用成员变量,以提高代码的可读性。
2. super
super 关键字用于引用父类对象,通常可以用来访问父类的成员变量和方法。在一个子类中,可以使用 super 关键字来调用父类的构造器或者访问父类的成员变量和方法。下面是一个示例:
```java
public class Animal {
String name;
public Animal(String name) {
this.name = name;
}
public void eat() {
System.out.println(name + " is eating.");
}
}
public class Dog extends Animal {
public Dog(String name) {
super(name); // 调用父类的构造器
}
public void bark() {
System.out.println(name + " is barking.");
}
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog("Tom");
dog.eat(); // 调用父类的方法
dog.bark();
}
}
```
在上面的代码中,我们使用了关键字 super 来引用父类对象,以访问父类的成员变量和方法。在 Dog 类的构造器中,我们使用 super 关键字来调用父类的构造器,以初始化父类的成员变量。在 main 方法中,我们创建了一个 Dog 对象,并调用了它的 eat 和 bark 方法。
需要注意的是,super 关键字只能用于访问父类的成员变量和方法,而不能用于访问子类的成员变量和方法。同时,在构造器中使用 super 关键字调用父类的构造器,必须是构造器中的第一行语句。
阅读全文