是的,Java内部类可以定义构造器。内部类的构造器与外部类的构造器类似,但它们需要访问外部类的实例变量和方法。这里有一个简单的例子:
public class OuterClass {
private int outerData;
public OuterClass(int outerData) {
this.outerData = outerData;
}
class InnerClass {
private int innerData;
public InnerClass(int innerData) {
this.innerData = innerData;
}
public void display() {
System.out.println("Outer data: " + outerData);
System.out.println("Inner data: " + innerData);
}
}
public static void main(String[] args) {
OuterClass outer = new OuterClass(10);
OuterClass.InnerClass inner = outer.new InnerClass(20);
inner.display();
}
}
在这个例子中,OuterClass
有一个构造器,它接受一个 int
类型的参数。InnerClass
也有一个构造器,它接受一个 int
类型的参数。在 main
方法中,我们创建了一个 OuterClass
的实例,并使用这个实例创建了一个 InnerClass
的实例。然后我们调用 display
方法来显示外部类和内部类的数据。