我一直在尝试创建一个小程序,提示用户输入员工姓名和薪水,将其添加到 arrayList,然后在屏幕上显示选项(例如 0:退出,1:添加,2:显示),读取输入,然后根据输入进行处理。显示只是(例如姓氏:Smith 薪水:14000 英镑。只需要一些帮助来指引我正确的方向。我目前有 3 个类(class) Employee、Employee List 和 Employee测试。
此类提示用户输入。
import java.util.Scanner;
public class Employee {
private String Last_Name;
private int Salary;
public Employee(){
Scanner inputValues = new Scanner(System.in);
System.out.print("Enter employee last name: ");
Last_Name = inputValues.next();
System.out.print("Enter Employee Salary: " + "£");
Salary = inputValues.nextInt();
}
public void Display(){
System.out.printf("Name: " + Last_Name + " " + "Salary: " + Salary);
System.out.println("\n");
}
}
这个类应该将员工添加到数组列表中,但我不确定我是否正确地做了。
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class EmployeeList extends Employee{
private List <Employee> employee = new ArrayList<Employee>();
public EmployeeList(Employee person) {
employee.add(person);
}
public void DisplayEmployees(){
System.out.println("Employee:" + employee.size());
displayList(employee);
}
public static void displayList(List employee) {
}
}
这里是main方法所在的地方
import java.util.Scanner;
public class EmployeeTest {
public static void main(String[] args) {
Employee employee = new Employee();
employee.Display();
EmployeeList empList = new EmployeeList(employee);
empList.DisplayEmployees();
Scanner scanner = new Scanner(System.in);
System.out.println("0: quit, 1: add, 2: display");
String employees = scanner.next();
/* if (employees.equals("1")){
//not sure how to go back to displaying the user prompts
break;
} */
}
}
最佳答案
我能想到的几个小技巧:
-
EmployeeList
不应扩展Employee
. OOP 的主要规则是,如果 B 是一个 A,类 A 扩展类 B。这里显然不是这种情况 - employeeList 不是雇员,它是雇员列表(在我看来你不不需要为此上课,只需List<Employee>
) 我会将逻辑与数据分开。含义 -
Employee
类应该只保存员工的数据,而不是处理扫描和获取用户的输入。构造函数在我看来应该很简单,类似于:public Employee(String name, int salary) { this.name = name; this.salary = salary; }
获取数据的逻辑应该在这个类之外,或者在
EmployeeHandler
中。或主要本身。由于您将它放在员工内部,因此当一些逻辑在员工中而另一些在主体中时,您将难以继续。- 高级代码应该是这样的(我会把细节留给你):
- 向用户显示菜单选项
- 如果他想添加用户,获取两个变量的输入,创建员工对象并将其添加到列表中
- 如果他想显示,遍历列表并打印(打印可以覆盖
toString
类中的Employee
) - 如果他想退出,完成
- 继续这个循环直到他想退出
关于java - 我想通过用户输入添加到 arrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40094243/