http://zhidao.baidu.com/question/108848367.html
服了你了,能把程序写成这样。一个java文件里可以有多个类,但只能有一个public类,而且这个类必须是外部类,不能是内部类。而且你在Test里实例化inner的方法也不对,inner的类型始终是Outer.Inner,不会因为Outer实例化而变成outer.Inner,只不过编译器还没有报出那里的错误而已。写成这样: class Outer{ private int size=10; class Inner{ public void doStuff(){ System.out.println(++size); } } } public class Test{ public static void main(String [] args){ Outer outer=new Outer(); Outer.Inner inner=outer.new Inner(); inner.doStuff(); } }