在Java中,静态类的概念是在内部类的概念下引入的,内部类是为类中某些微妙功能专门设计的。
Java中的静态类仅允许在其他类下定义的内部类使用,因为不允许使用静态外部类,这意味着我们不能在外部类中使用static关键字。
静态类的定义与Java中的其他内部类相同,只是在其名称前面带有static关键字。这些类具有一些独特的特性,使其与其他非静态内部类有所不同,这些静态类的功能如下 -
静态类无需创建外部包含类的实例即可创建其自己的实例。
静态类仅在本质上是静态的时才可以访问外部包含类的成员(变量/方法)。这意味着静态嵌套类无法访问外部类的实例变量和方法。
public class StaticInnerClass { static String str = "hi all"; static class Inner { private int a = 10; public void demoMethod() { System.out.println("Hi to all guys!"); System.out.println("Can access properties of outer class as : "+ str); } } public static void main(String[] args) { Inner inObj = new Inner(); inObj.demoMethod(); System.out.println(inObj.a); } }
输出结果
Hi to all guys! Can access properties of outer class as : hi all 10