是的,Java内部类可以定义构造器。内部类的构造器与外部类的构造器类似,但它们需要访问外部类的实例变量和方法。这里有一个简单的例子:
public class OuterClass { private int outerData; public OuterClass(int outerData) { this.outerData = https://www.yisu.com/ask/outerData;"hljs">int innerData) { this.innerData = https://www.yisu.com/ask/innerData;"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
方法来显示外部类和内部类的数据。