美文网首页java
新学的java知识,静态类,使用static关键字修饰的类(pu

新学的java知识,静态类,使用static关键字修饰的类(pu

作者: 坚强一点 | 来源:发表于2016-09-09 10:54 被阅读2457次

    新学的java知识,静态类,使用static关键字修饰的类(public static class)

    今天在看别人源码的时候看到了一个新知识。使用static关键字修饰的类。

    java中普通的顶级类是不能使用static关键字修饰的。只有内部类可以使用static修饰,也可以不使用staitc关键字修饰。

    所以 普通的 不使用 static修饰的内部类,和使用static修饰的内部类有什么区别呢?

    1、静态内部类(static修饰的内部类)不保有对外部内的引用,所以静态内部类只能访问外部类的静态属性或方法。并且在初始化的时候可以单独存在,例如:

    StaticClass staticClass =  new StaticClass();

    或者:

    Users.StaticClass staticClass2 = new Users.StaticClass()

    二种方式初始化,建议使用第二种初始化方法,比较清晰。

    2、普通内部类保有对外部类的引用,所以普通静态类不能独立存在,初始化的时候必须通过外部类的实例。所以普通内部类可以直接方法外部类的普通属性和函数(包括私有的属性和函数)同时也能访问外部类的静态属性和函数。普通内部类的实例化如下:

    Users.CommonClass commonClass = new Users().new CommonClass();

    或者:

    Users users = new Users();

    Users.CommonClass commonClass2 = users.new CommonClass();

    相关文章

      网友评论

        本文标题:新学的java知识,静态类,使用static关键字修饰的类(pu

        本文链接:https://www.haomeiwen.com/subject/dqueettx.html