private void setName(String name){ this.name = name; }
上面的代码很简单,java类中普通的set方法。但是其中的this的用法有很少需要注意的地方。
首先指明this在这里代表的是什么?在Java语言中规定使用this来代表本类对象的引用。this关键词被隐式地用于引用对象的变量和方法。
如开头的代码中,this.name指的就是Book类中name的成员变量,而this.name = name 中第二个name则指的是形参name。实际上setName的方法实现的功能就是形参name的值赋值给成员变量name。
除此之外:this还可以作为方法的返回值。
public Book getBook(){ return this; }
这里的this就是对Book类的引用。
还有一点需要说明,既然是对当前类的对象引用。那也就是间接的表明了this不能用于静态方法。因为静态方法属于类本身,不属于类对象。有点像静态方法不能调用非静态的变量和方法是一个道理。