this 关键字
本课属于 Coddy Java 学习旅程的“面向对象编程”单元。第 4 课,共 87 课。
this 关键字指的是类的当前实例。它用于区分同名的字段和参数。
如果没有 this,参数会遮蔽字段
public class Person {
private String name;
public Person(String name) {
name = name; // 把参数赋值给了它自己!
}
}使用 this 正确赋值
public class Person {
private String name;
public Person(String name) {
this.name = name; // 将参数赋值给字段
}
public String getName() {
return this.name;
}
}在方法中使用 this
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getDescription() {
return this.name + " is " + this.age + " years old";
}
}this 关键字始终指向当前对象。当参数名与字段名相同时,它至关重要,可以避免混淆和 bug。
挑战
中等使用 this 关键字区分字段和参数,完成 Person 类:
- 编写一个构造函数,使用
this将参数赋值给字段 - 编写 Getter 方法,使用
this访问字段 - 编写一个
getDescription()方法,返回"<name>, age <age>, from <city>"
亲手试试
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
int age = Integer.parseInt(scanner.nextLine());
String city = scanner.nextLine();
Person person = new Person(name, age, city);
System.out.println("Name: " + person.getName());
System.out.println("Age: " + person.getAge());
System.out.println("City: " + person.getCity());
System.out.println(person.getDescription());
}
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
面向对象编程中的所有课
自己练习: Java 在线编译器