| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 996 人关注过本帖
标题:java里的this是怎么用的?
只看楼主 加入收藏
angelnana
Rank: 1
等 级:新手上路
帖 子:178
专家分:0
注 册:2007-8-13
收藏
 问题点数:0 回复次数:7 
java里的this是怎么用的?

谁可以给我讲一下java里的this是怎么用的?有个例子:
构造函数是:
public AAA(BBB b, Log log) {
this.traceLog = log;
this.bb = b;
}

之后这样调用:
a = new AAA(this, traceLog);

这里的两个traceLog是指同一个吗?
我知道第2个指的是Log的一个对象嘛,那第一个this.traceLog 呢?
this是怎么用的?
谁帮我注释一下,谢谢!

搜索更多相关主题的帖子: java 
2007-08-27 10:42
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 
public AAA(BBB b, Log log) {
this.traceLog = log;
this.bb = b;
}
这里面的可以不用this,假设你的类有变量a,b,c,然后你这个类的构造方法假设是public AAA(int a,int b,int c)的话,就要用this来传送变量了
也就是说,如果类的变量名字和构造方法里面形参的变量名字相同,就要用this:
this.a=a;
this.b=b;
this.c=c;
this就是指调用当前对象。

I'm here, as always...
2007-08-27 10:52
angelnana
Rank: 1
等 级:新手上路
帖 子:178
专家分:0
注 册:2007-8-13
收藏
得分:0 
我好像突然明白了,这个this不是指AAA的对象,而是指在调用a = new AAA(this, traceLog);这句话的类的对象,是不是?

2007-08-27 11:06
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 
这句话在哪个对象或类里声明的,就指哪个

I'm here, as always...
2007-08-27 11:10
狂放不羁
Rank: 4
等 级:贵宾
威 望:12
帖 子:925
专家分:0
注 册:2007-1-24
收藏
得分:0 
new 一个对象以后返回的就是这个对象的this引用。this是一个对象的非静态的常量。a = new AAA(this,traceLog)里面的this是指向BBB的对象的。也就是说你必须在类BBB的作用域里new AAA(this,tracLog).

[此贴子已经被作者于2007-8-27 12:08:41编辑过]


2007-08-27 11:57
liguoshi1984
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2007-7-4
收藏
得分:0 
以下是引用angelnana在2007-8-27 10:42:09的发言:

谁可以给我讲一下java里的this是怎么用的?有个例子:
构造函数是:
public AAA(BBB b, Log log) {
this.traceLog = log;
this.bb = b;
}

之后这样调用:
a = new AAA(this, traceLog);

这里的两个traceLog是指同一个吗?
我知道第2个指的是Log的一个对象嘛,那第一个this.traceLog 呢?
this是怎么用的?
谁帮我注释一下,谢谢!

1 两个traceLog不是同一个,只不过名字一样而已.
2 this.traceLog指的是a里的一个成员变量.
3 this的用法最好找本书看

[此贴子已经被作者于2007-8-27 15:15:50编辑过]

2007-08-27 14:58
angelnana
Rank: 1
等 级:新手上路
帖 子:178
专家分:0
注 册:2007-8-13
收藏
得分:0 
呵呵,谢谢楼上各位了,我明白了


2007-08-28 11:10
老小吴
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-8-9
收藏
得分:0 
受益非浅

努力的笨小孩
2007-08-29 00:37
快速回复:java里的this是怎么用的?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051417 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved