静态内部类是指使用 static 修饰的内部类。示例代码如下:

public class Outer {static class Inner {// 静态内部类}
}

上述示例中的 Inner 类就是静态内部类。

静态内部类有如下特点。

1)在创建静态内部类的实例时,不需要创建外部类的实例。

public class Outer {static class Inner {}
}
class OtherClass {Outer.Inner oi = new Outer.Inner();
}

2)静态内部类中可以定义静态成员和实例成员。外部类以外的其他类需要通过完整的类名访问静态内部类中的静态成员,如果要访问静态内部类中的实例成员,则需要通过静态内部类的实例。

public class Outer {static class Inner {int a = 0;    // 实例变量astatic int b = 0;    // 静态变量 b}
}
class OtherClass {Outer.Inner oi = new Outer.Inner();int a2 = oi.a;    // 访问实例成员int b2 = Outer.Inner.b;    // 访问静态成员
}

3)静态内部类可以直接访问外部类的静态成员,如果要访问外部类的实例成员,则需要通过外部类的实例去访问。

public class Outer {int a = 0;    // 实例变量static int b = 0;    // 静态变量static class Inner {Outer o = new Outer;int a2 = o.a;    // 访问实例变量int b2 = b;    // 访问静态变量}
}

1.16 静态内部类相关推荐

  1. Java 面试知识点【精华背诵版】

    Java 开发知识点[背诵版] Java 基础 40 语言特性 12 Q1:Java 语言的优点? ① 平台无关性,摆脱硬件束缚,"一次编写,到处运行". ② 相对安全的内存管理和 ...

  2. 实现手机来电铃声,通知铃声、警告铃声等音频定制化功能(三,多媒体扫描结果定制处理)

    本篇博文主要是对MediaScanner中endFile方法的处理流程上的重构,以实现需求中的资源区域化定制.处理思路为首先扫描定制分区中的资源,在扫描系统分区下默认资源时判断定制分区西下是否已经存在 ...

  3. sqlserver错误码

    错误 6,000 到 6,999 错误 严重性 是否记录事件 说明 6001 10 否 SHUTDOWN 正在等待 %d 个进程完成. 6004 10 否 用户没有执行此操作的权限. 6005 10 ...

  4. 单例模式的两种实现方式对比:DCL (double check idiom)双重检查 和 lazy initialization holder class(静态内部类)...

    首先这两种方式都是延迟初始化机制,就是当要用到的时候再去初始化. 但是Effective Java书中说过:除非绝对必要,否则就不要这么做. 1. DCL (double checked lockin ...

  5. 破4!《我想进大厂》之Java基础夺命连环16问

    说说进程和线程的区别? 进程是程序的一次执行,是系统进行资源分配和调度的独立单位,他的作用是是程序能够并发执行提高资源利用率和吞吐率. 由于进程是资源分配和调度的基本单位,因为进程的创建.销毁.切换产 ...

  6. 面试官不会告诉你的16问 Java基础面试题

    废话不多说直接上 进程是程序的一次执行,是系统进行资源分配和调度的独立单位,他的作用是是程序能够并发执行提高资源利用率和吞吐率. 由于进程是资源分配和调度的基本单位,因为进程的创建.销毁.切换产生大量 ...

  7. Java基础面试16问

    来自三太子敖丙的Java基础面试16问 原文地址 ** 说说进程和线程的区别? ** 进程是程序的一次执行,是系统进行资源分配和调度的独立单位,他的作用是是程序能够并发执行提高资源利用率和吞吐率. 由 ...

  8. 16、java中的集合(3)

    说一下双列集合,顶级接口是Map,实现类有HashMap.LinkedHashMap.TreeMap.HashTable等,使用键值对的格式存储数据,键不可以重复,值可以重复.接下来对实现类做一下详细 ...

  9. thinking-in-java(16) 数组

     [16.1]数组有什么特殊  1)数组与其他类型容器的区别: 效率,类型和保持基本类型的能力:  数组是效率最高的存储和随机访问对象引用序列的方式:  数组大小固定,容器大小可以不固定,所以这增加了 ...

最新文章

  1. Postman--Pre-request执行其他接口
  2. 求集合/字符串中的所有组合 (C语言)
  3. mysql修改字符集utf8为utf8mb4
  4. 帮助你更好理解javascript中easing功能的网站 - Easings.net
  5. (转)Android SharedPreferences的使用
  6. 2周年福利 | 20万字《网易智企技术合辑》重磅发布!
  7. DRF的序列化——Serializers 序列化组件
  8. 使用QT创建PythonGUI程序
  9. 贪心算法-区间选点问题-种树
  10. PHP系统管理mongodb,MongoDB的日常维护管理
  11. [转载] 50个数据可视化最有价值的图表(附完整Python代码,建议收藏)
  12. OpenGL ES与EGL的关系(二十一)
  13. 神奇的数字之回文数c语言,奇妙的数字
  14. Ardunio开发实例-ADS1115模数转换器
  15. 安卓开发——显示网速
  16. 南大计算机专业课表,南大课程表
  17. 小样本算法库LibFewShot
  18. 【C++005】结构体(值传递,地址传递,数组)
  19. 路由器外接硬盘做nas可行吗?
  20. 电商后台设计——搜索

热门文章

  1. Python命令行解析:IDE内点击Run运行代码直接得出结果、基于TF flags(或argparse、sys.argv)在Dos内命令行(一条命令)调用代码文件得出结果
  2. Algorithm:树相关算法(BBT/BST/B树/R树)简介(二叉查找树、二叉查找树的插入节点、二叉查找树的删除、二叉树的遍历、平衡二叉树)C 语言实现
  3. CV:基于keras利用cv2自带两步检测法对《跑男第六季第五期》之如花片段(或调用摄像头)进行实时性别脸部表情检测
  4. 任务间通信的基本知识
  5. 基于 HTML5 Canvas 的交互式地铁线路图
  6. Linux系统新建用户用ssh远程登陆显示-bash-4.1$
  7. javascript与DOM的渊源
  8. shell处理mysql增、删、改、查
  9. 配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler” 解决办法...
  10. socket编程之inet_addr和inet_ntoa