关于静态内部类和普通内部类的访问权限问题

先定义一下直接访问:类名.方式访问静态属性不算直接访问,直接用属性名访问才叫直接访问。

静态内部类可以有实例属性和静态属性。能直接访问外部类的静态属性,不能直接访问外部类的成员属性。因为静态内部类可以直接创建对象,而不用先创建外部类对象。这样有可能外部类并没有创建对象,成员属性自然也就无法访问。
外部类无法直接访问静态内部类的属性,因为创建了外部类,静态内部类不一定有创建对象。

普通内部类只能有成员属性,不能有静态属性。
因为有外部类对象的情况下不一定创建了内部类对象,所以外部类对象不可以直接访问内部类的属性,而内部类可以直接访问外部类的成员属性和静态属性。

静态内部类和外部类差不多,权限等级等都一样。

对于那种只对某个类有用的一些类,就没必要创建成外部类,可以创建成内部类。

你可能感兴趣的:(java,开发语言)