理解this引用

每个对象可以使用this关键字引用它本身。如果一个类的方法需要访问该类本身的成员变量或其它方法,就应该使用this引用。

例如,在Employee类中,我们已经看到computePay()方法按照如下方法访问salary成员变量:

public double computePay() {

  return salary/52;

}

要访问一个对象的成员变量或方法就必须有一个对该对象的引用。但是,在computerPay()方法中,我们并没有用一个引用来访问salary,仅仅用了salary变量。这是因为编译器知道computerPay()正在访问salary成员变量,编译器会为我们添加上引用。

那么,编译器到底添加了哪个引用呢?computePay()需要一个引用来指明到底是哪个对象的computePay()方法被调用,这个引用总是this引用。

实际上,computerPay()方法看起来是如下形式的:

public double computePay() {

  return this.salary/52;

}

注意,我们在salary成员变量加上了一个this引用和点运算符作为前缀。如果我们没有显式地添加this引用,那么编译器就会自动为我们添加上。

例如,在Employee类中,mailCheck()方法访问该类中的name和address成员变量,在此情况下,都使用了this引用,不管是我们添加的还是编译器添加的。实际的mailCheck()方法等同于如下的代码:

public void mailCheck() {

  System.out.println("邮寄支票到" + this.name  + "的地址为:\n" + this.address);

}

我们可以将this应用作为参数给一个方法,通过这种方式,一个对象可以将它本身的引用传给其它对象。

猜你喜欢

转载自www.cnblogs.com/zdf-2315033625/p/10975711.html
今日推荐