好的,所以我正在做一个收集员工信息的程序,并根据用户想要的方式对它们进行排序。我已成功创建了带有循环的数组来存储此信息,但是赋值要求我使用带有两个子类的抽象类来存储员工信息。所以我的问题是,如何将数据移动到这些抽象类中以准备排序和填充。
import java.util.Scanner;
import java.util.ArrayList;
public class Assignment55_000848913
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
ArrayList<String> Names = new ArrayList<String>();
ArrayList<String> Department = new ArrayList<String>();
ArrayList<String> Designation = new ArrayList<String>();
ArrayList<Float> Salary = new ArrayList<Float>();
String Continue = "y";
//******************************************************//
do
{
System.out.println("Enter Employee Name: ");
String x = in.next();
Names.add(x);
System.out.println("Enter Employee Designation ('temporary or permanent'): ");
String y = in.next();
Designation.add(y);
System.out.println("Enter Employee Department: ");
String z = in.next();
Department.add(z);
System.out.println("Enter Employee Salary: ");
float i = in.nextFloat();
Salary.add(i);
System.out.println("Do you wish to add another employee? ('y'/'n'): ");
Continue = in.next();
}
while(Continue.equals("y"));
}
public abstract class Employee
{
////////
}
public class TempEmployee extends Employee
{
/////
}
public class PermEmployee extends Employee
{
/////
}
}
答案 0 :(得分:0)
尝试在抽象类的内部存储/创建列表(使用适当的访问器),而不是在主类中。这样,您可以创建临时员工或perm员工对象,然后将输入信息直接存储在您实例化对象时创建的列表中,该列表将存储在员工类中。希望这样帮助!
答案 1 :(得分:0)
您需要将公共信息:name
,department
,salary
存储为抽象类中的字段。然后,当您获得输入数据时,根据输入TempEmployee
的内容创建新的PermEmployee
或designation
。您可以将所有这些员工对象添加到ArrayList<Employee>
,因为PermEmployee
和TempEmployee
都继承自Employee
。
答案 2 :(得分:0)
将所有字段移动到Employee class
并添加一些方法用于排序和此类中的其他内容。你可以将这些方法改为抽象,在这种情况下你必须在子类中提供定义。
创建两个子类,如TempEmployee
和PermEmloyee
继承Employee类。
实际上有很多方法可以做到这一点。