关于java内部类(静态内部类和普通内部类)
来源:互联网 发布:上网监控软件下载 编辑:程序博客网 时间:2024/05/22 03:37
java 静态内部类
只有在是静态内部类的情况下才能把static修复符放在类前,其他任何时候static都是不能修饰类的。
- //定义张三这个人
- Person p = new Person("张三");
- //设置张三的家庭信息
- p.setHome(new Person.Home("上海","021"));
它可以脱离外部类存在,也就是说我们仍然可以通过new Home()声明一个Home对象,只是需要导入“Person.Home”而已
那静态内部类与普通内部类有的区别
(1)静态内部类不持有外部类的引用
在普通内部类中,我们可以直接访问外部类的属性、方法,即使是private类型也可以访问,这是因为内部类持有一个外部类的引用,可以自由访问。而静态内部类,则只可以访问外部类的静态方法和静态属性(如果是private权限也能访问,这是由其代码位置所决定的),其他则不能访问。
(2)静态内部类不依赖外部类
普通内部类与外部类之间是相互依赖的关系,内部类实例不能脱离外部类实例,也就是说它们会同生同死,一起声明,一起被垃圾回收器回收。而静态内部类是可以独立存在的,即使外部类消亡了,静态内部类还是可以存在的。
(3)普通内部类不能声明static的方法和变量
普通内部类不能声明static的方法和变量,注意这里说的是变量,常量(也就是final static修饰的属性)还是可以的,而静态内部类形似外部类,没有任何限制。
(4)实例化一个非静态的内部类的方法:
a. 先生成一个外部类对象实例
OutClassTest oc1 = new OutClassTest();
b. 通过外部类的对象实例生成内部类对象
OutClassTest.InnerClass no_static_inner = oc1.new InnerClass();
1 0
- 关于java内部类(静态内部类和普通内部类)
- 关于java内部类(静态内部类和普通内部类)
- 静态内部类和普通内部类
- 关于静态内部类和内部类
- Java 内部类(成员内部类、局部内部类、静态内部类和匿名内部类)
- java内部类和静态内部类
- 静态内部类与普通内部类
- Java静态内部类,普通内部类的理解
- java静态内部类与普通内部类
- java静态内部类与普通内部类
- 普通内部类和静态内部类的一点区别
- 静态内部类和普通内部类的区别
- 静态内部类和普通内部类 浅析
- 静态内部类类和普通内部类(2)
- 普通内部类和静态内部类总结
- 关于普通内部类,局部内部类,匿名内部类
- Java静态内部类、匿名内部类、成员式内部类和局部内部类
- java成员内部类、局部内部类、静态内部类和匿名内部类
- 【USACO5.1.3】乐曲主题 动态规划
- Android异步任务类的运行示例
- dcloud混合开发-修改用户头像支持截图的解决方案
- 外观模式
- Qt程序设置整个软件字体类型和字体大小
- 关于java内部类(静态内部类和普通内部类)
- Linux设置静态IP,掩码,网关,DNS服务器
- Standford 机器学习—第三讲 Logistic Regression 逻辑回归
- Java进阶(五十五)-Java Lambda表达式入门
- ArcGIS锁
- 实时计算平台设计
- mysql-cluster 环境配置
- Atlas-手淘组件化框架(阿里巴巴开源框架)
- Java内部类(成员内部类、静态内部类、局部内部类、匿名内部类)小结