public class Person
{
private class Date
{
public Date(int month, int day, int year)
{
...
}
}
private String name;
private Date birthDate;
public Person(String name, Date birthDate)
{
...
}
}
上の図には、外部クラス Person とプライベート内部クラス Date があります。Person オブジェクトのコンストラクターは、引数の 1 つとして Date を受け取る必要があります。
public class Test
{
public static void main(String[] args)
{
Person testPerson = new Person("Mr. Sandman", new Date(1, 1, 1970));
}
}
しかし、別の「テスト」ファイル Test.java (上記) (Person.java ファイルと同じフォルダーにあります) で Person オブジェクトを作成しようとすると、エラーが発生します。
エラーは次のとおりです:「エラー: Person(String,Date) に適したコンストラクターが見つかりません」(コンパイラーは、testPerson をインスタンス化した行をエラーの原因として参照します。)
質問: 私は何を間違っていますか? また、Person オブジェクトを作成し、Date オブジェクトを Person のコンストラクターに渡すにはどうすればよいですか? (これは、Date が Person のプライベートな内部クラスである場合でも可能ですか?)