常规内部类、局部内部类、匿名内部类和静态嵌套类小结

1.常规内部类

  1. 内部类就像一个实例成员一样存在于外部类中。
  2. 内部类可以访问外部类的所有成员就想访问自己的成员一样没有限制。
  3. 内部类中的this指的是内部类的实例对象本身,如果要用外部类的实例对象就可以用类名.this的方式获得。
  4. 内部类对象中不能声明静态成员,原因很简单,内部类的实例对象是外部类实例对象的一个成员。(继承的类或实现的接口可以有静态成员)
  5. 在外部类的内部,可以用 Inner inner = new Inner(); 方法直接创建
2.局部内部类
  1. 局部内部类的地位和方法内的局部变量的位置类似,因此不能修饰局部变量的修饰符也不能修饰局部内部类,譬如public、private、protected、static、transient等
  2. 局部内部类只能在声明的方法内是可见的,因此定义局部内部类之后,想用的话就要在方法内直接实例化,记住这里顺序不能反了,一定是要先声明后使用,否则编译器会说找不到。
  3. 局部内部类不能访问定义它的方法内的局部变量,除非这个变量被定义为final 。
  4. 局部内部类的声明不能有静态变量(继承的类或实现的接口可以有静态成员)
  5. 出现在实例方法中可以访问外部类的实例变量和实例方法。
  6. 出现在静态方法中可以访问外部内的静态变量和方法。
3.匿名内部类
    同局部内部类。会生成 Outerclass$1.class 的文件
4.静态内部类
   静态嵌套类和其他静态方法一样只能访问其它静态的成员,而不能访问实例成员。因此静态嵌套类和外部类之间的联系就很少了。
   静态内部类一样可以有非静态的变量和方法,不要被名字所误导。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值