public class ThisTest2 {public static void main(String[] args) {// 测试this表示当前对象的引用SelfObject aaa = new SelfObject();aaa.test();}
}

/**

* 一、使用this引用成员变量

* 在一个类的方法或构造方法内部,可以使用"this.成员变量名"来引用成员变量

* 有时可以省略,有时不能省略

*/

class MemberVariable {private int a;public MemberVariable(int a) {this.a = a;}public int getA() {return a;}public void setA(int a) {this.a = a;}
}

注解:

在该段代码的 构造方法 和 setA方法 的内部,都是用this.a引用类的成员变量a

因为无论在 构造方法 还是 setA方法 内部,都包含2个变量名为a的变量,一个是参数a,另外一个是成员变量a。

按照Java语言的变量作用域,参数a的作用范围在构造方法或方法的内部,成员变量a的作用范围是整个类的内部

这样在构造方法和setA方法内部就存在了变量a的冲突

Java语言规定当变量作用范围重叠时,作用域小的变量覆盖作用域大的变量.所以在构造方法和setA方法内部,参数a起作用

这样需要访问成员变量a则必须使用this进行引用.当然,如果变量名不发生重叠,则this可以省略

但是为了增强代码的可读性,一般将参数的名称和成员变量的名称保持一致,所以this的使用频率在规范的代码内部应该很多

/**

* 二、使用this关键字引用构造方法

*/

class Constructor {int a ;public Constructor() {this(0);}public Constructor(int a) {this.a = a;}}

注解:

在无参构造方法内部,使用this调用了另一个有参构造方法,其中0是根据需要传递的参数的值

当一个类内部的构造方法比较多时,可以只书写一个构造方法的内部功能代码

然后其他的构造方法都通过调用该构造方法来实现

这样既保证了所有的构造方法是统一的,也降低了代码的重复

注意: 在构造方法内部使用this关键字调用其他构造方法时,必须写在第一行,只能调用一个且仅一次构造方法

/**

* 三、使用this代表自身对象(默认)

*/

class SelfObject {// SelfObject object;public SelfObject() {//object = this;}public void test() {System.out.println(this);}}

注解:

创建一个引用对象object 在构造方法内部,将对象this的值赋给object

在test方法内部,输出对象this的内容,这里的this都代表自身类型的对象

/**

* 四、引用成员方法

* 在一个类的内部,成员方法之间的互相调用时也可以使用“this.方法名(参数)”来进行引用

* 只是所有这样的引用中this都可以省略,可有可无

*/

结论:

1.表示引用类的成员变量 而非函数

  注意: 函数参数和成员变量同名进行区分

  2.在构造方法中引用其他构造器(也就是构造方法)

  注意: 只能引用一个构造方法,且在第一行

  3.表示对当前对象的引用 this关键字代表自身类的对象

  4.引用成员方法

  注意: this不能用在static方法中

this的三种用法 详解相关推荐

  1. C++ using的三种用法详解

    文章目录 1. using声明(引入单个名称) 2. using指示(引入命名空间) 3. 类型重定义(替代typedef) 1. using声明(引入单个名称)  using声明是将命名空间中某个名 ...

  2. mysql 删除数据表中数据_Mysql-删除数据表-三种方式详解

    Mysql 删除数据表的三种方式详解 用法: 1.当你不再需要该表时, 用 drop; 2.当你仍要保留该表,但要删除所有记录时, 用 truncate; 3.当你要删除部分记录或者有可能会后悔的话, ...

  3. python 命令-python解析命令行参数的三种方法详解

    这篇文章主要介绍了python解析命令行参数的三种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 python解析命令行参数主要有三种方法: ...

  4. Maven精选系列--三种仓库详解

    转载自 Maven精选系列--三种仓库详解 仓库分类 1.本地仓库 本地仓库就是开发者本地已经下载下来的或者自己打包所有jar包的依赖仓库,本地仓库路径配置在maven对应的conf/settings ...

  5. 全站仪与计算机之间的数据传输,必看!全站仪数据传输的三种方式详解,都安排得明明白白(上)...

    原标题:必看!全站仪数据传输的三种方式详解,都安排得明明白白(上) 科力达全站仪数据传输 一般而言,全站仪的数据传输方式有三种,分别是通过串口.USB.SD卡三种方式,因为电脑配置等因素的不同,一些数 ...

  6. 查看登陆系统用户的信息的三种方法详解

    查看登陆系统用户的信息的三种方法详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.who这个命令显示可以谁在登陆,但是这个有很多的花式玩法,这个命令超简单 语法:who [O ...

  7. 网页中的三种地址详解

    网页中的a标签具有地址跳转的功能,href属性指向跳转的地址. 一.三种地址模式 网络地址分为两种,一种是绝对地址,一种是相对地址. 但是相对地址又可以细分为两种,一种是基于当前目录的相对地址,一种是 ...

  8. C语言求最大公约数三种方法详解

    C语言求最大公约数三种方法详解 题目要求 常用写法(穷举法) 辗转相减法 辗转相除法 main函数 整体代码 题目要求 运行最大公约数的常用算法,并进行程序的调式与测试. 常用写法(穷举法) 从两个数 ...

  9. C++基础:new的三种形式详解

    new的三种形式详解: 1.new operator         : new操作符  <=====>  ( operator new 开辟空间 ) + (调动构造函数 ) 2.oper ...

  10. 新浪微博怎么推广引流,微博推广引流的三种方法详解

    新浪微博怎么推广引流,微博推广引流的三种方法详解,#推广#营销 微博营销有哪些特点?#百收网SEO@千行助推 大家好,上一次内容讲了生意人如何将客户引流到自己的微信上去,受到很多朋友的喜爱,那么这一期 ...

最新文章

  1. 中文版GPT-3来了?智源、清华发布清源 CPM——以中文为核心的大规模预训练模型
  2. 删除条目时的确认对话框
  3. IDEA是否会嫌导jar包麻烦吗???赶快来学习maven吧,冲冲冲
  4. json C库源码地址
  5. 教你如何创建一款属于自己的VSCode主题
  6. HDU4859 海岸线(最小割)
  7. java文件流操作注意
  8. 轨迹分析_肌力测试 心理测评 轨迹分析 科技助力体能训练 让备战更高效
  9. 我有一箱01年的茅台酒现在值多少钱
  10. CEF JS实现获取剪贴板图片的DataURL
  11. 批处理,扫描当前目录下的文件,传到指定文本中
  12. java ee 设计模式_Java EE 设计模式解析与应用_源雷技术空间
  13. windows自带黑体_win7系统黑体字体
  14. 返利系统功能详细介绍
  15. plg.Polygon
  16. 运算符(一元 二元)
  17. Redis全部知识总结(概念、安装、用法、数据类型、事务、持久化、Jeids、订阅系统、缓存穿透及雪崩等)
  18. Idea Lambda expressions are not supported at language level '5' 解决
  19. shineblink APDS-9960靠近感应及环境光强度测量
  20. Html中的边框弧边,CSS边框属性一---border-radius

热门文章

  1. 用计算机语言写结婚祝福语,[结婚电子显示屏祝福语]电子显示屏结婚贺词
  2. Ngnix 搭建视频直播服务器
  3. 02 ElasticSearch笔记
  4. node.js中express框架的使用
  5. 计算存储和网络是推动云计算发展的三驾马车
  6. 谷歌中国六月过三关 研发团队已失七将
  7. 反相器有时候为了强调低电平有效,将反相器的图形符号中的小圆圈画在输入端,如数电中的画法。有时候小圆圈在前面只表示低电平有效,没有反相的意思,例如与非门组成的RS触发器
  8. 众手游公司崛起:腾讯“主营收入”面临危机!
  9. oss批量上传工具_阿里云oss一键上传工具-阿里云OSS上传工具PC版下载V1.0最新版-西西软件下载...
  10. 常用的四大绩效考核方法以及优缺点