静态内部类定义在类中,任何方法外,用static定义

静态内部类:(注意:前三种内部类与变量类似,所以可以对照参考变量)

静态内部类定义在类中,任何方法外,用static定义。

静态内部类只能访问外部类的静态成员。

生成(new)一个静态内部类不需要外部类成员:这是静态内部类和成员内部类的区别。静态内部类的对象可以直接生成:

Outer.Inner in=new Outer.Inner();

而不需要通过生成外部类对象来生成。这样实际上使静态内部类成为了一个顶级类。

静态内部类不可用private来进行定义。例子:

对于两个类,拥有相同的方法:

People

{

 run();

}

Machine{

  run();

}

此时有一个robot类:

class Robot extends People implement Machine.

此时run()不可直接实现。

注意:当类与接口(或者是接口与接口)发生方法命名冲突的时候,此时必须使用内部类来实现。

用接口不能完全地实现多继承,用接口配合内部类才能实现真正的多继承。

 1 package TomText;
 2 //测试对实例成员和类成员的不同访问形式。
 3 public class TomText_44 {
 4     static int i=1;
 5     int j=1;
 6     static void printStatic( ){
 7         System.out.println("i="+i);
 8         //System.out.println("j="+j);        //非法访问
 9     }
10     void print(){
11         System.out.println("i="+i);
12         System.out.println("j="+j);
13     }
14     public static void main(String [ ] args){
15         TomText_44.printStatic( );
16         //StaticTest.print( );                //非法访问
17         TomText_44.i=2;
18         //StaticTest.j=2;                //非法访问
19         TomText_44 st=new TomText_44( );
20         st.i=3;
21         st.j=3;
22         st.print( );
23         st.printStatic( );
24     }
25 
26 }
原文地址:https://www.cnblogs.com/borter/p/9419374.html