5段階目(Mainでポリモーフィズムを使おう)

This commit is contained in:
s-sakiyama
2026-09-16 15:14:05 +09:00
parent 9c3605cf87
commit f68bef8367
3 changed files with 61 additions and 82 deletions

View File

@@ -1,4 +1,3 @@
public abstract class BaseData {
public abstract String toString();

View File

@@ -35,19 +35,6 @@ public class EmployeeData extends BaseData {
+ "\t" + this.password + "\t" + this.idDepartment;
}
public boolean isMatchId(String id) {
return getIdEmployee().equals(id);
}
public static boolean isMatchId(EmployeeData[] employees, String id) {
for (EmployeeData e : employees) {
if (e.isMatchId(id))
return true;
}
return false;
}
public String getIdEmployee() {
return idEmployee;
}
@@ -122,5 +109,4 @@ public class EmployeeData extends BaseData {
public String getPrimaryKeyValue() {
return this.idEmployee;
}
}

View File

@@ -4,54 +4,66 @@ public class Main {
public static void main(String[] args) {
System.out.println("会社名:" + EmployeeData.COMPANY_NAME);
EmployeeData employee = new EmployeeData("10000", "山田龍也", "ヤマダタツヤ",
BaseData employee = new EmployeeData("10000", "山田龍也", "ヤマダタツヤ",
"yamada@hoge.jp", "aaa", "10");
System.out.println(employee.toCSV());
System.out.println(employee.getPrimaryKeyValue());
System.out.println();
EmployeeData[] employees = new EmployeeData[5];
for (int i = 0; i < employees.length; i++) {
employees[i] = new EmployeeData();
}
BaseData[] employees = new BaseData[5];
employees[0].setIdEmployee("10000");
employees[0].setNmEmployee("山田龍也");
employees[0].setKnEmployee("ヤマダタツヤ");
employees[0].setMailAddress("yamada@hoge.jp");
employees[0].setPassword("aaa");
employees[0].setIdDepartment("10");
//setterがBaseData.javaにはないためコンストラクタで代入
// for (int i = 0; i < employees.length; i++) {
// employees[i] = new EmployeeData();
// }
//
// employees[0].setIdEmployee("10000");
// employees[0].setNmEmployee("山田龍也");
// employees[0].setKnEmployee("ヤマダタツヤ");
// employees[0].setMailAddress("yamada@hoge.jp");
// employees[0].setPassword("aaa");
// employees[0].setIdDepartment("10");
//
// employees[1].setIdEmployee("10001");
// employees[1].setNmEmployee("高橋準\t");
// employees[1].setKnEmployee("タカハシジュン");
// employees[1].setMailAddress("jtaka@hoge.jp");
// employees[1].setPassword("bbb");
// employees[1].setIdDepartment("10");
//
// employees[2].setIdEmployee("10002");
// employees[2].setNmEmployee("麻枝史明");
// employees[2].setKnEmployee("マエダフミアキ");
// employees[2].setMailAddress("fmak@hoge.jp");
// employees[2].setPassword("ccc");
// employees[2].setIdDepartment("11");
//
// employees[3].setIdEmployee("10003");
// employees[3].setNmEmployee("丸戸章介");
// employees[3].setKnEmployee("マルトショウスケ");
// employees[3].setMailAddress("marusyo@hoge.jp");
// employees[3].setPassword("ddd");
// employees[3].setIdDepartment("12");
//
// employees[4].setIdEmployee("10004");
// employees[4].setNmEmployee("三宅武\t");
// employees[4].setKnEmployee("ミヤケタケシ");
// employees[4].setMailAddress("miya@hoge.jp");
// employees[4].setPassword("eee");
// employees[4].setIdDepartment("13");
employees[0] = new EmployeeData("10000", "山田龍也", "ヤマダタツヤ",
"yamada@hoge.jp", "aaa", "10");
employees[1] = new EmployeeData("10001", "高橋準", "タカハシジュン",
"jtaka@hoge.jp", "bbb", "10");
employees[2] = new EmployeeData("10002", "麻枝史明", "マエダフミアキ",
"fmak@hoge.jp", "ccc", "11");
employees[3] = new EmployeeData("10003", "丸戸章介", "マルトショウスケ",
"marusyo@hoge.jp", "ddd", "12");
employees[4] = new EmployeeData("10004", "三宅武", "ミヤケタケシ",
"miya@hoge.jp", "eee", "13");
employees[1].setIdEmployee("10001");
employees[1].setNmEmployee("高橋準\t");
employees[1].setKnEmployee("タカハシジュン");
employees[1].setMailAddress("jtaka@hoge.jp");
employees[1].setPassword("bbb");
employees[1].setIdDepartment("10");
employees[2].setIdEmployee("10002");
employees[2].setNmEmployee("麻枝史明");
employees[2].setKnEmployee("マエダフミアキ");
employees[2].setMailAddress("fmak@hoge.jp");
employees[2].setPassword("ccc");
employees[2].setIdDepartment("11");
employees[3].setIdEmployee("10003");
employees[3].setNmEmployee("丸戸章介");
employees[3].setKnEmployee("マルトショウスケ");
employees[3].setMailAddress("marusyo@hoge.jp");
employees[3].setPassword("ddd");
employees[3].setIdDepartment("12");
employees[4].setIdEmployee("10004");
employees[4].setNmEmployee("三宅武\t");
employees[4].setKnEmployee("ミヤケタケシ");
employees[4].setMailAddress("miya@hoge.jp");
employees[4].setPassword("eee");
employees[4].setIdDepartment("13");
for (EmployeeData e : employees) {
for (BaseData e : employees) {
System.out.println(e);
;
}
@@ -60,38 +72,20 @@ public class Main {
System.out.println();
//nullおよび前後の空白を取り除いた結果が空文字チェック
EmployeeData emp = new EmployeeData("10000", "デフォルト", "ヤマダタツヤ", "yamada@hoge.jp", "aaa", "10");
System.out.println(emp);
emp.setNmEmployee(null);
System.out.println(emp);
emp.setNmEmployee("   ");
System.out.println(emp);
// BaseData emp = new EmployeeData("10000", "デフォルト", "ヤマダタツヤ", "yamada@hoge.jp", "aaa", "10");
// System.out.println(emp);
// (EmployeeData)emp.setNmEmployee(null);
// System.out.println(emp);
// emp.setNmEmployee("   ");
// System.out.println(emp);
System.out.println();
EmployeeData emptyEmployee = new EmployeeData("", "", "", "", "", "");
BaseData emptyEmployee = new EmployeeData("", "", "", "", "", "");
System.out.println(emptyEmployee);
System.out.println();
//IDが一致するか
boolean matchIdBool = false;
System.out.println("10002 を検索します");
for (EmployeeData e : employees) {
matchIdBool = e.isMatchId("10002");
if (matchIdBool)
break;
}
System.out.println(matchIdBool);
System.out.println("99999 を検索します");
System.out.println(EmployeeData.isMatchId(employees, "99999"));
System.out.println("10003 を検索します");
System.out.println(EmployeeData.isMatchId(employees, "10003"));
System.out.println();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("検索したい社員IDを入力してください(終了する場合は0)");
@@ -104,8 +98,8 @@ public class Main {
boolean matchFlag = false;
for (EmployeeData e : employees) {
if (e.isMatchId(findId)) {
for (BaseData e : employees) {
if (e.getPrimaryKeyValue().equals(findId)) {
System.out.println(e);
matchFlag = true;
break;