我已经编写了三个Java类:
Company
Department
Employee
每个Company
对象都包含一个Department
对象的数组,而这些对象又包含Employee
对象的数组。
我想在Employee
类setQid()
中编写一个方法,该方法将以以下格式为该员工设置一个唯一的ID:
- compName_deptName_deptNumber_empFirstName_empSurname
示例:
- "Microsoft_Accounting_3_John_Smith">
我的问题是:如何从Employee
类的上下文中访问以下变量?
Company
中的String name
Department
中的String name
Department
中的int number
请参阅下面的代码:
public class Company {
private String name;
private Department[] departments;
public Company(String name, Department[] departments) {
this.name = name;
this.departments = departments;
}
}
public class Department {
private String name;
private int number;
private Employee[] members;
public Department(String name, int number, Employee[] members) {
this.name = name;
this.number = number;
this.members = members;
}
}
public class Employee {
private String firstname;
private String surname;
private String qid; //A unique employee ID
public Employee(String firstname, String surname) {
this.firstname = firstname;
this.surname = surname;
setQid();
}
public void setQid() {
// How can I access the Company name, Department name, and Department number from here?
}
}
您需要在Employee类中有一个Department的引用,在Department中也有一个Company的引用,只有这样,您与实体之间的关系才会完整。
public class Company {
private String name;
private Department[] departments;
public Company(String name, Department[] departments) {
this.name = name;
this.departments = departments;
}
//add getters and setters
}
public class Department {
private String name;
private int number;
private Employee[] members;
private Company company;
public Department(String name, int number, Employee[] members) {
this.name = name;
this.number = number;
this.members = members;
}
//add getters and setters
}
public class Employee {
private String firstname;
private String surname;
private String qid; //A unique employee ID
private Department department;
public Employee(String firstname, String surname) {
this.firstname = firstname;
this.surname = surname;
setQid();
}
public void setQid() {
qid = department.getCompany().getName + "_" + department.getName() ....
}
//add getters and setters
}