static void innerstatic(){} static int i=1;//静态内部类能有静态成员(方法、属性) void inner(){} int j=1;//静态内部类能有非静态成员(方法、属性) } public static void main(String args[]){ OutClassTest a=new OutClassTest(); OutClassTest.InnerstaticClass b=new OutClassTest.InnerstaticClass...
1、因为是成员内部类,不是静态内部类(static class),需要有外部实例的 this 引用。static 域也可以...
1.首先你的内部类不是静态的对吧(不是static class)。2.而main方法是静态的。3.main 方法是个静态方法,而 静态 类不是个静态内部类,所以不能直接初始化。对main方法而言,虽然写在类中,它是游离于任何类之外的(就跟C++一样,单独一个main方法),因此某类的非静态内部类对它而言是不直接可见...
public class TestStatic {public static void main(String[] args) {//1.静态内部类,静态方法!Test05.StaticClass.show();//new Test05.StaticClass().show();//被注释的这里其实是合法的,只是有点多余,你看完整个在回头看这里,这与调用静态方法有违背!//2.非静态内部类,非静态方法!new Test...
new ActionListener() 是创建一个继承自ActionListener的匿名类对象,通过new表达式返回的引用自动向上转型为对ActionListener的引用。因为匿名类本身无名,也就不存在构造方法,需要显式调用父类的构造方法,并重写父类的方法。
匿名类其实就是相当于实现接口或者实现抽象类的一个具体类,以及不是抽象类或者接口,所以可以实例化,在匿名内部类中必须实现抽象方法,或者接口的方法,否则就会报错的,就是让匿名类变成可以实例化的类,所以匿名内部类不是例外。