用对象动态填充 ArrayList [英] Dynamically fill in an ArrayList with objects

查看:26
本文介绍了用对象动态填充 ArrayList的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有抽象类 Human,它是由另外两个类 Student 和 Worker 扩展的.我正在尝试填写两个数组列表.Student 类型的 ArrayList 和 Worker 类型的 ArrayList 动态.

I have the abstract class Human, which is extendet by other two classes Student and Worker. I`m am trying to fill in two array lists. ArrayList of type Student and ArrayList of type Worker dynamically.

public abstract class Human {

private String fName = null;
private String lName = null;

public String getfName() {
    return fName;
}

public Human(String fName, String lName) {
    super();
    this.fName = fName;
    this.lName = lName;
}

public void setfName(String fName) {
    this.fName = fName;
}

public String getlName() {
    return lName;
}

public void setlName(String lName) {
    this.lName = lName;
}

}

public class Student extends Human {

private String grade = null;

public Student(String fName, String lName, String grade) {
    super(fName, lName);
    this.grade = grade;
}

public String getGrade() {
    return grade;
}

public void setGrade(String grade) {
    this.grade = grade;
}

}

public class Worker extends Human {

private int weekSalary = 0;
private int workHoursPerDay = 0;

public Worker(String fName, String lName, int weekSalary, int workHoursPerDay) {
    super(fName, lName);
    this.weekSalary = weekSalary;
    this.workHoursPerDay = workHoursPerDay;
}

public int getWorkSalary() {
    return weekSalary;
}

public void setWorkSalary(int workSalary) {
    this.weekSalary = workSalary;
}

public int getWorkHoursPerDay() {
    return workHoursPerDay;
}

public void setWorkHoursPerDay(int workHoursPerDay) {
    this.workHoursPerDay = workHoursPerDay;
}

public int moneyPerHour() {
    return weekSalary / (5 * workHoursPerDay);
}

}

public class Program {

public static void main(String[] args) {

    ArrayList<Student> student = new ArrayList<>();
    ArrayList<Worker> worker = new ArrayList<>();
}

}

推荐答案

当然,只需添加学生:

ArrayList<Student> students = new ArrayList<>(); // note: students
students.add(new Student("Jens", "Nenov", "A+"));

您可以为工人做几乎完全相同的事情.如果要使用循环,请执行以下操作:

You can do almost exactly the same thing for the workers. If you want to use a loop, do the following:

for (int i=0; i<50; i++) {
    students.add(new Student("Jens"+i, "Nenov", "A+"));
}

这将创建一个新学生列表,他们的名字后面有不同的数字.但是,如果您想要不同的数据,则该数据需要来自某个地方.例如,您可以从用户输入中获取数据:

This will create a list of new students with different numbers after their names. If you want different data, though, that data needs to come from somewhere. For example, you might get the data from user input:

Scanner input = new Scanner(System.in);
for ...
    System.out.println("Enter a first name:");
    String firstname = input.nextLine();
    ...
    students.add(new Student(firstname, lastname, grade));

这篇关于用对象动态填充 ArrayList的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆