下面的例子展示了this的两个功能:
构造器之间的调用
区分局部变量和属性

public class ThisTest {private String str1;private String str2;public ThisTest() {System.out.println("0");}public ThisTest(String var1) {this();this.str1 = var1;System.out.println("1");}public ThisTest(String var1, String var2) {this(var1);this.str2 = var2;System.out.println("2");}public String getStr1() {return this.str1;}public String getStr2() {return this.str2;}public static void main(String[] args) {ThisTest tt = new ThisTest("cc", "cccc");System.out.println(tt.str1);System.out.println(tt.str2);}}

还有一个作用,是区分当前对象是谁
下面是我在某个JFrame构造器里写过的部分代码:

        JButton button = new JButton("返回");button.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {DoctorFrame.this.dispose();new SignInFrame();}});button.setFont(new Font("黑体", Font.PLAIN, 25));button.setBounds(57, 323, 160, 37);

mouse好像还好,但是普通的actionlistener似乎不适用XXFrame.this.XXXX是不可以的
通过Doctor.this,我们“告诉”编译器我们要当前要执行的是当前的JFrame。

【Java】浅析神奇的this相关推荐

  1. java defunct_神奇的Java僵尸(defunct)进程问题排查过程

    现象描述 大概1个月多以前 在启动脚本中增加了tail -f 用来启动后追踪日志判断是否启动成功 后发现无法执行shutdown.sh(卡住 利用curl) 然后无奈使用kill -9 但通过ps - ...

  2. What?Java这么神奇的lambda表达式

    目录: 1.面向对象的思想和函数式编程思想的概述 2.解决冗余的Runnable代码问题 3.Lambda标准格式及使用 4.对于Lambda表达式例子的解释 1.面向对象的思想和函数式编程思想的概述 ...

  3. JAVA中神奇的双刃剑--Unsafe

    参考资料: 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. Java魔法类:sun.misc.Unsafe 在openjdk8下看Unsafe源码 ...

  4. java回忆录—神奇的进制世界

    进制就是进位制,是人们规定的一种进位方法. 对于任何一种进制-X进制,就表示某一位置上的数运算时是逢X进一位. 二进制就是逢二进一,八进制是逢八进一,十进制是逢十进一,十六进制是逢十六进一. 我们知道 ...

  5. Java浅析电信数据采集

    技术:Java等 摘要: 电信运营系统中,电信计费系统是主要的支撑系统,占有重要地位.对于电信计费系统是电信运营商的核心竞争力之一这一观点愈来愈被业界认同.电信计费系统中的数据蕴含着企业经营态势.客户 ...

  6. java世界神奇“+”的学习

    一.什么是"+"? 顾名思义,"+"作为我们日常的数学计算中最为基本的数学符号,加号是用来表示正数或者加法数学符号数学符号.此符号还因为各种相对其他事物的类似之 ...

  7. java上转型对象特点_Java 浅析三大特性之一继承

    上文Java 浅析三大特性之一封装我们说到Java是一个注重编写类,注重于代码和功能复用的语言.Java实现代码复用的方式有很多,这里介绍一个重要的复用方式--继承. 在介绍继承之前,我们要明确一点, ...

  8. 34篇Java基础总结博客陪博主入门Java

    博客内容: 1.JDK,JRE和JVM三者的关系以及java的运行机制,环境变量,三大版本,特点 2.Java原码.反码.补码 3.Java位运算实例详解--(&).(|).(~).(^).( ...

  9. 初学Java,这三个阶段你经历过吗?

    在互联网时代,Java语言是使用最广泛的服务器端语言之一,随着市场需求的不断扩大,Java人才缺口也越来越大.在如此广阔的前景和市场缺口下,学习Java进入Java行业成为许多人的不二之选. 根据小千 ...

最新文章

  1. Java中数据存储方式
  2. Storm/JStorm之Topology提交过程
  3. DevOps - Spring Boot自动部署到WebLogic
  4. ORA-20000 exec dbms_space 错误
  5. 关于字符串 --java
  6. 微信小程序和百度的语音识别接口详解
  7. python selenium+pywin32 实现网页另存为
  8. cfile read 最大读取限制_Read文件一个字节实际会发生多大的磁盘IO?
  9. 3dmax、python3、Rational Rose、DTLite、commons-math3、VM12、DreamWeaver、SPSS、sqlserver2008、mySQL等软件安装包最全集合
  10. USB Repair v8.1.3.1285 – USB 修复工具
  11. 清除远程桌面的连接记录
  12. 怎样将图片制作转换圆形图片
  13. 宝塔远程连接助手使用方法
  14. tensorflow学习 矩阵乘法和元素乘法
  15. BGP(1):BGP 的基本机制
  16. 【MATLAB库函数系列】resample(重采样函数)的C语言实现【姊妹篇2纯C语言实现】
  17. 17、python数据列之间的简单计算(加减乘除)
  18. 基于物体颜色的目标检测与跟踪
  19. 1 仓储管理系统 仓库端快速上手
  20. 读《MBA的神话幻灭》 后感

热门文章

  1. 2782: [HNOI2006]最短母串
  2. var s=+newDate();的用法,表示对应的时间截
  3. 【C#2.0】发挥匿名委托的威力!
  4. XNA开发思考之3D开发中的小常识
  5. 5月25号GE一面经历
  6. mysql 创建数据库文件_mysql学习之通过文件创建数据库以及添加数据
  7. linux系统终端more,一篇文章让你学透Linux系统中的more命令
  8. 使用SpringMVC模拟文件上传与下载案例
  9. AOP底层原理与注解配置详解
  10. linux怎么修改bash,Linux操作系统中如何对Bash变量内容修改?