以下のような実行結果になるように、クラスを完成させなさい。
実行結果
(1000001) 太郎 (男性) ¥256500-
(100002) 花子 (女性) ¥192400-
toString()メソッドで値をString型で返すところなどがまだよくわかっていないです。実行すると、[Lmodel.Employee;@5ccd43c2 という実行結果になってしました。
package question23;
import model.Employee;
import model.Fukuoka;
import model.Tokyo;
public class Question23 {
public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ //クラス配列を作成 Employee [] Employees=getEmployee(); System.out.println(Employees); } //getEmployeeメソッドを生成 public static Employee[] getEmployee() { Employee Employees []=new Employee[2]; Employees[0]=new Employee("太郎", true, new Tokyo());//第三引き数 AbstactSalary型 Employees[1]=new Employee("花子",false, new Fukuoka()); return Employees; }
}
package model;
public class Employee extends Personal {
//フィールド変数
private static int EMPLOYEE_ID =100000; /学籍番号の定数/
private static int count=1; /登録開始番号/
private Integer empId; /社員番号/
private AbstractSalary salary; /給料/
//コンストラクタ public Employee(String name, boolean isMan, AbstractSalary salary){ super(name,isMan); setEmpId(EMPLOYEE_ID+count); setSalary(salary); } /*public Employee(String name, boolean isMan){ setName(name); setMan(isMan); }*/ //getter studentId public Integer getEmpId() { return empId; } //seter 社員番号を設定する public void setEmpId(Integer empId) { this.empId=EMPLOYEE_ID+count; } //geter 給料 public AbstractSalary getSalary() { return salary; } //setter 給料 public void setSalary(AbstractSalary salary) { this.salary=salary; } //toStringメソッド @Override public String toString() { return "["+empId+"]"+getName()+toString()+"\"+salary"; }
}
package model;
public class Personal {
//フィールド変数
private String name; //名前
private boolean isMan; //性別
//コンストラクタ Personal(String name, boolean isMan){ setName(name); setMan(isMan); } Personal(){ } //getter name public String getName() { return name; } //setter name public void setName(String name) { this.name=name; } //isManメソッド public boolean isMan() { return isMan; } //setter public void setMan(boolean isMan) { this.isMan=isMan; } //メソッド @Override public String toString() { if(isMan){ return "(男性)"; }else { return "(女性)"; } }
}
package model;
abstract public class AbstractSalary extends Personal{
//フィールド変数
private static int BASE_SALARY=180000; //基本給
private int totalSalary=0; //総支払額
public int allowance=0; //手当
//コンストラクタ AbstractSalary(){ setAllowance(); setTotalSalary(BASE_SALARY+getAllowance()); } //getter 総支給額 public int getTotalSalary() { return totalSalary; } //sette 総支給額の計算 public void setTotalSalary(int totalSalary) { this.totalSalary=BASE_SALARY+getAllowance(); } //geter 手当を戻す public int getAllowance() { return allowance; } //抽象メソッド abstract public void setAllowance(); //文字列の表示 public String toString() { return "\"+totalSalary+"-"; //総支給額を表示する }
}
package model;
public class Tokyo extends AbstractSalary{
//メソッド public void setAllowance() {//手当て=1500*31 allowance=1500*31; }
}
package model;
public class Fukuoka extends AbstractSalary {
public void setAllowance() { //手当て=400*31 allowance=400*31; }
}
回答2件
あなたの回答
tips
プレビュー