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

java 的this有哪些用途

发布网友 发布时间:2022-05-02 17:15

我来回答

3个回答

热心网友 时间:2022-06-21 00:39

Java关键字this只能用于方法方法体内。当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是 this。因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this,这在“Java关键字static、final 使用总结”一文中给出了明确解释。并且this只和特定的对象关联,而不和类关联,同一个类的不同对象有不同的this。

/**
*@authorfeng-neusoft
*
*本示例为了说明this的三种用法!
*/
package test;
publicclass ThisTest {
privateinti=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++;
returnthis;//返回的是当前的对象,该对象属于(ThisTest)
}
publicstaticvoid 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方法中使用!

热心网友 时间:2022-06-21 00:39

指代啊,在一个类里面,this就是指自己这个类,this.方法,就是该类的方法,super就是父类,

热心网友 时间:2022-06-21 00:40

你可以把this看成new这个类new出来的东西,简单地用this来代替,
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
国央企会有人查贪污嘛 小米薏米红豆莲子芡食白扁豆可以一起吃吗 ...薏米 山楂 芡实 莲子 红豆 白扁豆 山药 一起熬粥服用有什么作用_百 ... 熬八宝粥要放的材料 熬八宝粥要放什么 梦幻西游语音传音怎么用梦幻西游手游怎么开语音权 为什么我每次在听音乐的时候,总是感觉只有右耳有声音而左耳么有呢? ...为什么左耳听觉没有右耳听觉要好一点呢,右耳听觉是清新,左耳听觉是... ...有时候有点耳鸣。尤其是戴耳机的时候最明显。感觉里面有东西一样_百... ...用耳机听音乐时,左耳单个听很清晰,右耳单个听声音小且有杂音。_百度... 冬季适合BB霜还是CC霜呢!我是混合肌肤偏干!24岁!请网友们给推荐一款性... java中的this 类使用它有什么作用,举例看下呀 java里的“this”到底是什么意思 初进大学,你最强烈的感受什么? 秦镇米皮第一味在哪 Java类中this();作用是什么,只在构造方法中出现吗? java 中this什么作用 小白提问 JAVA中this有什么作用? 安装centos卡住了,如图 centos7系统在启动时,界面就卡死在这个界面 centos7卡在启动界面 vmware 安装centos7完成后,配置时区和用户、密码后卡在以下界面。 我在官网下了一个CentOS732位的安装时老在这卡住进不去图形界面求大神们解答好的我追加悬赏 办公桌上养的仙人掌最近长出了好多分支(如图),这些分支需要剪掉么?这样的仙人掌应该怎么养呢 养在办公室的仙人掌多久浇水? 手机NBA2K21没有王朝模式吗- 问一问 怎样在办公桌前养好我的仙人球 办公桌上的仙人掌需不需要浇水?稍微浇水会不会好一点? 养仙人掌,要多久浇一次水,是放在办公室桌上面的 工资表中津贴或绩效减少额是什么意思? 电脑桌上的仙人掌怎么养好? 你对于大学第一天有什么感受? java里面的this有什么作用? 上海正宗陕西小吃 刚刚进入大学的时候你是什么心情? Java中,关键字this是什么作用? redis源码好在哪里之命令处理 进入大学后有什么感受 在JAVA中new 和this的作用,用法,在什么情况下使用? Java中的this关键字请举个具体的例子来说明用它的好处? java中的this到底怎么用,清楚就行,它是代表,应用类的数据成员,怎么又说代表当前对象? 青岛有多少个早市,具体位置在哪里? 请教一下Java里this一什么作用 本人想在沈阳卖衣服,我想知道现在沈阳还有多少早市与夜市的具体位置,请大家帮个忙。 凤城市早市在哪个位置人多吗? 怎么把自己的名字换在QQ头像上? 怎么才能把自己的QQ头像换成自己的名字 QQ名字怎么换成头像加名字 QQ怎样换头像 怎样将自己QQ空间的好友的头像名字改的 crc检验的好处