使用Java将对象添加到数组中

时间:2016-02-13 00:42:04

标签: java arrays oop

我正在尝试让用户输入日期来存储它,但我似乎无法理解它。

public class Planner {
private int MaxEvents = 10;
private int numEvents=0;
OurDate a = new OurDate();
Event events []= new Event[MaxEvents];

public void enterDate(){
    OurDate date = new OurDate();
    Scanner input = new Scanner (System.in);
    System.out.print("Enter Date: \nEnter day: ");
    int day=input.nextInt();
    System.out.print("Enter month: ");
    int month=input.nextInt();
    System.out.print("Enter year: ");
    int year=input.nextInt();
    date.setDay(day);
    date.setMonth(month);
    date.setYear(year);
    events[numEvents] = date;
    numEvents++;

}

当我尝试将创建的对象添加到数组时出现问题。

这是另一个供setDay,setMonth,setYear参考的类:     公共课OurDate {     私人日;     私人int月;     private int year;

public OurDate(int day, int month, int year){
    this.day = day;
    this.month = month;
    this.year = year;
}
public OurDate() {
    this.day=1;
    this.month = 1;
    this.year = 2010;
}
public void setDay(int day) {
    if(day>=1 && day <=31){
        this.day = day;
    }else if(day>31){
        this.day = 1;
    }
}
public int getDay() {
    return day;
}
public int getMonth() {
    return month;
}
public void setMonth(int month) {
    if(month >=1 && month<=12)
        this.month = month;
}
public int getYear() {
    return year;
}
public void setYear(int year) {
    this.year = year;
}


}

1 个答案:

答案 0 :(得分:2)

您无法将类型为OurDate的对象添加到数组events,因为该数组需要在其声明中提到的Event类型的对象:

Event events []= new Event[MaxEvents];

根据OurDate类的代码,它不会扩展Event,因此无法将这样的对象添加到数组中。

你可以改变你的数组来取这样的OurDate对象:

OurDate[] dates = new OurDate[MaxEvents];

或者您可以创建一个新的Event对象并在其中设置OurDate对象 - 如下所示:

Event event = new Event();
event.setDate(date);
events[numEvents] = event;