介绍
this 关键字是 Java 常用的关键字,可用于成员方法中,表示 当前对象
关于 “我” 的理解
李雷说:“我叫李雷”,此处的 我 表示李雷
韩梅梅说:“我考了90分”,此处的 我 表示韩梅梅
每个人说的 我,我 表示说话人自己
关于 this 的理解
this 相当于 我,表示当前对象
每个对象都有 this,this 表示的是当前这个对象
注意
不能在 静态方法 中使用
应用场景
当方法中 局部变量 和 成员变量 同名,在不改 变量名 的情况下,访问这个被覆盖的成员变量,必须使用
this构造方法、成员方法中给 成员变量 赋值、访问 成员变量
构造方法中使用 this
在构造方法中,给 成员变量 赋值、访问成员变量
有一个类 Student 的定义如下:
class Student {
private name = ""; // 名称
private age = 0; // 年龄
}
在上述代码中 name 和 age 的作用域是 private,因此在 类外部 无法 对它们的值进行设置。
为了解决这个问题,可以为 Student 类添加一个构造方法,然后在构造方法中传递参数进行修改。代码如下:
// 创建构造方法,为上面的3个属性赋初始值
Constructor(name:string,age:number) {
this.name = name; // 设置名称
this.age = age; // 设置年龄
}
在 Student 类的构造方法中使用了 this 关键字对属性 name 和 age 赋值,this 表示 当前对象。
语句 this.name = name ,等号左边的 this.name 是指 当前对象 的 成员变量 name,等号右边的 name 表示参数传递过来的数值。
对 Student 类进行测试,代码如下:
let lilei = new Student("李雷",20);
System.out.println("名称:"+lilei.name+"年龄:"+lilei.age);
运行该程序,输出的结果如下所示:
名称:李雷
年龄:20
this.方法名
在成员方法中,给成员变量赋值、访问成员变量
同上面的构造方法
一个成员方法,访问另一个成员方法
假设定义了一个 Dog 类,这个 Dog 对象的 run( ) 方法需要调用它的 jump( ) 方法,Dog 类的代码如下所示:
class Dog {
// 定义一个jump()方法
public jump() {
console.log("正在执行jump方法");
}
// 定义一个run()方法,run()方法需要借助jump()方法
public run() {
this.jump(); // 这里的this不可以省略
System.out.println("正在执行 run 方法");
}
}