前提・実現したいこと
課の構成を表すプログラムを作成する課題に取り組んでいます。
MemberMainの内容を変更せずに「1」のように表示する課題です。
試したこと
デバックで実行し配列には格納するデータがすべて格納されていることを確認しました。
抽象クラスと継承を一通り調べたのですが全体的に理解できず困っています。
発生している問題・エラーメッセージ
MemberMainを実行して「1」のように表示させたいのですが
「2」のように表示されてしまい、困っています。
「1」 >java MemberMain 従業員番号:E0001 名前:阿川 役職:担当 従業員番号:E0002 名前:井川 勤務時間帯:10:00-20:00 従業員番号:E0003 名前:鵜川 役職:リーダー 従業員番号:E0004 名前:江川 勤務時間帯:09:00-18:00 従業員番号:E0005 名前:小川 役職:課長 従業員番号E9999 の人は見つかりませんでした。 「2」 Permanent@a09ee92PartTime@30f39991Permanent@452b3a41PartTime@4a574795Permanent@f6f4d33
該当のソースコード
java
1public class MemberMain 2{ 3 public static void main(String[] args) 4 { 5 // 従業員の配列を作成 6 Member[] members = new Member[] { 7 new Permanent("E0001", "阿川", "担当"), 8 new PartTime("E0002", "井川", "10:00-20:00"), 9 new Permanent("E0003", "鵜川", "リーダー"), 10 new PartTime("E0004", "江川", "09:00-18:00"), 11 new Permanent("E0005", "小川", "課長"), 12 }; 13 // 作成した従業員が所属するセクションを作成 14 Section section = new Section(members); 15 // 課員の情報を出力 16 section.printMember("E0001"); 17 section.printMember("E0002"); 18 section.printMember("E0003"); 19 section.printMember("E0004"); 20 section.printMember("E0005"); 21 section.printMember("E9999"); 22 } 23} 24 25 26 27abstract class Member //従業員クラス 抽象クラス 28{ 29 private String memberID; //従業員番号 30 private String name; //名前 31 32 public Member(String MemberID, String Name) 33 { 34 memberID = MemberID; 35 name = Name; 36 } 37 38 public String getMemberID() //従業員番号を返却 39 { 40 return memberID; 41 } 42 43 public String getName() //名前を返却 44 { 45 return name; 46 } 47 48 abstract void printDetail(); //従業員の情報をコンソールに出力する抽象メソッド 49 50} 51 52} 53 54class Permanent extends Member //社員クラス Memberを継承 55{ 56 private String appointment; //役職名 57 58 59 public Permanent(String memberID,String name,String Appointment) 60 { 61 super(memberID,name); 62 appointment = Appointment; 63 } 64 65 public void printDetail() //従業員番号と名前と役職をコンソールに出力するメソッド 66 { 67 68 //System.out.println(members[0]); 69 //System.out.println(members[2]); 70 //System.out.println(members[4]); 71 } 72} 73 74class PartTime extends Member //アルバイトクラス Memberを継承 75{ 76 private String workHours; //勤務時間帯 77 78 public PartTime(String memberID,String name,String WorkHours) 79 { 80 super(memberID, name); 81 workHours = WorkHours; 82 } 83 84 public void printDetail() //従業員番号と名前と勤務時間帯をコンソールに出力するメソッド 85 { 86 //System.out.print("a"); 87 } 88} 89 90class Section //課クラス 91{ 92 private Member[] members; 93 94 public Section(Member[] Members) 95 { 96 members = Members;//引数 Mainのmembersから配列を受け取る 97 for(int i=0; i<members.length; i++) 98 { 99 //if(members == "E0001") 100 //{ 101 System.out.print(members[i]); 102 //}eles if(members[i] == "E0002") 103 //{ 104 // System.out.print("OK"); 105 //} 106 //System.out.print(members); 107 } 108 } 109 public void printMember(String memberID) //引数に与えられた従業員番号に該当する従業員を従業員配列から検索しその情報を出力する。出力処理はクラスMemberのprintDetail()メソッドに委譲する。該当する従業員が見つからない場合はその旨を出力する。 110 { 111 //System.out.print("b"); 112 } 113}
###実行環境
コマンドプロンプト
デバックはエクリプスで実行しました