将对象存储到数组帮助Java

将对象存储到数组帮助Java,java,arrays,Java,Arrays,我正在尝试做一个约会项目,你可以添加,显示,删除约会 我有三门课:UserInput,Appointment,Planner UserInput:只是让用户输入任何内容(int,double,等等) 约会:已设置和获取方法。两个构造函数,toString,以及一个方法,该方法使用UserInput类,然后使用输入值的set方法 Planner:是我可以选择删除、显示和添加约会的班级 我创建了一个Appointment的数组对象,在planner类中有20个插槽。private Appoint

我正在尝试做一个约会项目,你可以添加,显示,删除约会

我有三门课:
UserInput
Appointment
Planner

  • UserInput
    :只是让用户输入任何内容(
    int
    double
    ,等等)
  • 约会
    :已设置和获取方法。两个构造函数,
    toString
    ,以及一个方法,该方法使用
    UserInput
    类,然后使用输入值的set方法
  • Planner
    :是我可以选择删除、显示和添加约会的班级
我创建了一个
Appointment
的数组对象,在planner类中有20个插槽。
private Appointment[]array=new Appointment[20]

我面临的问题是向数组中添加对象。我尝试为构造函数中的一些插槽分配默认值。我显示了阵列,它工作了。现在我创建了一个方法来调用
inputappoiment
(要求用户输入然后调用set方法的类)方法,并分配曾经输入的内容

这个方法看起来像

public void addAppointment() {
    Appointment object = new Appointment();
    object.inputAppoitment();
    array[5] = object;
}
输入软膏法

public void inputAppoitment() {
    UserInput Object = new UserInput();

    System.out.println("Enter The Month");
    setMonth(Object.getString(3, 3));
    System.out.println("Enter The Day");
    setDay(Object.getInt(1, 31));
    System.out.println("Enter The Hour");
    setHour(Object.getInt(1, 24));
    System.out.println("Enter The Minute");
    setMinute(Object.getInt(1, 59));
    System.out.println("Enter A Short Description");
    setMessage(Object.getString(5, 40));

}
我运行了该方法,然后显示了数组,但没有添加任何内容! 我可能说得太复杂了,但如果你想说得更清楚,我很乐意解释

更新: 我试着从main而不是我的菜单循环调用这个方法,它似乎起作用了。 这就是我的菜单

while (true) {
        System.out.println("\nPlease Choose.");
        System.out.println("A)dd Appointment , D)elete Appointment , L)ist Appointment , E)xit");
        char userChoice = UserInput.getChar();
        Planner obj = new Planner();
        if (userChoice == 'A' || userChoice == 'a') {
            obj.addAppointment();
        }
        if (userChoice == 'D') {

        }
        if (userChoice == 'L') {
            obj.listAppointment();
        }
        if (userChoice == 'E') {
            break;
        }

    }

谢谢大家。

我建议您使用java swing。它基本上只是制作UI的拖放操作,没有它就很难制作UI。转到阵列

        Integer[] myArray = new Integer[20];
但我建议你用列表代替

          ArrayList myList = new ArrayList();
让我给你一些提示。数组类似于奥利奥包。每个oreo(而不是整数、字符串或其他类型)都有它们进入的插槽。一个奥利奥包装只能装这么多奥利奥实例化(创建)数组时,必须指定数组中的对象数量。列表就像Mary Popins购物袋一样。你可以放桔子、奥利奥、苹果和水。你也可以把你想要的东西放进袋子里。如果您需要,您可以指定任何级别的细节您想要在包(列表),所以

而另一类,

package test;

import java.util.ArrayList;

public class Appointment {

private ArrayList myList = new ArrayList();
String Appointment;



public String getAppointment() {
return Appointment;
}




public void setAppointment(String appointment) {
   Appointment = appointment;
}




public ArrayList getMyList() {
    return myList;
}




public void setMyList(ArrayList myList) {
    this.myList = myList;
}




public void addToMyList(String x){
    this.myList.add(x);
}

}

相信我,伙计。学习java swing。然后学习实例化一个对象意味着什么。然后学习列表和数组之间的区别。没有人能在一夜之间学会编程。我们花了6个月到几年时间才真正学会java。

您可以使用Arraylist概念将对象添加到数组中。 列表=新的ArrayList(); 约会对象=新约会()

使用列表方法,您可以根据需要添加、删除或检索值。
列表。添加(对象)

问题在于对象的范围

public void addAppointment() {
     // this would be unreferenced when the method finishes
    Appointment object = new Appointment();
    object.inputAppoitment();
    array[5] = object; // so now array[5] refers to object;
} // object is no longer in scope, array[5] no longer has a reference to it
我会像这样重写您的代码:

public Appointment addAppointment() {
    // we have to access the reference when the method returns
    Appointment object = new Appointment();
    object.inputAppoitment();
    return object; // we return the reference to object and asign it into array[5]
}
array[5] = addAppointment();
我们这样称呼它:

public Appointment addAppointment() {
    // we have to access the reference when the method returns
    Appointment object = new Appointment();
    object.inputAppoitment();
    return object; // we return the reference to object and asign it into array[5]
}
array[5] = addAppointment();

请在这里发布一个。数组[5]
是什么类型的变量?为什么要将约会对象存储在数组中?请发布你的
InputAppoint()
方法和
Appoint
类代码。@VikrantKashyap for array[5]我刚才正试图将对象存储在该插槽中。array是我声明的数组对象。@Heb23你能发布数组声明吗?我确实尝试了arraylist,但问题似乎不是来自我的方法,因为我从main运行了该方法,它工作了,但我从菜单循环运行了它,它不工作。我的菜单代码在上面。@bob dude java swing与c的winforms相比如何?但愿我知道。我是一名java、python和mysql程序员。我尝试过,如果我从main调用like it,那么它会工作,比如调用方法,然后调用list方法,以确保它能够正常工作。但如果我运行菜单,然后选择一个调用该方法的方法,然后调用L,以确保它存储到数组中,但它不起作用。@Heb23顺便说一句,最好以更具描述性的方式重命名变量。也就是说,有些人可能很难知道“对象”实际上是约会对象。还有一个叫做“数组”的变量,数组是什么?是的,这是新手需要记住的。顺便说一下,谢谢。