java 内部类
内部类:
类一共有五个成员,成员可以与外部其他类进行交互,所以有访问修饰符:public, protect, 默认, private;
- 属性;
- 静态属性;
- 普通属性;
- 常量;
- 代码块【构造器的补充】;
- 静态代码块;
- 普通代码块;
- 构造器;
- 创建对象执行必须执行的显式初始化;
- 方法;
- 静态方法;
- 普通方法;
- 抽象方法;
- 不可继承方法;
- 内部类;
- 定义在局部的【代码块和方法内】:
- 局部内部类;
- 匿名内部类;
- 定义在成员的位置上:
- 成员内部类;
- 静态内部类;
- 定义在局部的【代码块和方法内】:
内部类:
可以直接访问外部类的所有成员,包括私有的;
-
定义在局部的内部类:
-
作用域相当于局部变量,不能加修饰符,可以加 final;
-
可以直接访问外部类的成员,当有同时属性的时候,遵守就近原则,或特质:外部类.this.属性名;
-
外部类访问内部类成员,需要创建对象,通过对象访问。
-
在编译器内部,匿名类会被命名为:外部类名$序列;
//匿名内部类格式 new BB类/接口(参数列表){}; <=> class xxx extends BB[implements 接口]{ } new xxx();//不允许重写xxx构造器,所以参数列表传递给,父类构造器;
-
-
定义在成员位置的内部类;
-
外部其他类访问成员内部类的方式:
- 外部类的实例对象.new 内部类名();
- 可以由工厂模式获取,同过方法获取实例对象;
-
当内部类和外部类成员重名时,内部类访问的话,遵守就近原则,当访问外部成员时:外部类名.this.成员;
-
静态内部类只能访问外部静态成员;
-
对于外部其他类实例化静态内部类时:
new 外部类名.内部类名();
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通