在 Java 中,内部类的属性赋值方式取决于该属性的访问修饰符、内部类的类型(非静态或静态),以及赋值的时机。以下是几种常见的方式:
1. 通过构造方法赋值
class Outer {class Inner {private String name;// 构造方法赋值public Inner(String name) {this.name = name;}public void print() {System.out.println("Name: " + name);}}public static void main(String[] args) {Outer outer = new Outer();Inner inner = outer.new Inner("张三");inner.print(); // 输出:Name: 张三}
}
2. 通过 setter 方法赋值
class Outer {class Inner {private int age;public void setAge(int age) {this.age = age;}public void print() {System.out.println("Age: " + age);}}public static void main(String[] args) {Outer outer = new Outer();Inner inner = outer.new Inner();inner.setAge(25);inner.print(); // 输出:Age: 25}
}
3. 直接访问(前提是属性是 public)
class Outer {class Inner {public String message;}public static void main(String[] args) {Outer outer = new Outer();Inner inner = outer.new Inner();inner.message = "Hello, world!";System.out.println(inner.message); // 输出:Hello, world!}
}
4. 赋值给静态内部类的属性
class Outer {static class Inner {private int number;public void setNumber(int number) {this.number = number;}public void print() {System.out.println("Number: " + number);}}public static void main(String[] args) {Inner inner = new Inner();inner.setNumber(100);inner.print(); // 输出:Number: 100}
}
总结:
- 非静态内部类 需要通过外部类对象创建,并可以使用 构造方法、setter 方法或直接访问(public 时) 赋值。
- 静态内部类 可以直接创建对象,不依赖外部类实例,赋值方式与普通类相同。