java内部类

来源:互联网 发布:windows命令行解压zip 编辑:程序博客网 时间:2024/06/08 17:09

什么是内部类?

  • 我的理解:简而言之就是在类的内部创建一个类,内部类持有对外部类成员(属性,方法)的直接访问权

内部类的四大种类

一、成员内部类

  • 1.访问:外部类.内部类 对象=new 外部类.内部类();
  • 2.调用:对象.方法名();
  • 理解:1.要想有内部类(对象),必须先有内部类(对象)
  • 2.内部类持有对外部类对象的引用
  • 3.外部类的作用可以理解为包,它的作用相当于包
  • 注意:内存泄漏(解决方案:先将内部类置为空/静态的)

二、静态内部类

  • 理解:可以理解为全局
  • 1.不需要有外部类对象(随着类的加载而加载,即使没有对象,它的属性仍在方法区中)
  • 2.不能访问外部类的非静态成员
  • 3.如果内部类中有静态方法,那么这个内部类一定是静态的

三、匿名内部类

  • 1.语法:new 父类({重写父类已实现的方法});
  • 注意:1.没有抽象方法的抽象类(例:Type type=new Type(){};)
  • 2.开发中最常见
  • 3.没有构造方法

四、局部内部类

  • 含义::写在方法中的类
  • 注意:1.一般来说,需要返回对象。之后想调用几次,什么时候调用都可以
  • 2.局部内部类访问方法中的变量时,需要将变量定义成final的(变量名要大写),否则会导致内部类不能访问局部变量,因为不是final修饰的变量会随着方法的结束从桟内存中消失
  • 3.很像闭包(javascripe)
    内部类访问外部类对象Inner.this,Outer.this.class
阅读全文
0 0
原创粉丝点击