gpt4 book ai didi

java - 我想通过用户输入添加到 arrayList

转载 作者:搜寻专家 更新时间:2023-11-01 02:38:33 26 4
gpt4 key购买 nike

我一直在尝试创建一个小程序,提示用户输入员工姓名和薪水,将其添加到 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;
} */

}

}

最佳答案

我能想到的几个小技巧:

  1. EmployeeList不应扩展 Employee . OOP 的主要规则是,如果 B 是一个 A,类 A 扩展类 B。这里显然不是这种情况 - employeeList 不是雇员,它是雇员列表(在我看来你不不需要为此上课,只需 List<Employee> )
  2. 我会将逻辑与数据分开。含义 - Employee类应该只保存员工的数据,而不是处理扫描和获取用户的输入。构造函数在我看来应该很简单,类似于:

    public Employee(String name, int salary) {
    this.name = name;
    this.salary = salary;
    }

    获取数据的逻辑应该在这个类之外,或者在EmployeeHandler中。或主要本身。由于您将它放在员工内部,因此当一些逻辑在员工中而另一些在主体中时,您将难以继续。

  3. 高级代码应该是这样的(我会把细节留给你):
    • 向用户显示菜单选项
    • 如果他想添加用户,获取两个变量的输入,创建员工对象并将其添加到列表中
    • 如果他想显示,遍历列表并打印(打印可以覆盖toString类中的Employee)
    • 如果他想退出,完成
    • 继续这个循环直到他想退出

关于java - 我想通过用户输入添加到 arrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40094243/

26 4 0