Java内部类

2021/5/16 20:26:55

本文主要是介绍Java内部类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

内部类

  • 内部类,在一个类的内部定义的类
    interface OuterIFC { 
    void  method();
    }
    public class Outer{
         public  class  Inner1  {}//实例内部类
         public  static  class Inner2 {} //静态内部类
         private  OuterIFC o =new OuterIFC() {
               int  i=1 ;
               void method() {i++;}
    };//实现了OuterIFC 接口的匿名类
    OuterIFC  getInstance(){retern o;}
    void outerMethod(){
       class Inner3{};//局部内部类
       Inner3 in=new Inner3 ();
    }
      }// end of  class Outer
    
    
    
    

     

  • 匿名类是一种特殊的内部类

内部类的特性

实例内部类可以直接访问嵌套类的成员,如果是定义在方法中的局部内部类,还可以访问该方法中的final型的局部变量和final型的方法参数。参见ClassA.java

class ClassA{
  private  int vA=o;
  class B(int vB=vA;)
void methodA(final int param1,int param2){
  final  int  localIV=0;
class C {
  int vC;
  void methodC(){
    int v1=vA;//合法
    int v2=localIV//合法
    int v3=param1//合法
    int v4=param2//非法
      }
    }
  }
}
  • 静态内部类只能直接访问所嵌套类的静态成员,而不能直接访问所嵌套类的非静态成员,若一定要访问,必须通过外部嵌套类的实例访问。
Class  A{
   int vA=1;
   static classB{
  int  vB=vA;//非法
   }
}


Class C{
   int  vC=1;
    static classD{
 int vD= new C ().vC;//合法
   }
}
  • 实例内部类不能声明任何static成员,静态内部类中可以声明。


这篇关于Java内部类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程