为什么我的 java 代码无法创建对象的多个实例?



如果有人对Java很了解,我将非常感谢您的帮助。希望创建Employee对象的两个或多个实例。正如你在CCD_ 2类中看到的,我已经成功地创建了第一个对象";苏珊;但是当我试图添加";Jake";它似乎不起作用,我不明白为什么。为了清晰起见,我添加了测试代码的控制台输出。提前感谢!

import java.util.LinkedList;
public class Employee {
String name;
LinkedList<Employee> employees;
public Employee(String ename){
name = ename;
employees = new LinkedList<Employee>();
System.out.println("The newest employee is: " + ename);
}
void addSub(Employee subName){
employees.add(subName);
System.out.println("Adding " + subName + " to the employee list");
}
void getEmployee(int num){
employees.get(num);
}
void print(){
printHelper(0);
}
void printHelper(int level){
for(int i = 0; i < level; i++){
System.out.print("t");
}
System.out.println(name + "n");
level++;
for(int j = 0; j < employees.size(); j++){
System.out.println(employees.get(j));
printHelper(level);
}
}
public static void main(String args[]){
Employee susan = new Employee("Susan");
Employee jake = new Employee("Jake"); //HERE IS WHERE I NEED HELP
susan.addSub(jake);

susan.print();
}
}

//////////////////////////////////////////////////////////控制台输出

最新员工是:Susan

最新员工是:Jake

正在添加Employee@299a06ac到员工列表

Susan

下面的代码给出了您期望的结果。

public class Employee {
String name;
List<Employee> subEmployees;
public Employee(String employeeName){
System.out.println("The newest employee is: " + employeeName);
name         = employeeName;
subEmployees = new LinkedList<>();
}
void addSub(Employee subName){
System.out.println("Adding " + subName.name + " to the employee list");
subEmployees.add(subName);
}
void print(){
printHelper(0);
}
void printHelper(int level){
for(int i = 0; i < level; i++){
System.out.print("t");
}
System.out.println(name);
if(subEmployees.isEmpty()){
return;
}
for (Employee employee : subEmployees) {
level = level + 1;
employee.printHelper(level);
}
}
public static void main(String args[]){
Employee susan = new Employee("Susan");
Employee jake  = new Employee("Jake"); //HERE IS WHERE I NEED HELP
Employee bevan  = new Employee("Bevan"); //HERE IS WHERE I NEED HELP
jake.addSub(bevan);
susan.addSub(jake);
susan.print();
}
}

控制台输出如下。

The newest employee is: Susan
The newest employee is: Jake
The newest employee is: Bevan
Adding Bevan to the employee list
Adding Jake to the employee list
Susan
Jake
Bevan

最新更新