内部类:
在一个类 内部 定义的类 称为内部类 内部类允许把一些逻辑相关的类组织在一起 并且控制内部类的可见性 。
内部类可以让程序变得优雅。
成员变量
– 实例变量 定义在类内部
变量: --静态变量 定义在类内部 使用static 关键字修饰
局部变量
– 定义在方法内部的变量
成员内部类
-- 实例内部类
内部类: --静态内部类
局部内部类
--定义在方法内部的类
内部类的特征:
作为外部类的成员 内部类中可以直接访问外部类(包括private 成员),反之 则不行,可以
声明为 private 默认 protected public 类型,内部类的成员 只在内部类的范围内
有效 ,在内部类中 可以定义外部类访问不到的属性 这样就实现了 比private 还要小的访问权限
编译含有内部类的类 所生成的class 文件 含有$ 符 ,具体的文件名 还要看内部类的种类
实例内部类:
在创建实例内部类的实例时 外部类的实例必须存在
实例内部类的实例 自动持有外部类的引用 所以 内部类可以直接访问外部类的 所有成员 包括 变量和 方法
静态内部类
静态内部类的实例 不会自动持有外部类的实例引用 所以 没办法直接调用外部类的 实例成员 , 在创建静态内部类
实例的时候 也不必创建外部类的实例
静态内部类 可以直接访问 外部类的静态成员 如果要访问外部类的实例成员 需要通过外部类的实例来访问
局部内部类
只能在当前方法内部使用 在当前方法外 无法直接访问局部内部类
局部内部类 不能定义静态成员
局部内部类 可以访问外部类的成员
匿名内部类
是一种 比较特殊的内部类 这种类 没有名字
需要 继承某个类 或者 实现某个接口 通过它的父类或者接口 来创建
本文详细解析了Java内部类的概念,包括其实例内部类、静态内部类和局部内部类的特点及使用场景。探讨了内部类如何提升代码的优雅性和封装性,以及其在访问外部类成员、控制可见性和编译过程中的独特行为。
12万+

被折叠的 条评论
为什么被折叠?



