首先我们看一个这样的Book类:
public class Book {
private String name; //定义一个String型的成员变量
public String getName() {
int id = 0;
setName("Java");
return id + this.name; //设置方法返回值
}
private void setName(String name) {
this.name = name; //将参数赋予类中的成员方法
}
public Book getBook() {
return this; //返回Book类的引用
}
}
在这个类中,我们定义了setName(),并将方法的参数值赋予类中的成员变量。
private void setName(String name) { //定义一个setName()方法
this.name = name; //将参数赋予类中的成员方法
}
我们可以看到,成员变量与setName()方法中的形式参数的名称相同,都是name,那么要如何在类中区分使用的是哪一种变量呢?
在Java语言中规定使用this关键字来代表本类对象的引用,this关键字被隐式地用于 引用对象的成员变量和方法,如在上述代码中,this.name值得就是Book中的name成员变量,而第二个name指的是形参name。***实质上setName()方法实现的功能就是将形参name的值赋予成员变量name。 ***
所以说,this可以调用成员方法和成员变量,但是Java中最长用的调用方式还是对象对成员方法和成员变量的调用。那么this关键字与对象之间有什么样的联系呢?
事实上,this引用的就是本类的一个对象。在局部变量或者方法覆盖了成员变量时,就需要那添加this关键字明确引用的是类方法还是局部变量或者方法参数。
另外,this除了可以调用成员变量或者成员方法之外,还可以作为方法的返回值。
public Book getBook() {
return this; //返回Book类的引用
}
在方法体中使用return this这种形式将Book的对象进行返回。