java语言允许在类中再定义类,这种在其他内部定义的类就叫做内部类。内部类又分为:常规内部类,局部内部类,匿名内部类,和静态内部类。
1.静态内部类定义
静态内部类,定义在类中,任何方法外,用static定义;静态内部类只能访问外部类的静态成员。生成(new)一个静态内部类不需要外部类成员:这是
静态内部类和成员内部类的区别。静态内部类的对象可以直接生成:outer.inner in=new outer.inner();而不需要通过生成类对象来生成。这样实际上使得静态内部类成为一个顶级类。可以定义私有静态内部类。
2 java实现静态内部类注意事项
将某个内部类定义为静态类,跟将其他类定义为静态类的方法基本相同,引用规则也基本一致。不过其细节任然有很大不同。
1 一般情况下,如果一个内部类不是被定义为静态内部类,那么在定义成员变量或者成员方法时,不可以定义为静态成员变量和静态成员方法的,也就是说,在非静态内部类中不可以声明静态成员。
2一般非静态外部类可以随意访问其外部类的成员变量以及方法(包括声明为private的方法),但是如果一个内部类被声明为static,则其在访问包括自身的外部类会有诸多的限制。内部静态类不能访问其类的非静态成员变量和方法。
3 在一个类中创建非静态成员内部类的时候,有一个强制性的规定,即内部类的实例一定要绑定在外部类的实例中,然后要在一个外部类中定义一个静态的内部类,不需要利用关键字new来创建内部类的实例。即在创建静态内部类对象时,不需要其外部类的对象