java内部类总结

内部类总结:
1.首先,把内部类作为外部类的一个特殊的成员来看待,因此它有类成员的封闭等级:private ,protected,默认(friendly),public
                                                      它有类成员的修饰符:   static,final,abstract
2.非静态内部类nested inner class,内部类隐含有一个外部类的指针this,因此,它可以访问外部类的一切资源(当然包括private)
  外部类访问内部类的成员,先要取得内部类的对象,并且取决于内部类成员的封装等级。
  非静态内部类不能包含任何static成员.
3.静态内部类:static inner class,不再包含外部类的this指针,并且在外部类装载时初始化.
  静态内部类能包含static或非static成员.
  静态内部类只能访问外部类static成员.
  外部类访问静态内部类的成员,循一般类法规。对于static成员,用类名.成员即可访问,对于非static成员,只能
    用对象.成员进行访问

4.对于方法中的内部类或块中内部类只能访问块中或方法中的final变量。
 

  

类成员有两种static , non-static,同样内部类也有这两种
 
non-static 内部类的实例,必须在外部类的方法中创建或通过外部类的实例来创建( OuterClassInstanceName.new innerClassName(ConstructorParameter)),并且可直接访问外部类的信息, 外部类对象可通过 OuterClassName.this来引用
 
static 内部类的实例, 直接创建即可,没有对 外部类实例的引用。
 
内部类不管static还是non-static都有对 外部类的引用
 
non-static 内部类 不允许有static成员
 

方法中的内部类只允许访问方法中的 final局部变量和方法的 final参数列表,所以说方法中的内部类和内部类没什麽区别。但 方法中的内部类不能在方法以外访问,方法中 不可以有static内部类
 
匿名内部类如果继承自 接口,必须实现指定接口的方法, 且无参数

匿名内部类如果继承自类,参数必须按父类的构造函数的参数传递


  
 

你可能感兴趣的:(java内部类总结)