静态内部类(public static class)和普通内部类(public class)的区别

 

 

 

 

public static class和public class的区别

 

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

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

 

java中普通的顶级类是不能使用static关键字修饰的。

只有内部类可以使用static修饰,或者不使用staitc关键字修饰。

即:

// 顶层类A不能用static修饰
public class A{
   
   // 普通内部类B, 可以不用static修饰
   public class B{    
   }

   // 普通内部类C, 也可以用static修饰
   public static class C{    
   }

}

 

 

普通的内部类(public class),和static内部类(public static class)区别?

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();

发布了110 篇原创文章 · 获赞 142 · 访问量 110万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览