Java内部类总结

Java中的内部类(Nested Class)是指定义在另一个类内部的类,使用较少但是需要了解。

1. 内部类(Inner Class)

  • 定义方式:在外部类内部直接定义的类,无static修饰
    class Outer {
    class Inner { ... }
    }
  • 核心特性
    • 必须依附于外部类实例存在,不能单独创建
    • 实例化方式:Outer.Inner inner = outer.new Inner();
    • 持有外部类实例的引用,可通过Outer.this访问
    • 可直接访问外部类的private字段和方法
  • 编译产物:生成Outer$Inner.class文件

2. 匿名类(Anonymous Class)

  • 定义方式:在方法内部直接定义并实例化,无需显式类名
    Runnable r = new Runnable() {
    @Override
    public void run() { ... }
    };
  • 核心特性
    • 必须在定义时立即实例化
    • 可实现接口或继承普通类
    • 同样持有外部类实例引用,能访问其private成员
    • 适用于仅需一次性使用的简单类
  • 编译产物:生成Outer$1.classOuter$2.class等文件(按出现顺序编号)

3. 静态内部类(Static Nested Class)

  • 定义方式:用static修饰的内部类
    class Outer {
    static class StaticNested { ... }
    }
  • 核心特性
    • 独立存在,无需依附外部类实例
    • 实例化方式:Outer.StaticNested sn = new Outer.StaticNested();
    • 不能访问外部类的非静态成员,只能访问静态成员
    • 拥有外部类private成员的访问权限
  • 本质:逻辑上与外部类关联的独立类

共性与差异

类型 依附外部类实例 访问外部类private成员 静态成员访问
Inner Class 可访问静态和非静态
Anonymous Class 可访问静态和非静态
Static Nested Class 仅可访问静态

内部类的主要作用是实现类的逻辑聚合,同时保持对外部类私有成员的访问能力,在设计模式和回调机制中应用广泛。

Java面向对象基础——10.内部类的更多相关文章

  1. 【重走Android之路】【Java面向对象基础(三)】面向对象思想

    [重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想   1 面向对象的WWH   1.1 What--什么是面向对象         首先,要理解“对象”.在Thinkin ...

  2. 【重走Android之路】【Java面向对象基础(一)】数据类型与运算符

    [重走Android之路][基础篇(一)][Java面向对象基础]数据类型与运算符   1.数据类型介绍 在Java中,数据类型分为两种:基本数据类型和引用类型. 基本数据类型共8种,见下表: 基本数 ...

  3. java面向对象-基础入门

    java面向对象-基础入门 面向过程:线性思维 面向对象思维:物以类聚,分类的思维 对于描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统,但是具体到某个微观 ...

  4. 【重走Android之路】【Java面向对象基础(二)】细说String、StringBuffer和StringBuilder

    [重走Android之路][基础篇(二)][Java面向对象基础]细说String.StringBuffer和StringBuilder   1.String String是Java中的一个final ...

  5. Java面向对象 Object类 内部类

     Java面向对象 Object类    内部类 知识概要:                 一:Object类                 二:内部类 匿名内部类的写法 1.Object O ...

  6. 086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结

    086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结 本文知识点:面向对象基础(类和对象)总结 说明 ...

  7. 085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用

    085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用 本文知识点:构造方法调用 说明:因为时间紧张,本人写博客过程中只是 ...

  8. 084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字

    084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字 本文知识点:构造方法-this关键字 说明:因为时间紧 ...

  9. 083 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 02 构造方法-带参构造方法

    083 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 02 构造方法-带参构造方法 本文知识点:构造方法-带参构造方法 说明:因为时间紧张, ...

  10. 082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法

    082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法 本文知识点:构造方法-无参构造方法 说明:因为时间紧张, ...

随机推荐

  1. js格式化货币方法

    闲来无事自己基于原生js方法封装了一个可用于常见货币格式化的方法,具体方法封装如下: /** * 格式化人民币金额 * @param number num 数字金额 * @param string s ...

  2. java面向切面编程---AOP之环绕通知

    package com.xlkh.bigscreen.common.aspect; import com.alibaba.fastjson.JSON; import com.fasterxml.jac ...

  3. 支付宝携手HarmonyOS SDK实况窗,开启便捷停车生活

    6月,华为开发者大会2025与全球开发者一起,用代码和创新编制智慧时代的经纬.这里不仅是技术峰会,更是开发者的「主场」,6月21日,<HarmonyOS SDK使能高效开发,打造优质创新应用体验 ...

  4. leetcode 240 搜索二维矩阵

    简介 一时半会儿没啥思路. 官方那种 移动指针的思路挺不错的. code class Solution { public boolean searchMatrix(int[][] matrix, in ...

  5. java 使用反射 实现指针

    简介 java 使用反射 实现指针,但不推荐使用,推荐使用 interface code package com; import java.lang.reflect.*; public class M ...

  6. Draw.io Shortcuts

  7. Iterable:一个容易被忽视的Python编码细节

    Type hints 近年来,越来越多的 Python 开发者愿意为变量声明类型了,变化非常明显. def add(left, right): return left + right from typ ...

  8. SciTech-EECS-Devices-Mobile-Memory: 移动设备(Cellphone/Pad/Watch)的 Memory(运存)、Flash(闪存) 和 SDcard(可扩展外部存储, SD卡是事实上标准)

    SciTech-EECS-Devices-Mobile-Memory: 移动设备的 Memory(运存) 和 Flash(闪存) 存储设备的 读写速度 与 硬件设备的技术规格, 存储大小, 处理器性能 ...

  9. SciTech-Anatomy-Tooth

    0. 牙: 成人牙:称为 恒牙,上下各16颗, 以牙科医师面对患者视角,对上下两排牙编号: - 上排:共16颗,从左到右编号 1号 - 16号, 左右两侧对称,每侧各8颗: {Molars:3,Pre ...

  10. POLIR-Society-Management-CNO5R+Leading: 管理Leading(引领工作)的几个要点:立场(目标人群)+金钱价值观+需求+服务产品+管理控制_复杂和不确定性+领导力{做人做事思想}+管理{ 三管五带七抓 }

    POLIR-Society-Management-Leading: 管理Leading(引领工作)的几个要点: Customer SATISFACTION: 我们最终为"何种目标人群&quo ...