静态内部类可定义自己的静态变量和方法,能访问外部类的静态成员但不能访问非静态成员,其实例和静态成员通过“外部类名.内部类名”访问。

静态内部类可以定义自己的静态变量和方法
静态内部类本身是被 static 修饰的嵌套类,它不依赖外部类实例,因此具备独立性——就像一个顶级类那样,可以自由声明自己的静态成员。只要写在类体内部、方法之外,就能合法使用 static 修饰变量或方法。
语法上和顶级类完全一致
它的静态变量和静态方法声明方式与普通类无异,支持任意访问修饰符(public、private、protected 或包级默认),也能用 final 修饰:
- public static final String VERSION = "1.0";
- private static int counter = 0;
- protected static void init() { ... }
不能访问外部类的非静态成员
虽然它能定义自己的静态成员,但访问外部类时受限:只能读写外部类的 静态字段、调用外部类的 静态方法。如果试图引用外部类的实例变量或实例方法,编译器会报错。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
例如:
class Outer {<br>
private static String config = "dev";<br>
private String instanceName = "default";<br><br>
static class Inner {<br>
public static void print() {<br>
System.out.println(config); // ✅ 可访问 Outer 的静态字段<br>
// System.out.println(instanceName); // ❌ 编译失败<br>
}<br>
}<br>
}
实例化和调用方式
静态内部类及其静态成员都通过“外部类名.内部类名”来访问:
- 创建实例:Outer.Inner obj = new Outer.Inner();
- 访问静态变量:Outer.Inner.VERSION
- 调用静态方法:Outer.Inner.init()
不需要先创建 Outer 实例,也不涉及任何隐式外部类引用。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










