是的,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
方法來顯示外部類和內部類的數據。