怎样在内部类中获得外部类的引用

来源:百度知道 编辑:UC知道 时间:2024/09/22 07:22:19
做一个聊天程序的客户端程序,外部类是主要负责链接服务器和发送消息,内部类实现了runnable接口是一个线程类,主要负责接受服务器的消息!现在我有一个问题就是怎样在内部类中获得外部类的引用?
不是匿名类,我的外部类其实是一个jframe,而我在内部类中想调用外部类的方法,但是必须要有其引用,而且必须是我之前已经实例化的引用,不知道有人理解我意思没?可能我没说清楚

我想在内部类中的run()方法中使用jframe的setvisable方法把jframe设置成不可见

用“外部类”的this引用

帮你写个例子你就明白了
public class A extends JFrame {
A(){
new Thread(new B(this)).start();
}

public static void main(String[] args) {
A a=new A();
}
class B implements Runnable{
A a;
B(A a){
this.a=a;
}
public void run() {
a.setVisible(true);
}
}
}

你是不是想把JFrame的内容传递到线程类里使用?

如果你的内部类不是static的,那么你可以直接用
1、
外部类名.this
的方式引用外部类实例。
2、
将外部类的属性声明成final的就可以直接访问,不用加前缀。

如果内部类是static的话,就必需手动实例化一个外部类的引用了。