当前位置: 技术问答>java相关
关于嵌套类
来源: 互联网 发布时间:2015-07-29
本文导语: import java.awt.*; import java.awt.event.*; class Window extends Frame{ public Window() { this.setLayout(new FlowLayout()); this.setSize(300, 300); this.addWindowListener(new winAdp()); } class winAdp extends WindowAdapter{ public void windowClosing(WindowEvent e)...
import java.awt.*;
import java.awt.event.*;
class Window extends Frame{
public Window() {
this.setLayout(new FlowLayout());
this.setSize(300, 300);
this.addWindowListener(new winAdp());
}
class winAdp extends WindowAdapter{
public void windowClosing(WindowEvent e){
Window.dispose();//- non-static 'Window.dispose' cannot be referenced from a static context
//请教:static context在哪里?这里好象没有static context
System.exit(0);
}
}
public static void main (String [] args) {
new Window.setVisible(true);
}
}
import java.awt.event.*;
class Window extends Frame{
public Window() {
this.setLayout(new FlowLayout());
this.setSize(300, 300);
this.addWindowListener(new winAdp());
}
class winAdp extends WindowAdapter{
public void windowClosing(WindowEvent e){
Window.dispose();//- non-static 'Window.dispose' cannot be referenced from a static context
//请教:static context在哪里?这里好象没有static context
System.exit(0);
}
}
public static void main (String [] args) {
new Window.setVisible(true);
}
}
|
在这里Window.super.dispose()和Window.dispose()不一样,
内部类可以访问外部类的方法或者非外部类的静态方法。Windows.super.dispose()就是你的Window类从java.awt.Frame-->java.awt.Window继承下来的方法(相当于指定路径:到Window的基类去找。),而Window.dispose()则不然,在你的Window类里找不到这个方法它又不是外部静态方法,所以出错。事实上,完全不指定,将Window.dispose();
改为: dispose(),编译器会自动搜索到基类的dispose()方法,从而编译通过。
内部类可以访问外部类的方法或者非外部类的静态方法。Windows.super.dispose()就是你的Window类从java.awt.Frame-->java.awt.Window继承下来的方法(相当于指定路径:到Window的基类去找。),而Window.dispose()则不然,在你的Window类里找不到这个方法它又不是外部静态方法,所以出错。事实上,完全不指定,将Window.dispose();
改为: dispose(),编译器会自动搜索到基类的dispose()方法,从而编译通过。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。