我有三個類:Main
,ReusaxCorp
和Employee
。讓我們直接看點:在ReusaxCorp
類中,我想實現兩種方法:retrieveEmployee
,它遍歷數組列表,並且列印出所有員工信息。所以,我想這一點:Java:ArrayList中兩種方法的可訪問性問題(三類)
public void retrieveEmployee() {
for (int i = 0; i < employees.size(); i++) {
System.out.println("ID: " + employee.ID + END_OF_LINE + "Name: " + employee.name + END_OF_LINE + "salary: " + employee.grossSalary);
}
}
但是,這並不工作,因爲我不能訪問 - 例如 - employee.ID或employee.name。在第二種方法中。updateEmployee
我本來希望更改信息,但由於無障礙原因,這不起作用。我很欣賞任何形式的幫助。這裏是我的三類:
public class Employee {
protected String ID;
protected String name;
protected double grossSalary;
final String END_OF_LINE = System.lineSeparator();
public Employee (String ID, String name, double grossSalary){
this.ID = ID;
this.name = name;
this.grossSalary = grossSalary;
}
public double getGrossSalary() {
return grossSalary;
}
public void setGrossSalary(double grosssalary) {
this.grossSalary = grossSalary;
}
public String getName(){
return name;
}
public void setName(String name) {
this.name = name;
}
}
這裏是我的主類:
public class Main {
private static String END_LINE;
private Scanner sc;
public String name;
public String ID;
public double salary;
private int GPA;
private ReusaxCorp reusaxcorp;
public Main(){
sc = new Scanner(System.in);
END_LINE = System.lineSeparator();
}
public void presentoptions(){
while (true){
System.out.println("=== Welcome === ");
System.out.println("Choose an option below: ");
System.out.println(" ");
System.out.println("1. Register an employee. ");
System.out.println("2. Remove an employee. ");
System.out.println("3. Retrieve an employees information. ");
int option = sc.nextInt();
switch (option) {
case 1:
System.out.println("What type of employee? " + END_LINE
+ " - Intern. " + END_LINE
+ " - Employee. " + END_LINE
+ " - Manager. " + END_LINE
+ " - Director." + END_LINE);
String type = sc.nextLine();
createEmployee();
break;
case 2:
break;
case 3:
reusaxcorp.retrieveEmployee();
break;
default:
System.out.println("Error. Please try again.");
break;
}
}
}
public void createEmployee(){
String typeofemployee = sc.nextLine();
System.out.println("What's the ID of the new " + typeofemployee + "?");
ID = sc.nextLine();
System.out.println("What's the name of the new " + typeofemployee + "?");
name = sc.nextLine();
System.out.println("What's the salary of the new " + typeofemployee + "?");
salary = sc.nextDouble();
Employee employee = new Employee(ID, name, salary);
switch (typeofemployee) {
case "Intern":
System.out.println("What's the new Interns GPA? ");
GPA = sc.nextInt();
case "Employee":
break;
case "Manager":
break;
case "Director":
break;
default:
System.out.println("Error");
break;
}
}
public static void main(String[] args) {
Main runcode = new Main();
runcode.presentoptions();
}
}
這裏最後的ReusaxCorp
類。
public class ReusaxCorp extends Main {
ArrayList<Employee> employees = new ArrayList<Employee>();
final String END_OF_LINE = System.lineSeparator();
public void registerEmployee(){
employees.add(new Employee(ID, name, salary));
}
public void retrieveEmployee() {
for (int i = 0; i < employees.size(); i++) {
System.out.println("ID: " + employee.ID + END_OF_LINE + "Name: " + employee.name + END_OF_LINE + "salary: " + employee.grossSalary);
}
}
public void updateEmployee(){
}
}
@azurefrog注意到並註釋添加。 –
感謝它的運行,但我得到一個NullPointerException。我不知道爲什麼。 – JavaTeachMe2018
你在哪裏得到NPE? –