Java 的静态内部类就是定义在一个类的内部,并且标注为 static 的类。由于类是静态的,所以不需要通过外围类的实例来创建。下面是一个示例:

public class Outer {private static final Logger log = LoggerFactory.getLogger(Outer.class);private static class Inner {public int value() {return 1;}}public static Inner inner() {return new Inner();}public static void main(String[] args) {Inner c = inner();log.info("c.value() -> {}。", c.value());}
}

外围类 Outer 定义了一个私有、静态内部类 Inner。然后定义了一个静态方法 inner(),返回 Inner 类。这个静态方法 inner() 就是外部类调用该内部类的桥梁。

静态内部类与非静态内部类之间的比较:

比较 静态内部类 非静态内部类
创建 外围类.方法 外围类实例.方法
访问外围类 能访问静态属性,不能访问非静态属性 不能访问静态属性,可以访问非静态属性

比如在外围类 Outer 中分别定义了一个私有、非静态属性 i,与一个私有、静态属性 j。那么静态内部类 Inner 只能访问 私有、静态属性 j:

public class Outer {private static final Logger log = LoggerFactory.getLogger(Outer2.class);// Inner 不可访问private int i;// Inner 可访问private static int j;private static class Inner {public int value() {return 1;}}
}

参考:
BruceEckel, 埃克尔, 陈昊鹏. Java编程思想[J]. 机械工业出版社, 2007. p201-202.

说说 Java 的静态内部类相关推荐

  1. java的静态内部类

    只是一个简单的记录.因为一直排斥java这个东西.java跟c++比是很不错的一个语言,至少内存管理这么麻烦的东西不用操心了.但是和不断崛起的脚本语言比起来,效率差的太多.无论如何做android还是 ...

  2. java 反射静态内部类_android-反射的使用(反射静态内部类、非静态内部类、匿名内部类等)...

    直接上代码 com.**.routerdemo 替换成包名 import java.lang.reflect.Constructor; import java.lang.reflect.Field; ...

  3. java 中静态内部类与普通内部类的区别

    1.静态内部类与普通内部类的区别 1)普通内部类不能脱离外部类被创建:静态内部类可以脱离外部类被创建. 2)普通内部类可访问外部类的静态和非静态成员变量和方法(包括私有属性),因其在外部类内部:静态内 ...

  4. java 内部静态类如何使用_如何应用Java的静态内部类?

    与内部类相似,静态内部类指在一个类的内部包含有另外一个或者多个静态类.例如: public class OuterClass { ... static class StaticInnerClass1 ...

  5. 关于“java中静态内部类的设计意图”的理解

    欢迎扫描二维码关注公众号<Android面试专栏>,不定期发布面试题干货分析!! 内部类 内部类,即定义在一个类的内部的类.为什么有内部类呢? 我们知道,在java中类是单继承的,一个类只 ...

  6. Java中静态内部类和非静态内部类的区别

    在一个类中定义的类叫内部类,内部类可以为静态内部类(用static关键字修饰),也可以为非静态内部类(普通类). 区别一:         静态内部类可以有静态成员变量和方法,非静态内部类只能有非静态 ...

  7. Java中静态内部类和非静态内部类有什么区别?

    Java中的内部类是在Jdk1.1版本之后增加的,内部类是Java语言中一个比较重要的概念,如果能把内部类运用好,那么会明显增强Java程序的灵活性. 要想清楚static内部类和非static内部类 ...

  8. 静态内部类 java 1614958017

    静态内部类 java 1614958017 静态内部类 定义静态内部类 内部的类与外面的一样 普通的类可以有的它都可以有 关注,如保调用静态内部类的外部内的成员属性 使用静态内部类

  9. Java面试题及答案整理( 2022最新版,持续更新)

    发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ Java面试永远是程序员迈向成功的第一个门槛,想要面试成功,各种面试题的洗礼是必不可少 ...

最新文章

  1. Linux脚本实战之猜数字
  2. 分布式版本控制系统Git的安装和使用
  3. 构造器是什么?(Java篇)
  4. 第 11 个“世界备份日”刚过,《Veeam 2021 数据保护报告》为你解读全球数据备份现状
  5. 【Mockplus教程】界面闪烁花屏怎么办?
  6. RabbitMQ学习笔记-RabbitMQ简介
  7. Android Camera架构浅析
  8. 1.12 Linux查看用户信息
  9. Windows7自带截图工具无法保存图片的修复办法
  10. AutoCAD Civil 3D-部件-部件编辑器自定义边坡与材质
  11. 63.QT-重写QStackedWidget模仿iphone的home界面,实现左右滑动
  12. 大疆2022 “拓疆者” 校园招聘
  13. helm模板开发-流程控制、作用域、循环
  14. 怎么恢复苹果手机通讯录
  15. Lisa随手记 1.7 发布
  16. python 傅里叶变换_理解快速傅里叶变换算法
  17. google v8 实战 -- 构建v8
  18. QT报错:Gtk-Message:Failed to load module :gail“
  19. ps图层的创建以及样式的添加删除等编辑
  20. 关于Lotus Notes限制Domino邮箱超出限额的用户收发邮件

热门文章

  1. SCI投稿经验分享:成功发表一篇中科院2区智能物联网类SCI真的不难
  2. [选择困难症]晚饭不知道吃什么的看过来 转盘选晚饭
  3. Python办公自动化实战 09 | Python-docx库:Python与Word的完美结合_ 如何在Word中生成表格?把Python办公自动化进行到底
  4. 利用Socket 本地和服务器之间通信(小白萌新适用之绝对能运行版)
  5. ES6 - let命令
  6. SX/LX GBIC/SFP/XFP等解释
  7. Ubuntu 16.04 + gmt 5.4 画某省地图(以安徽省为例)
  8. LPC1788FBD208笔记(002):SDRAM实验
  9. plink的文件格式
  10. 值得纪念、值得回忆的2014校招