java中this关键字
1、this关键字用于区分局部变量和成员变量同名情况。
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关键字相关推荐
- 【Java_基础】Java中Native关键字的作用
本篇博文转载与:Java中Native关键字的作用 转载于:https://www.cnblogs.com/leiblog/p/10529056.html
- java中final关键字的使用
final 中文翻译为 最终的,在java中也是较为常用的关键字之一. 在java 中 final 关键字可以修饰 类.方法.变量 final 修饰在类上,则表示该类不能被继承,如果里面的成员变量没 ...
- java中的关键字static
原文链接: https://zhuanlan.zhihu.com/p/70110497 昨晚面试中被问到,没能回答出来.这篇答疑文章写得非常好,无一字可增删,遂直接复制. 在平时开发当中,我们经常会遇 ...
- java 死锁 内存消耗_详解Java中synchronized关键字的死锁和内存占用问题
先看一段synchronized 的详解: synchronized 是 java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 一.当两个并 ...
- java transient_【转】Java中的关键字 transient
阅读目录 先解释下Java中的对象序列化 在讨论transient之前,有必要先搞清楚Java中序列化的含义: Java中对象的序列化指的是将对象转换成以字节序列的形式来表示,这些字节序列包含了对象的 ...
- java中的关键字:this与super 大详解
文章目录 1.this 1.1. this是什么? 1.2 this调用对象中的属性.构造器和方法 2.super 2.1 super是什么? 2.2 super调用父类的属性.构造器.方法 3. t ...
- 4.Java中的关键字和标识符
关键字 1.被Java语言赋予特定含义的单词即为关键字,组成规则:字母全部都是小写 2. 保留字:即它们在Java现有版本中没有特殊含义,以后版本可能会作为有特殊含义的词,如 goto, con ...
- 3.Java中的关键字和注释
1.Java中的注释 注释: (1)提高程序的阅读性 (2) 调试程序 分类: (1) 单行注释 : //注释的文字 (2)多行注释: /*注释的文字*/ (3)文档注释: / ...
- 在java中使用关键字导入包_java中import关键字的使用方法
java中import关键字的使用方法 发布时间:2020-06-26 15:05:44 来源:亿速云 阅读:96 作者:Leah 这篇文章将为大家详细讲解有关java中import关键字的使用方法, ...
- java关键字 valotile_Java内存模型-jsr133规范介绍,java中volatile关键字的含义
最近在看<深入理解Java虚拟机:JVM高级特性与最佳实践>讲到了线程相关的细节知识,里面讲述了关于java内存模型,也就是jsr 133定义的规范. 系统的看了jsr 133规范的前面几 ...
最新文章
- js的object的key需要引号吗,JavaScript中对象是否需要加引号?
- js 数组、对象转json 以及json转 数组、对象
- Hive JOIN使用详解
- 在java中实现日期类型和字符串类型的转换大全(Date String Timestamp Datetime)
- 软件测试项目时间一般多少钱,项目的时间进度该如何估算?
- VS恢复调试时出现的确认对话框
- (27)XILINX FPGA bit文件转换成MCS文件(FPGA不积跬步101)
- 手机modem开发(4)---高通QXDM抓modem log
- 论文笔记--跨媒体语义共享子空间学习理论与方法研究-2015
- 苹果 Mac 上不显示外置硬盘?9 个必须尝试的修复方法
- 九、Oracle学习笔记:聚合函数
- mybatis中的mapper代理模式的数据传参的应用
- python ui自动化_python-UI自动化
- itextpdf paragraph使用
- 什么是电影衍生品,电影衍生品是用来干嘛的?
- 是否应该选择虚拟主机?
- Kubernetes上基于longhorn和statefulsets的pv空间扩展
- 小程序标准版交易组件开启
- k8s重启节点状态NotReady
- 2023年全国最新工会考试精选真题及答案37