【发布时间】:2013-03-23 03:06:27
【问题描述】:
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 对象的构造函数应将 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 的私有内部类,这是否可能?)
【问题讨论】:
-
为什么
Date必须是Person的内部类?这似乎不合逻辑。将Date移到Person之外,它会解决你所有的问题。 -
大概因为你不能像这样实例化一个
Person.Date对象,那实际上是一个不同的Date类在你的Test类中使用...... -
@miorel 它必须是一个内部类,因为这是我的家庭作业指定的。 :P
标签: java constructor private inner-classes