|
|
@@ -496,6 +496,57 @@ public class Test01 {
|
|
|
| 关系 | 父类/接口 ← 子类/实现类 | 外部类 → 内部类(强依赖) |
|
|
|
| 访问特点 | 编译看左边,运行看右边 | 内部类可直接访问外部类私有成员 |
|
|
|
|
|
|
+### 4.5 更多内部类类型
|
|
|
+
|
|
|
+#### 4.5.1 静态成员内部类(`static` 修饰)
|
|
|
+
|
|
|
+用 `static` 修饰的内部类,属于外部类本身而非外部类的实例。
|
|
|
+
|
|
|
+**访问格式**:
|
|
|
+
|
|
|
+| 场景 | 格式 |
|
|
|
+|------|------|
|
|
|
+| 创建对象 | `外部类名.内部类名 对象名 = new 外部类名.内部类名()` |
|
|
|
+| 调用静态方法 | `外部类名.内部类名.静态方法名()` |
|
|
|
+
|
|
|
+```java
|
|
|
+class Outer {
|
|
|
+ static class Inner { // 静态成员内部类
|
|
|
+ // ...
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 创建静态内部类对象
|
|
|
+Outer.Inner inner = new Outer.Inner();
|
|
|
+```
|
|
|
+
|
|
|
+#### 4.5.2 局部内部类(定义在方法内部)
|
|
|
+
|
|
|
+定义在方法内部的类,**仅在该方法内可见和使用**。
|
|
|
+
|
|
|
+```java
|
|
|
+class Outer {
|
|
|
+ public void method() {
|
|
|
+ class Inner { // 局部内部类
|
|
|
+ public void innerMethod() {
|
|
|
+ // 内部类的方法
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 必须在方法内创建对象才能使用
|
|
|
+ Inner inner = new Inner();
|
|
|
+ inner.innerMethod();
|
|
|
+ }
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+**特点**:
|
|
|
+- 外界无法直接访问局部内部类
|
|
|
+- 只能在定义它的方法内部创建对象并调用
|
|
|
+- 可以直接访问外部类的成员,也可以访问所在方法的局部变量
|
|
|
+
|
|
|
+> **使用频率**:局部内部类和静态成员内部类使用较少,使用最多的是 **成员内部类** 和 **匿名内部类**(匿名内部类后续课程讲解)。
|
|
|
+> 📄 来源:`Demo01.java`(`course.internalClass` 包)
|
|
|
+
|
|
|
## 五、随堂练习要点
|
|
|
|
|
|
| 练习方向 | 涉及知识点 | 对应文件 |
|