说说 Java 的静态内部类
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 的静态内部类相关推荐
- java的静态内部类
只是一个简单的记录.因为一直排斥java这个东西.java跟c++比是很不错的一个语言,至少内存管理这么麻烦的东西不用操心了.但是和不断崛起的脚本语言比起来,效率差的太多.无论如何做android还是 ...
- java 反射静态内部类_android-反射的使用(反射静态内部类、非静态内部类、匿名内部类等)...
直接上代码 com.**.routerdemo 替换成包名 import java.lang.reflect.Constructor; import java.lang.reflect.Field; ...
- java 中静态内部类与普通内部类的区别
1.静态内部类与普通内部类的区别 1)普通内部类不能脱离外部类被创建:静态内部类可以脱离外部类被创建. 2)普通内部类可访问外部类的静态和非静态成员变量和方法(包括私有属性),因其在外部类内部:静态内 ...
- java 内部静态类如何使用_如何应用Java的静态内部类?
与内部类相似,静态内部类指在一个类的内部包含有另外一个或者多个静态类.例如: public class OuterClass { ... static class StaticInnerClass1 ...
- 关于“java中静态内部类的设计意图”的理解
欢迎扫描二维码关注公众号<Android面试专栏>,不定期发布面试题干货分析!! 内部类 内部类,即定义在一个类的内部的类.为什么有内部类呢? 我们知道,在java中类是单继承的,一个类只 ...
- Java中静态内部类和非静态内部类的区别
在一个类中定义的类叫内部类,内部类可以为静态内部类(用static关键字修饰),也可以为非静态内部类(普通类). 区别一: 静态内部类可以有静态成员变量和方法,非静态内部类只能有非静态 ...
- Java中静态内部类和非静态内部类有什么区别?
Java中的内部类是在Jdk1.1版本之后增加的,内部类是Java语言中一个比较重要的概念,如果能把内部类运用好,那么会明显增强Java程序的灵活性. 要想清楚static内部类和非static内部类 ...
- 静态内部类 java 1614958017
静态内部类 java 1614958017 静态内部类 定义静态内部类 内部的类与外面的一样 普通的类可以有的它都可以有 关注,如保调用静态内部类的外部内的成员属性 使用静态内部类
- Java面试题及答案整理( 2022最新版,持续更新)
发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ Java面试永远是程序员迈向成功的第一个门槛,想要面试成功,各种面试题的洗礼是必不可少 ...
最新文章
- Linux脚本实战之猜数字
- 分布式版本控制系统Git的安装和使用
- 构造器是什么?(Java篇)
- 第 11 个“世界备份日”刚过,《Veeam 2021 数据保护报告》为你解读全球数据备份现状
- 【Mockplus教程】界面闪烁花屏怎么办?
- RabbitMQ学习笔记-RabbitMQ简介
- Android Camera架构浅析
- 1.12 Linux查看用户信息
- Windows7自带截图工具无法保存图片的修复办法
- AutoCAD Civil 3D-部件-部件编辑器自定义边坡与材质
- 63.QT-重写QStackedWidget模仿iphone的home界面,实现左右滑动
- 大疆2022 “拓疆者” 校园招聘
- helm模板开发-流程控制、作用域、循环
- 怎么恢复苹果手机通讯录
- Lisa随手记 1.7 发布
- python 傅里叶变换_理解快速傅里叶变换算法
- google v8 实战 -- 构建v8
- QT报错:Gtk-Message:Failed to load module :gail“
- ps图层的创建以及样式的添加删除等编辑
- 关于Lotus Notes限制Domino邮箱超出限额的用户收发邮件
热门文章
- SCI投稿经验分享:成功发表一篇中科院2区智能物联网类SCI真的不难
- [选择困难症]晚饭不知道吃什么的看过来 转盘选晚饭
- Python办公自动化实战 09 | Python-docx库:Python与Word的完美结合_ 如何在Word中生成表格?把Python办公自动化进行到底
- 利用Socket 本地和服务器之间通信(小白萌新适用之绝对能运行版)
- ES6 - let命令
- SX/LX GBIC/SFP/XFP等解释
- Ubuntu 16.04 + gmt 5.4 画某省地图(以安徽省为例)
- LPC1788FBD208笔记(002):SDRAM实验
- plink的文件格式
- 值得纪念、值得回忆的2014校招