一、位置
定义在代码块里和方法里的类
二、结构:
类:不能被访问修饰符修饰
属性:能被访问修饰符修饰,不能被sttaic修饰
方法:能被访问修饰符修饰,不能被static修饰
三、内部类访问外部类
在普通方法里的内部类可以访问外部类的全部成员
在静态方法里的内部类只能访问外部类的类成员
四、外部类访问内部类
在外部类中不能实例化内部类对象,内部类对象只能在该方法中实例化,外部类只能调用该方法
五、局部内部类只能访问final修饰的局部变量
根本原因:内部类和局部变量的生命周期不同导致的
内部类是类级别的,它不会因为定义在方法里就随着方法执行完毕而销毁,因此,可能会出现方法执行完毕销毁,而内部类还未销毁,内部类访问了一个不存在的局部变量
为了解决这个问题,内部类会把该局部变量备份成为自己的成员变量,表面上是方法中的局部变量,实际上是访问的备份。但是这样必须保持两者一致,因此需要加final
基本类型:值不变
引用类型:引用不变
六、java1,.8
i.8更加智能,即使不加声明,默认是final,但是如果修改,就会报错,就不能认为这是final修饰的了
原文地址:https://www.cnblogs.com/cc-umf-lm/p/10647822.html
时间: 2024-10-10 02:29:39