JAVA ArrayList类调用另一个类
我是这方面的初学者,所以请原谅我的简单问题 我有一个日记课程,有两门课,日记和作业 日记是主要的课程,我需要打电话给Job来做这项工作 下面是这两个类别的代码。班级作业本身就可以很好地工作,我有问题打电话给班级作业来完成作业并返回 类作业添加3个字段 如何从日记中调用Job并返回存储在ArrayList中的结果JAVA ArrayList类调用另一个类,java,arraylist,call,Java,Arraylist,Call,我是这方面的初学者,所以请原谅我的简单问题 我有一个日记课程,有两门课,日记和作业 日记是主要的课程,我需要打电话给Job来做这项工作 下面是这两个类别的代码。班级作业本身就可以很好地工作,我有问题打电话给班级作业来完成作业并返回 类作业添加3个字段 如何从日记中调用Job并返回存储在ArrayList中的结果 import java.util.ArrayList; public class Diary { ArrayList<Job> jobs; String
import java.util.ArrayList;
public class Diary {
ArrayList<Job> jobs;
String jobName, jobDay, jobPriority;
public Diary() {
jobs = new ArrayList<Job>();
}
}
public class Job {
public Job(String jobName, String jobDay, String jobPriority) {
name = jobName;
day = jobDay;
priority = jobPriority;
}
/**
* return the varaibles
*/
public String getName() {
return name;
}
public String getDay() {
return day;
}
public String getPriority() {
return priority;
}
// print the job details
public String getJob() {
return name + " on a " + day + " this week and its priority is " + priority;
}
}
任何想法。您正在创建两个作业列表-一个用于整个对象,另一个仅用于构造函数。另外,让我们重命名您的列表:
import java.util.ArrayList;
public class Diary {
ArrayList<Job> jobs;
public Diary() {
jobs = new ArrayList<Job>();
}
}
首先你要记住的是Arraylist是一个对象,它的条目也是一个对象,所以你不能只对这些对象进行字符串化,除非它们有一个toString方法重写 假设你是在日记里给addJob打电话,你实际上并没有对你传递的信息做任何事情。您需要创建一个作业并将其添加到arraylist中
public void addJob(String jobName, String jobDay, String jobPriority) {
Job job = new Job(jobName, jobDay, jobPriority);
jobs.add(job);
}
然后我将创建一个新方法来获取所有作业并列出它们,使用您在job类中已经创建的getJob方法
public void listJobs(){
for(job : jobs) {
System.out.println(job.getJob());
}
}
有意义吗?您是否创建了作业实例?如果要对其调用方法,则必须有一个实例?
Job Job=new Job(名称、日期、优先级)代码>,然后您可以将其添加到ArrayList。您需要代码来编排对象。对创建作业进行编码并将其添加到列表中-顺便说一句。数组列表的变量名onejob令人困惑。谢谢,我按照你说的做了,但是Job类仍然没有被激活,我看不到它的输入框,而如果我单独运行Job类,我可以看到它们。旁注:你正在日记::日记()中定义一个新变量不是分配现有的实例变量谢谢danny,这很有帮助,它现在正在工作,我正在尝试打印整个数组内容,看看我是否能做到。嗨danny,再次需要帮助,请查看有关打印arrayList的更新问题,如果可以,请提供帮助。谢谢。由于空间限制,添加了新答案。谢谢Jason,我将尝试您的解决方案。您好,我再次尝试打印ArrayList的内容,但没有成功。我使用了下面的方法,但是他们一直给我内存位置的地址,而不是内容。我用过这样的东西,但似乎什么都不管用//System.out.println(Arrays.toString(jobs));System.out.println(jobs.get(0));System.out.println(jobs.toString()//System.out.println(jobs.toString(jobs))//System.out.println(“+jobs.get(0.jobName));您已经编写了一个方法来获取作业的字符串描述。它被称为getJob()。我用它来打印详细信息(参见我答案的最后代码部分)。
public class Diary {
...
public void printJobs {
for(Job job : jobs) {
System.out.println(job.getJob());
}
}
ArrayList<Job> jobs= new ArrayList<Job>()
Job job = new Job(someName, someDay, somePriority);
jobs.add(job);
public void addJob(String jobName, String jobDay, String jobPriority) {
Job job = new Job(jobName, jobDay, jobPriority);
jobs.add(job);
}
public void listJobs(){
for(job : jobs) {
System.out.println(job.getJob());
}
}