Java为什么使用静态内部类?
来源:互联网 发布:淘宝仓库配货员招聘 编辑:程序博客网 时间:2024/04/30 07:56
今天看项目,发现一块很奇怪的代码。
public class Outer{
int id;
public static class Inner{
int id;
}
}
不是说Java一个文件里,只能有一个声明为public的类吗?而且类名必须和文件名相同。
这就是个例外——静态内部类。
java允许我们在一个类里面定义静态类。比如内部类(nested class)。把nested class封闭起来的类叫外部类。在java中,我们不能用static修饰顶级类(top level class)。只有内部类可以为static。
静态内部类和非静态内部类之间到底有什么不同呢?下面是两者间主要的不同。
(1)内部静态类不需要有指向外部类的引用。但非静态内部类需要持有对外部类的引用。
(2)非静态内部类能够访问外部类的静态和非静态成员。静态类不能访问外部类的非静态成员。他只能访问外部类的静态成员。
(3)一个非静态内部类不能脱离外部类实体被创建,一个非静态内部类可以访问外部类的数据和方法,因为他就在外部类里面。
基于上面的讨论,我们可以通过这些特性让编程更简单、有效。
0 0
- Java为什么使用静态内部类?
- Java非静态内部类为什么不能有静态成员
- Java非静态内部类为什么不能有静态成员
- java静态内部类和匿名内部类的使用
- Java为什么要使用内部类?
- Java为什么要使用内部类?
- Java中为什么要使用内部类
- Java为什么要使用内部类?
- Java中为什么要使用内部类
- Java中为什么要使用内部类
- Java为什么要使用内部类?
- Java为什么要使用内部类?
- Java中为什么要使用内部类
- Java为什么要使用内部类
- 为什么要使用java内部类
- java 静态内部类的使用
- java 静态内部类的使用
- java 静态内部类的使用
- springmvc配置文件
- [个人博客搬运][Java]别写排序了,用TreeSet
- FineReport——获取控件值和单元格值
- Linux下安装和操作sql数据库
- Spinner
- Java为什么使用静态内部类?
- [javascript权威指南][阅读笔记]四
- github books
- 杭电ACM 1001
- 随机梯度下降和批量梯度下降的原理和区别
- Android app设置全屏显示
- Oracle的同义词(synonyms)
- SqlServer使用top 100 PERCENT 无法排序的问题
- Mac 修改MYSQL 的默认编码格式 解决中文插入MySql里乱码