博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
理解this引用
阅读量:4544 次
发布时间:2019-06-08

本文共 847 字,大约阅读时间需要 2 分钟。

每个对象可以使用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应用作为参数给一个方法,通过这种方式,一个对象可以将它本身的引用传给其它对象。

转载于:https://www.cnblogs.com/zdf-2315033625/p/10975711.html

你可能感兴趣的文章
索引之详解一
查看>>
Android Jetpack组件
查看>>
使用.NET Core 2.1的Azure WebJobs
查看>>
JS生成GUID
查看>>
异步测试
查看>>
Educational Codeforces Round 53 (Rated for Div. 2) C. Vasya and Robot 【二分 + 尺取】
查看>>
Bootstrap进度条
查看>>
[BZOJ1096][ZJOI2007]仓库建设(斜率优化DP)
查看>>
Vue 2.0 生命周期-钩子函数理解
查看>>
Spoj NSUBSTR - Substrings
查看>>
CodeForces - 1009E Intercity Travelling
查看>>
【JMeter】JMeter在linux下运行
查看>>
Mac显示器不亮
查看>>
luogu P2312 解方程
查看>>
Cordova开发速记
查看>>
Chrome开发工具
查看>>
MySQL 的 RowNum 实现
查看>>
网络工程师应该掌握的44个路由器问题
查看>>
windows 控制台下运行cl命令
查看>>
(七十八)使用第三方框架INTULocationManager实现定位
查看>>