静态内部类定义在类中,任何方法外,用static定义
Posted borter
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了静态内部类定义在类中,任何方法外,用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 }
以上是关于静态内部类定义在类中,任何方法外,用static定义的主要内容,如果未能解决你的问题,请参考以下文章