这个 UML 图的实现是否正确?
Is this implementation of the UML diagram correct?
Is this implementation of the UML diagram correct?
我正在准备考试,我们的教授没有给我们解决这些任务的方法,因为我们应该自己积极主动,但我仍然希望得到反馈。
我的代码:
public abstract class Employee {
protected String name;
protected int salery;
public Employee(){
name="";
salery=0;
}
public String toString(){
return "name: "+name+"salery: "+salery;
}
}
import java.util.ArrayList;
public class EmployeeList {
protected ArrayList<Employee> members;
public EmployeeList(){
members=new ArrayList<Employee>();
}
public String toString(){
String ret="";
for(int i=0;i<members.size();i++){
ret+=members.get(i).toString()+" ";
}
return ret;
}
}
public class Manager extends Employee{
protected String department;
public String toString(){
return department;
}
}
该代码似乎在实践中有效,因为我已经用以下方法对其进行了测试:
EmployeeList employeeList=new EmployeeList();
Manager m1=new Manager();
Manager m2=new Manager();
Manager m3=new Manager();
m1.department="McDonalds";
m2.department="BigHouse";
m3.department="Heart";
System.out.println(m1);
employeeList.members.add(m1);
employeeList.members.add(m2);
employeeList.members.add(m3);
System.out.println(employeeList);
通常,斜体文本用于表示 class 应该是抽象的。 Employee 是抽象的有什么原因吗?
否则,这似乎是一个公平的实施。
您(应该)因大量 Java 样式错误和 salary
拼写错误 salery
而失去一些分数。是的,这些事情很重要。
您是否应该将字段声明为 private
并提供 protected
getter 和 setter 也值得商榷。将 getter 和 setter 放入 UML 图中不是正常的做法。他们有点假设。但是在 Java 中声明非 private
字段是(通常)不好的做法。
最后,Employee
不应该是abstract
。 (您只能创建 Manager
个对象而不能创建 Employee
个对象甚至没有意义。)
实际上,Java 类(或其他)不需要是 UML 的字面翻译。 UML 是一种设计符号...不是规范语言。
Is this implementation of the UML diagram correct?
我正在准备考试,我们的教授没有给我们解决这些任务的方法,因为我们应该自己积极主动,但我仍然希望得到反馈。
我的代码:
public abstract class Employee {
protected String name;
protected int salery;
public Employee(){
name="";
salery=0;
}
public String toString(){
return "name: "+name+"salery: "+salery;
}
}
import java.util.ArrayList;
public class EmployeeList {
protected ArrayList<Employee> members;
public EmployeeList(){
members=new ArrayList<Employee>();
}
public String toString(){
String ret="";
for(int i=0;i<members.size();i++){
ret+=members.get(i).toString()+" ";
}
return ret;
}
}
public class Manager extends Employee{
protected String department;
public String toString(){
return department;
}
}
该代码似乎在实践中有效,因为我已经用以下方法对其进行了测试:
EmployeeList employeeList=new EmployeeList();
Manager m1=new Manager();
Manager m2=new Manager();
Manager m3=new Manager();
m1.department="McDonalds";
m2.department="BigHouse";
m3.department="Heart";
System.out.println(m1);
employeeList.members.add(m1);
employeeList.members.add(m2);
employeeList.members.add(m3);
System.out.println(employeeList);
通常,斜体文本用于表示 class 应该是抽象的。 Employee 是抽象的有什么原因吗?
否则,这似乎是一个公平的实施。
您(应该)因大量 Java 样式错误和 salary
拼写错误 salery
而失去一些分数。是的,这些事情很重要。
您是否应该将字段声明为 private
并提供 protected
getter 和 setter 也值得商榷。将 getter 和 setter 放入 UML 图中不是正常的做法。他们有点假设。但是在 Java 中声明非 private
字段是(通常)不好的做法。
最后,Employee
不应该是abstract
。 (您只能创建 Manager
个对象而不能创建 Employee
个对象甚至没有意义。)
实际上,Java 类(或其他)不需要是 UML 的字面翻译。 UML 是一种设计符号...不是规范语言。