将对象存储到数组帮助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
类,然后使用输入值的set方法UserInput
:是我可以选择删除、显示和添加约会的班级李>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顺便说一句,最好以更具描述性的方式重命名变量。也就是说,有些人可能很难知道“对象”实际上是约会对象。还有一个叫做“数组”的变量,数组是什么?是的,这是新手需要记住的。顺便说一下,谢谢。