有个类如下:
public class sJXCFrame {
   public sJXCFrame() {   }
}
请问这句话中的sJXCFrame.this怎么解释,小弟看不懂!
sJXCFrame.this.getClass().getResource("welcome.jpg")

解决方案 »

  1.   

    我把代码补充一下:
    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>");
    }
    }
      

  2.   

    this 是指当前的;这里用this是方便找当前类中的方法吧!
      

  3.   

    this.getClass是这个类对应的结构的一个对象,每个类都有自己的结构,当他构造一个构造对象的时候都是根据他的结构信息去构造对象的,每个类都有自己的结构,也就是一个结构对象,既然是对象那他们的类就是Class,所以sJXCFrame.this.getClass()是获得这个类的类对象,sJXCFrame.this.getClass()等价于sJXCFrame.class
      

  4.   

    sJXCFrame.this.getClass()

    sJXCFrame.class
    等价
      

  5.   

    还是不清楚这个this是干什么的?“类.this”这个是什么用法,this不是指的当前对象吗?
      

  6.   

    this是引用,就和指针一个样,你就当这个类有个成员this就可以了,比如
    class A {
        public A this;
    }
    只要你创建一个A对象,那这个对象就有自己的this
      

  7.   

    this关键字是指当前对象的引用,不过这是一种简写,其实完整的写法应该是"包名.类名.this",因为通常用不到前面的完全限定名,所以可以把this之前的省去,但是有种情况例外,那就是匿名内部类存在的时候,你就可能需要this关键字了。
    例如如下代码public class OutClass{
         public void dosth(){
              new Object(){
                  this.toString();//这个时候的this调用的是new Object()匿名内部类的对象。
                  //但是要如何调用到OutClass这个类的对象就需要如下方法了。
                  OutClass.this的方式才能调用到了。
              }
         }
    }
      

  8.   

    谢谢spiniper的解答
    “this关键字是指当前对象的引用,不过这是一种简写,其实完整的写法应该是"包名.类名.this",因为通常用不到前面的完全限定名,所以可以把this之前的省去,但是有种情况例外,那就是匿名内部类存在的时候,你就可能需要this关键字了。”