제목이 정확하지 않으면 용서해주십시오.이 질문은 "다형성"이 있어야하지만 제목을 복잡하게 만들고 싶지는 않다고 생각했습니다.다른 클래스의 생성자 내에서 클래스 유형을 전달합니까?
저는 "Java : Learn to Program"을 배우면서 다음과 같이 진행합니다 : "다형성"이 적용되는 방법을 보려면 해당 지식을 적용하고 자신의 시나리오를 만듭니다. 누군가가 나를이 일을하는 방법을 이해하도록 도울 수 있다면 고맙겠습니다.
- 추상 직원
- 관리자 (직원의 서브 클래스)
- 레스토랑
Employee 클래스 및 관리자 클래스 꽤 정직하고 있습니다 : 나는 세 가지 클래스가 있습니다. 나는 식당을 만들려고 노력하고 있으며 모든 식당마다 매니저가있다. 내 질문은 :
"Restaurant"클래스의 생성자 인수로 "Manager"유형을 전달하거나 생성자에서 "Manager"객체를 인스턴스화해야합니까?
public abstract class Employee{
private String _empName;
private double _empSalary;
public Employee(string name, double salary){
_empName = name;
_empSalary = salary;
}
public void setEmpName(String name){
_empName = name;
}
public String getEmpName(){
return _empName;
}
public void setEmpSalary(double salary){
_empSalary = salary;
}
public double getEmpSalary(){
return _empSalary;
}
}//CLASS
public class Manager{
private double _yrsOfExp;
public Manager(String name, double salary, double experience){
super(name, salary);
_yrsOfExp = experience;
}
public void setManagerExperience(double years){
_yrsOfExp = years;
}
public double getManagerExperience(){
return _yrsOfExp;
}
}//CLASS
여기 제가 도움이 필요한 곳으로, "MANAGER TYPE"으로 생성자를 선언하고 있습니다. 대신 "Manager 유형"을 생성자와 전달하는 대신 "Manager"의 인스턴스를 선언해야합니까?
public class Restaurant{
private Manager _manager;
private String _location;
//CONSTRUCTOR 1
//SHOULD I PURSUE IT THIS WAY OR
public Restaurant(Manager manager, String location){
_manager = manager;
_location = location;
}
//CONSTRUCTOR 2
//SHOULD I DO IT THIS WAY?
public Restaurant(String name, double salary, double experience, String location){
super(name, salary, experience);
_location = location;
}
public String toString(){
String str = "";
return str;
}
}//CLASS
이렇게 생각하면 식당에 매니저가 있습니까? 아니면 식당에 이름, 급여 및 경험이 있습니까? –
@keshlam 고맙습니다. 내 두 번째 생성자쪽으로 기울고 있었고 두 번째 생성자가 될 수도 있습니다. – Combustion007
우리가 제공 한 최소한의 데이터를 바탕으로 한 제 권장 사항이 첫 번째 옵션입니다. Manager를 레스토랑의 속성이 아닌 객체로 취급하십시오. – keshlam