1this关键字用于区分局部变量和成员变量同名情况。

this代表它所在函数所属对象的引用,简单地说,哪个对象在调用this所在的函数,this就代表哪个对象。

This关键字的应用:
当定义类中功能(方法)时,并且该函数内部要用到调用该函数的对象,这时用this来表示这个对象。通俗的说就是,只要本类功能内部使用了本类对象,就用this关键字进行区分。
例:
public class ThisDemo {public static void main(String[] args) {Person p1 = new Person("zhangsan", 30);Person p2 = new Person("lishi", 36);boolean b = p1.Compare(p2);if (b)System.out.println(p1.name + "和" + p2.name + "年龄相等");elseSystem.out.println(p1.name + "和" + p2.name + "年龄不相等");}
}class Person {String name;int age;Person(String name, int age) {this.name = name;this.age = age;}public boolean Compare(Person p) {return this.age == p.age;}}
测试输出:

zhangsan和lishi年龄不相等
2、this语句用于构造函数之间进行互相调用。在构造函数中,通过this可以调用同一类中别的构造函数。注意事项:1:在构造调用另一个构造函数,调用动作必须置于最起始的位置。2:不能在构造函数以外的任何函数内调用构造函数。3:在一个构造函数内只能调用一个构造函数。

class Person1 {String name; // 定义成员变量int age;Person1() // 构造方法{System.out.println("this()语句被执行"); // 判断this()语句是否执行}Person1(String name) // 构造方法{this(); // this语句只能放在构造函数的第一行this.name = name;System.out.println("在创建对象时this(name)语句被执行," + "这里的this是" + this.name+ "所属的对象");// 判断this(name)语句是否执行}Person1(String name, int age) // 构造方法{this(name); // this语句只能放在构造函数的第一行,调用构造函数this.name = name;this.age = age; // 此处this为关键字,表示调用该函数的对象,用于区分成员变量和局部变量System.out.println("我叫" + this.name + "我的年龄是" + this.age);System.out.println();}}class ThisDemo2 {public static void main(String[] args) // 主函数{Person1 p = new Person1("zhangsan", 30); // 创建对象Person1 p1 = new Person1("lisi", 36);}
}

测试输出:this()语句被执行在创建对象时this(name)语句被执行,这里的this是zhangsan所属的对象我叫zhangsan我的年龄是30

this()语句被执行在创建对象时this(name)语句被执行,这里的this是lisi所属的对象我叫lisi我的年龄是36

java中this关键字相关推荐

  1. 【Java_基础】Java中Native关键字的作用

    本篇博文转载与:Java中Native关键字的作用 转载于:https://www.cnblogs.com/leiblog/p/10529056.html

  2. java中final关键字的使用

    final 中文翻译为 最终的,在java中也是较为常用的关键字之一. 在java 中 final 关键字可以修饰  类.方法.变量 final 修饰在类上,则表示该类不能被继承,如果里面的成员变量没 ...

  3. java中的关键字static

    原文链接: https://zhuanlan.zhihu.com/p/70110497 昨晚面试中被问到,没能回答出来.这篇答疑文章写得非常好,无一字可增删,遂直接复制. 在平时开发当中,我们经常会遇 ...

  4. java 死锁 内存消耗_详解Java中synchronized关键字的死锁和内存占用问题

    先看一段synchronized 的详解: synchronized 是 java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 一.当两个并 ...

  5. java transient_【转】Java中的关键字 transient

    阅读目录 先解释下Java中的对象序列化 在讨论transient之前,有必要先搞清楚Java中序列化的含义: Java中对象的序列化指的是将对象转换成以字节序列的形式来表示,这些字节序列包含了对象的 ...

  6. java中的关键字:this与super 大详解

    文章目录 1.this 1.1. this是什么? 1.2 this调用对象中的属性.构造器和方法 2.super 2.1 super是什么? 2.2 super调用父类的属性.构造器.方法 3. t ...

  7. 4.Java中的关键字和标识符

    关键字 1.被Java语言赋予特定含义的单词即为关键字,组成规则:字母全部都是小写   2. 保留字:即它们在Java现有版本中没有特殊含义,以后版本可能会作为有特殊含义的词,如 goto,  con ...

  8. 3.Java中的关键字和注释

    1.Java中的注释 注释: (1)提高程序的阅读性 (2) 调试程序 分类:   (1) 单行注释 :     //注释的文字 (2)多行注释:     /*注释的文字*/ (3)文档注释:   / ...

  9. 在java中使用关键字导入包_java中import关键字的使用方法

    java中import关键字的使用方法 发布时间:2020-06-26 15:05:44 来源:亿速云 阅读:96 作者:Leah 这篇文章将为大家详细讲解有关java中import关键字的使用方法, ...

  10. java关键字 valotile_Java内存模型-jsr133规范介绍,java中volatile关键字的含义

    最近在看<深入理解Java虚拟机:JVM高级特性与最佳实践>讲到了线程相关的细节知识,里面讲述了关于java内存模型,也就是jsr 133定义的规范. 系统的看了jsr 133规范的前面几 ...

最新文章

  1. js的object的key需要引号吗,JavaScript中对象是否需要加引号?
  2. js 数组、对象转json 以及json转 数组、对象
  3. Hive JOIN使用详解
  4. 在java中实现日期类型和字符串类型的转换大全(Date String Timestamp Datetime)
  5. 软件测试项目时间一般多少钱,项目的时间进度该如何估算?
  6. VS恢复调试时出现的确认对话框
  7. (27)XILINX FPGA bit文件转换成MCS文件(FPGA不积跬步101)
  8. 手机modem开发(4)---高通QXDM抓modem log
  9. 论文笔记--跨媒体语义共享子空间学习理论与方法研究-2015
  10. 苹果 Mac 上不显示外置硬盘?9 个必须尝试的修复方法
  11. 九、Oracle学习笔记:聚合函数
  12. mybatis中的mapper代理模式的数据传参的应用
  13. python ui自动化_python-UI自动化
  14. itextpdf paragraph使用
  15. 什么是电影衍生品,电影衍生品是用来干嘛的?
  16. 是否应该选择虚拟主机?
  17. Kubernetes上基于longhorn和statefulsets的pv空间扩展
  18. 小程序标准版交易组件开启
  19. k8s重启节点状态NotReady
  20. 2023年全国最新工会考试精选真题及答案37

热门文章

  1. 迪士尼收购福克斯,传媒巨头江山瓦解?
  2. SQL 模糊表名查询
  3. 正则表达式,以python为例
  4. [转]NVIDIA/ATI显卡后缀命名大盘点
  5. 资料下载地址和我加入的论坛
  6. 使用OpenSSL转换X509 PEM与PFX证书
  7. 给大家推荐一个查变量名的网站
  8. c#设计模式之简单工厂
  9. Virtualbox安装Ubuntu
  10. 布局优化之ViewStub、Include、merge使用分析