问题描述
代码如下:Import...(omitted);publicclasstest{publicstaticvoidmain(String[]args){JFrameabcd=newextendJFrame();abcd.setTitle("test");abcd.setSize(100,100);abcd.setVisible(true);}PublicclassextendJFrameextendsJFrame(){.......}}报错:noenclosinginstanceoftypetestisaccessible.eclispe提示错误在JFrameabcd=newextendJFrame();这一行,而且将extendJFrame类定义为静态类就可以编译,不知道为什么。另外,这样写也是可以编译的:Import...(omitted);PublicclassextendJFrameextendsJFrame(){publicstaticvoidmain(String[]args){JFrameabcd=newextendJFrame();abcd.setTitle("test");abcd.setSize(100,100);abcd.setVisible(true);}//定义拓展类.......(omitted)}如果说静态方法不能调用实例变量的话,那为什么这样可以编译呢?本人菜鸟,求高手指教。
解决方案
解决方案二:
应该这样访问内部类,另外建议类名首字母用大写,你的第二种写法是错误的,main访问不能放在内部类里publicclasstest{publicstaticvoidmain(String[]args){testt=newtest();JFrameabcd=t.newextendJFrame();abcd.setTitle("test");abcd.setSize(100,100);abcd.setVisible(true);}publicclassextendJFrameextendsJFrame{.......}}
解决方案三:
看错,“你的第二种写法是错误的,main访问不能放在内部类里”,忽略