问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java当中this应该怎么理解?

发布网友 发布时间:2022-04-23 06:27

我来回答

4个回答

热心网友 时间:2023-09-02 22:02

在JAVA程序中似乎经常见到“this”,自己也偶尔用到它,但是到底“this”该怎么用,却心中无数!很多人一提起它,就说“当前对象”,可到底什么是当前对象,是什么当前对象,他自己也不清楚。现在让大家看一个小例子,给你分享一下JAVA中“this”的用法!
本示例为了说明this的三种用法!
public class ThisTest {
private int i=0;
//第一个构造器:有一个int型形参
ThisTest(int i){
this.i=i+1;//此时this表示引用成员变量i,而非函数参数i
System.out.println("Int constructor i——this.i: "+i+"——"+this.i);
System.out.println("i-1:"+(i-1)+"this.i+1:"+(this.i+1));
//从两个输出结果充分证明了i和this.i是不一样的!
}
// 第二个构造器:有一个String型形参
ThisTest(String s){
System.out.println("String constructor: "+s);
}
// 第三个构造器:有一个int型形参和一个String型形参
ThisTest(int i,String s){
this(s);//this调用第二个构造器
//this(i);
/*此处不能用,因为其他任何方法都不能调用构造器,只有构造方法能调用他。
但是必须注意:就算是构造方法调用构造器,也必须为于其第一行,构造方法也只能调
用一个且仅一次构造器!*/
this.i=i++;//this以引用该类的成员变量
System.out.println("Int constructor: "+i+"\n"+"String constructor: "+s);
}
public ThisTest increment(){
this.i++;
return this;//返回的是当前的对象,该对象属于(ThisTest)
}
public static void main(String[] args){
ThisTest tt0=new ThisTest(10);
ThisTest tt1=new ThisTest("ok");
ThisTest tt2=new ThisTest(20,"ok again!");
System.out.println(tt0.increment().increment().increment().i);
//tt0.increment()返回一个在tt0基础上i++的ThisTest对象,
//接着又返回在上面返回的对象基础上i++的ThisTest对象!
}
}

运行结果:
Int constructor i——this.i: 10——11
String constructor: ok
String constructor: ok again!
Int constructor: 21
String constructor: ok again!
14
细节问题注释已经写的比较清楚了,这里不在赘述,只是总结一下,其实this主要要三种用法:
1、表示对当前对象的引用!
2、表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名是进行区分!其实这是第一种用法的特例,比较常用,所以那出来强调一下。

3、用于在构造方法中引用满足指定参数类型的构造器(其实也就是构造方法)。但是这里必须非常注意:只能引用一个构造方法且必须位于开始!
还有就是注意:this不能用在static方法中!所以甚至有人给static方法的定义就是:没有this的方法!虽然夸张,但是却充分说明this不能在static方法中使用!

热心网友 时间:2023-09-02 22:02

指自己所在的对象。
比如在一个方法中,调用其他对象的变量或方法时,可以使用那个对象的对象名,比如aa.abc();
而调用自己所在对象的方法或变量时,不知道别人给起了什么名,所以直接用this.abc()就可以了

热心网友 时间:2023-09-02 22:03

this表示当前类的对象

在一个类里,你不需要new他的实例就直接可以用this调用它的方法和属性

热心网友 时间:2023-09-02 22:03

可以理解为当前对象吧,比如当前类,方法,变量等
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
甄嬛传之鸾凤还巢 与甄嬛传是一样的吗 周季风齐王纳谏的中心思想 求《邹忌讽齐王纳柬》的中心思想? 华为录音快捷键在哪里设置? 华为快捷录音怎样设置 为什么要大张旗鼓的放弃一个人? 11年的捷达喷油嘴打马达一直喷油是怎么回事 平板电脑适用的win10win10平板电脑用哪个版本好 [小区禁止饲养家禽的条例]禁止饲养家禽家畜规定 我说女朋友不爱我心里没有我她生气不理人怎么办? 离职已结婚为理由怎么写申请书 java this什么意思? 要结婚辞职报告怎么写 java中this的作用及用法是什么? 要回家结婚辞职报告怎么写 辞职申请报告我要回家结婚怎么写 如何才能长高?(我是个13岁的男孩儿) java中this是干什么的,具体的作用是什么。 因为结婚辞职信怎么写 用结婚做理由的离职申请书怎么写 13岁男生怎么样才能长高点? JAVA中的this是什么意思? 要结婚怎么写辞职报告 java中this变量是什么? 结婚离职申请书怎么写 java中“this”的用法是什么? 结婚辞职申请书怎么写 13岁男孩长高方法? java里this是什么意思? 13岁男少年一年长高方法 员工辞职申请书回家结婚的范文怎么写 因为要回家和女朋友结婚了 所以要辞职了 求一封合适的辞职信 结婚辞职申请怎么写 请问要回家结婚辞职申请怎么写 军人结婚规定是什么 离职理由回家结婚怎么写好 刚来没有几个月因为要回家结婚离职申请书1500字 军婚法定结婚年龄 怎么写辞职申请书? 当兵法定结婚年龄是多少 女儿结婚我要回家辞职报告怎么写 个人原因辞职信怎么写? cad怎样在矩形上画凹槽 CAD中画矩形的命令是什么? 在CAD中,我想画规定尺寸的矩形怎么画? CAD的怎么画矩形呢? CAD绘图的时候,怎么在指定位置绘制矩形? 小baby的八字分析,取名应注意什么? 耳鸣有两种声音是咋回事 请高人为我儿起名,在线等,谢谢!