请问这个this是什么意思

xiaoyanglei 2009-02-28 04:01:09
有个类如下:
public class sJXCFrame {
public sJXCFrame() {

}
}
请问这句话中的sJXCFrame.this怎么解释,小弟看不懂!
sJXCFrame.this.getClass().getResource("welcome.jpg")
...全文
152 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoyanglei 2009-03-01
  • 打赏
  • 举报
回复
谢谢spiniper的解答
“this关键字是指当前对象的引用,不过这是一种简写,其实完整的写法应该是"包名.类名.this",因为通常用不到前面的完全限定名,所以可以把this之前的省去,但是有种情况例外,那就是匿名内部类存在的时候,你就可能需要this关键字了。”
树成 2009-03-01
  • 打赏
  • 举报
回复
this关键字是指当前对象的引用,不过这是一种简写,其实完整的写法应该是"包名.类名.this",因为通常用不到前面的完全限定名,所以可以把this之前的省去,但是有种情况例外,那就是匿名内部类存在的时候,你就可能需要this关键字了。
例如如下代码

public class OutClass{
public void dosth(){
new Object(){
this.toString();//这个时候的this调用的是new Object()匿名内部类的对象。
//但是要如何调用到OutClass这个类的对象就需要如下方法了。
OutClass.this的方式才能调用到了。
}
}
}
NuisT_NeO 2009-02-28
  • 打赏
  • 举报
回复
LS 的 讲解 很清楚~。~
wind1373290 2009-02-28
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xiaoyanglei 的回复:]
引用 7 楼 wind1373290 的回复:
this.getClass是这个类对应的结构的一个对象,每个类都有自己的结构,当他构造一个构造对象的时候都是根据他的结构信息去构造对象的,每个类都有自己的结构,也就是一个结构对象,既然是对象那他们的类就是Class,所以sJXCFrame.this.getClass()是获得这个类的类对象,sJXCFrame.this.getClass()等价于sJXCFrame.class

还是不清楚这个this是干什么的?“类.this”这个是什么用法,this不是指…
[/Quote]
this是引用,就和指针一个样,你就当这个类有个成员this就可以了,比如
class A {
public A this;
}
只要你创建一个A对象,那这个对象就有自己的this
xiaoyanglei 2009-02-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wind1373290 的回复:]
this.getClass是这个类对应的结构的一个对象,每个类都有自己的结构,当他构造一个构造对象的时候都是根据他的结构信息去构造对象的,每个类都有自己的结构,也就是一个结构对象,既然是对象那他们的类就是Class,所以sJXCFrame.this.getClass()是获得这个类的类对象,sJXCFrame.this.getClass()等价于sJXCFrame.class
[/Quote]
还是不清楚这个this是干什么的?“类.this”这个是什么用法,this不是指的当前对象吗?
一剑 2009-02-28
  • 打赏
  • 举报
回复
sJXCFrame.this.getClass()

sJXCFrame.class
等价
wind1373290 2009-02-28
  • 打赏
  • 举报
回复
this.getClass是这个类对应的结构的一个对象,每个类都有自己的结构,当他构造一个构造对象的时候都是根据他的结构信息去构造对象的,每个类都有自己的结构,也就是一个结构对象,既然是对象那他们的类就是Class,所以sJXCFrame.this.getClass()是获得这个类的类对象,sJXCFrame.this.getClass()等价于sJXCFrame.class
g1092407 2009-02-28
  • 打赏
  • 举报
回复
学习一下
mizukusa 2009-02-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dejiang_ren 的回复:]
this 是指当前的;这里用this是方便找当前类中的方法吧!
[/Quote]
同意!
mzjmicrosoft 2009-02-28
  • 打赏
  • 举报
回复
学习
dejiang_ren 2009-02-28
  • 打赏
  • 举报
回复
this 是指当前的;这里用this是方便找当前类中的方法吧!
virginkj 2009-02-28
  • 打赏
  • 举报
回复
应该是指sJXCFrame类的对象吧
xiaoyanglei 2009-02-28
  • 打赏
  • 举报
回复
我把代码补充一下:
public class sJXCFrame {
public sJXCFrame() {
updateBackImage();
}
}

private void updateBackImage() {
if (backLabel != null) {
int backw = frame.getWidth();
int backh = frame.getHeight();
backLabel.setSize(backw, backh);
backLabel.setText("<html><body><image width='" + backw
+ "' height='" + (backh - 110) + "' src="
+ sJXCFrame.this.getClass().getResource("welcome.jpg")
+ "'></img></body></html>");
}
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧