Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(Java)类的数组_Java_Arrays_Helper - Fatal编程技术网

(Java)类的数组

(Java)类的数组,java,arrays,helper,Java,Arrays,Helper,我这里有一门课,它按照一定的顺序给我一个日期 我要做的是为这个类创建一个包含四种日期的数组 1984年5月16日 1978年11月14日 1980年9月21日 1987年7月3日 如何在数组中匹配这些日期 public class DateArray { private String month; private int day; private int year; public DateArray(String n, int d, int y){ mon

我这里有一门课,它按照一定的顺序给我一个日期 我要做的是为这个类创建一个包含四种日期的数组

  • 1984年5月16日
  • 1978年11月14日
  • 1980年9月21日
  • 1987年7月3日
如何在数组中匹配这些日期

public class DateArray {

  private String month; 
  private int day; 
  private int year; 


  public DateArray(String n, int d, int y){
    month = n;
    day = d;
    year = y;
  }


  public String toString(){
    return month + "/" + day + "/" + year; 
  }
这就是我的
Main
现在的样子:

DateArray date = new DateArray("jan", 5, 20);
String s =  date.toString();

System.out.println(s);

DateArray [] dates = new DateArray[3];


for(int i =0; i<dates.length; i++)
{
    System.out.println(dates[i]);
}
DateArray date=新的日期数组(“1月”,5日,20日);
字符串s=date.toString();
系统输出打印项次;
DateArray[]日期=新的DateArray[3];

对于(inti=0;i,您在代码示例中没有为数组元素设置任何值

dates[0] = new DateArray(month, day, year);

对于每个元素。此外,我建议将非数组的类型命名为“Array”可能会令人困惑。

您的代码示例中没有为数组元素设置任何值。您需要类似于

dates[0] = new DateArray(month, day, year);

对于每个元素。另外,我建议命名一个不是数组的类型“Array”可能会令人困惑。

首先,根据您预期的结果,您的
DateArray.toString()
应该类似于1

然后您可以创建和显示数组,如下所示

public static void main(String[] args) {
    DateArray[] dates = new DateArray[] { new DateArray("May", 16, 1984), 
            new DateArray("November", 14, 1978),
            new DateArray("September", 21, 1980), new DateArray("July", 3, 1987) };
    for (DateArray da : dates) {
        System.out.println(da);
    }
}
我得到(按要求)


1如果您认为自己正确重写了超类型方法,但实际上没有,则重写注释可以帮助您。我建议您始终使用它。

首先,根据您的预期结果,您的
DateArray.toString()
应该类似于1

然后您可以创建和显示数组,如下所示

public static void main(String[] args) {
    DateArray[] dates = new DateArray[] { new DateArray("May", 16, 1984), 
            new DateArray("November", 14, 1978),
            new DateArray("September", 21, 1980), new DateArray("July", 3, 1987) };
    for (DateArray da : dates) {
        System.out.println(da);
    }
}
我得到(按要求)


1如果您认为覆盖超类型方法是正确的,但实际上不是,则覆盖注释可以帮助您。我建议您始终使用它。

所以您是说我应该首先设置数组,例如DateArray[]date=nul;……然后从我的第一个日期开始,例如dates[0]=new DateArray(“月、日、年”)然后继续进行下一步?否。首先,将数组设置为“null”(两个ells)意味着您没有数组元素,因此尝试对其进行索引将导致“NullPointerException”(NPE)。您必须使用Java语言规范(JLS)中描述的数组初始化表达式或“new Foo[n]初始化数组'就像在您的示例中一样。如果后者有n个数组元素,则每个元素都为'null'。然后将每个元素设置为所需的值。我强烈建议您阅读并学习Java教程中关于此问题的内容。因此,您是说我应该首先将数组设置为例如DateArray[]date=nul;…..,然后从我的第一个日期开始,例如dates[0]=新的DateArray(“月、日、年”),然后继续执行下一个?否。首先,将数组设置为“null”(两个ells)意味着您没有数组元素,因此尝试对其进行索引将导致“NullPointerException”(NPE)。您必须使用Java语言规范(JLS)中描述的数组初始化表达式或“new Foo[n]来初始化数组'就像在您的示例中一样。如果后者得到n个数组元素,则每个元素都为'null'。然后将每个元素设置为所需的值。我强烈建议您阅读并学习有关此问题的Java教程。