java当中this应该怎么理解?
来源:互联网 发布:java变量怎么初始化 编辑:程序博客网 时间:2024/06/05 13:29
专业回答
互联网专家 团队 幽冥神者
指自己所在的对象。
比如在一个方法中,调用其他对象的变量或方法时,可以使用那个对象的对象名,比如aa.abc();
而调用自己所在对象的方法或变量时,不知道别人给起了什么名,所以直接用this.abc()就可以了
比如在一个方法中,调用其他对象的变量或方法时,可以使用那个对象的对象名,比如aa.abc();
而调用自己所在对象的方法或变量时,不知道别人给起了什么名,所以直接用this.abc()就可以了
按默认排序 按时间排序
4条回答
2011-07-14 15:12baozi1chi1 最快回答
五级 this表示当前类的对象
在一个类里,你不需要new他的实例就直接可以用this调用它的方法和属性
在一个类里,你不需要new他的实例就直接可以用this调用它的方法和属性
评论 12 1
2011-07-14 15:13020lsfznj
十五级当前类。
晕了,你最好还是看看书吧,这么简单的问题,你都要百度啊,说明你的知识不够系统?还是先把书看上一遍再说了。
晕了,你最好还是看看书吧,这么简单的问题,你都要百度啊,说明你的知识不够系统?还是先把书看上一遍再说了。
评论(5) 3 88
2011-07-14 15:13lwl2046
七级可以理解为当前对象吧,比如当前类,方法,变量等
评论(1) 1 0
2011-07-14 15:13wzjlovemjx
八级在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方法中使用!收起
本示例为了说明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方法中使用!收起
评论(3) 32 2
2012-10-14 14:13062108112
回答的好专业,厉害!回复
2012-10-14 14:12062108112
回答的好专业,厉害!回复
2012-8-13 09:54905549495
你这答案太有用了,大赞呐~回复
专业回答
互联网专家 团队 幽冥神者
指自己所在的对象。
比如在一个方法中,调用其他对象的变量或方法时,可以使用那个对象的对象名,比如aa.abc();
而调用自己所在对象的方法或变量时,不知道别人给起了什么名,所以直接用this.abc()就可以了
比如在一个方法中,调用其他对象的变量或方法时,可以使用那个对象的对象名,比如aa.abc();
而调用自己所在对象的方法或变量时,不知道别人给起了什么名,所以直接用this.abc()就可以了
按默认排序 按时间排序
4条回答
2011-07-14 15:12baozi1chi1 最快回答
五级 this表示当前类的对象
在一个类里,你不需要new他的实例就直接可以用this调用它的方法和属性
在一个类里,你不需要new他的实例就直接可以用this调用它的方法和属性
评论 12 1
2011-07-14 15:13020lsfznj
十五级当前类。
晕了,你最好还是看看书吧,这么简单的问题,你都要百度啊,说明你的知识不够系统?还是先把书看上一遍再说了。
晕了,你最好还是看看书吧,这么简单的问题,你都要百度啊,说明你的知识不够系统?还是先把书看上一遍再说了。
评论(5) 3 88
2011-07-14 15:13lwl2046
七级可以理解为当前对象吧,比如当前类,方法,变量等
评论(1) 1 0
2011-07-14 15:13wzjlovemjx
八级在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方法中使用!收起
本示例为了说明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方法中使用!收起
评论(3) 32 2
2012-10-14 14:13062108112
回答的好专业,厉害!回复
2012-10-14 14:12062108112
回答的好专业,厉害!回复
2012-8-13 09:54905549495
你这答案太有用了,大赞呐~回复
0 0
- java当中this应该怎么理解?
- java应该怎么学?
- JAVA应该怎么学
- java应该怎么学
- this.class.getClassLoader()怎么理解?
- this.class.getClassLoader()怎么理解?
- this.class.getClassLoader()怎么理解?
- this.class.getClassLoader()怎么理解?
- this.class.getClassLoader()怎么理解?
- this.class.getClassLoader()怎么理解?
- this.class.getClassLoader()怎么理解?
- this.class.getClassLoader()怎么理解?
- java this 的理解
- java应该怎么分线程
- 初学SEO优化应该怎么去理解?
- JAVA super和this应该注意点
- Java关键字this简单理解
- Java中“this”的理解
- LeetCode minDepth of 2 bin tree
- 在ubuntu上使用交叉编译工具链编译arm64版busybox
- 批量启动\停止ORACLE服务
- 100万并发连接服务器笔记之1M并发连接目标达成
- C++ 实现比较版本号
- java当中this应该怎么理解?
- 消息系统Kafka介绍
- 关于linux
- C++ STL stack/queue
- Makefile 学习日记(五)——makefile中的函数
- 100万并发连接服务器笔记之Java Netty处理1M连接会怎么样
- uva10825 (暴力)
- Spark内核讲解之弹性分布数据集(一)
- android Style(样式)的解析
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
晚上睡眠浅易醒怎么办
宝宝下半夜不睡怎么办
宝宝半夜不睡觉怎么办
宝宝睡眠不好是怎么办
半夜回家走错门怎么办
半夜想啪啪了怎么办
丈夫晚上不回家怎么办
老婆半夜出去玩怎么办
半夜剪了指甲怎么办
不会用百度地图怎么办
饿得胃疼怎么办
哈林结婚吴莫愁怎么办
16岁190cm怎么办
钱包丢了怎么办啊
钱包掉了该怎么办
手机被偷以后怎么办
冰箱搬运时平放怎么办
冰箱躺着运输了怎么办
萨德部署中国怎么办
iphone se黄屏怎么办
家有吸毒人员怎么办
当一个人后悔了怎么办
我结婚后悔了怎么办
如果后悔结婚了怎么办
高压160低压110怎么办
日本岛沉没中国怎么办
ipad键盘上移了怎么办
ipad键盘变小了怎么办
qq打开微云怎么办
老是恐惧和害怕怎么办
怎么办才不害怕死人
迅雷手机网速慢怎么办
电脑网速突然慢怎么办
迅雷vip速度慢怎么办
牙齿被腐蚀了怎么办
静载试验不合格怎么办
墙面贯穿性裂缝怎么办
抢答没有抢答器怎么办
混凝土路面起砂怎么办
水泥地面裂了怎么办
成都买房了户口怎么办