博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对于Java静态内部类的理解
阅读量:6578 次
发布时间:2019-06-24

本文共 1002 字,大约阅读时间需要 3 分钟。

之前一直在微软.Net平台下开发,在C#中是不能实例化的,而且它的所有成员都要是静态的。我们一般把静态类用作工具类,不需要实例化,直接使用它的属性与方法,整个域中静态类是唯一的

开始用Java后发现Java的静态类一般使用在某个类的内容,简称静态内部类。而且这种类可以像非静态类一样包含各种非静态成员,同时可以实例化。直接颠覆了我对静态类的认知。

下面我对Java的静态内部类和非静态内部类进行对比:

public class outClass {    public static class innerClass{        public innerClass(){            System.out.println("innerClass");        }    }    public static void main(String[] args)     {         //outClass a = new outClass();        innerClass b = new innerClass();        innerClass c = new innerClass();            }    }
public class outClass {    public class innerClass{        public innerClass(){            System.out.println("innerClass");        }    }    public static void main(String[] args)     {         outClass a = new outClass();        innerClass b = a.new innerClass();        innerClass c = a.new innerClass();            }    }

总结:

通过代码我们发现,非静态内部类是附属在外部类对象上的,需要先实例化一个外部类的对象,通过外部类对象才能实例化非静态内部类;而静态内部类可以看做是直接附属在外部类上的,这个静态代表附属体是外部类,而不是外部类实例;外部类在进程中是唯一的,而静态内部类不需要唯一,可以生成多个实例。

转载地址:http://wiyno.baihongyu.com/

你可能感兴趣的文章
安卓开启多个服务
查看>>
设置分录行按钮监听事件
查看>>
C Primer Plus 第5章 运算符、表达式和语句 5.2基本运算符
查看>>
蓝牙手柄按键码
查看>>
java并发库之Executors常用的创建ExecutorService的几个方法说明
查看>>
Spring框架错误之org.springframework.beans.factory.BeanCreationException
查看>>
23种设计模式(1):单例模式
查看>>
socket 编程入门教程(五)UDP原理:4、“有连接”的UDP
查看>>
Jquery获取iframe中的元素
查看>>
Laravel 学习笔记5.3之 Query Builder 源码解析(下)
查看>>
Struts2简单入门实例
查看>>
2012CSDN年度博客之星评选http://vote.blog.csdn.net/item/blogstar/xyz_lmn
查看>>
BZOJ 4037 [HAOI2015]数字串拆分 ——动态规划
查看>>
Craking the Interview-1
查看>>
POJ 3468 A Simple Problem with Integers(线段树,区间更新,区间求和)
查看>>
CCF NOI1150 确定进制
查看>>
SpringBoot实战总汇--详解
查看>>
2018年7月1日笔记
查看>>
尝试使用iReport4.7(基于Ubuntu Desktop 12.04 LTS)
查看>>
安装GIT(基于Ubuntu Desktop 12.04 LTS)
查看>>