私は、氏名、姓名、住所、市区町村、preferredContact、連絡先ID、およびspecialismの医師の詳細を含むcsvファイルを持っています。オブジェクト指向プログラミング - 子クラスの作成
私は医者オブジェクトを保存したい医者リストを作成しました。私はscanner.nextLine()
を分割し、各値をDoctorインスタンスに解析することに決めました。
私にとってはすべての値が正確に読み込まれ、医師に関連付けられた正しい変数、名前、姓などに割り当てられましたが、唯一の問題は医師の専門が手術の場合は、認証日である追加の値。
これを行うには、拡張Surgeonクラスを作成し、継承を使用しようとしましたが、この段階では迷子になり、この問題の解決方法に関するアイデアがなくなります。
私はこの仕事をするために私が何を変えることができるか教えていただけますか?
public class Doctor
{
protected String name;
protected String surname;
protected String address;
protected String city;
protected String preferredContact;
protected String contactID;
protected String specialism;
public Doctor()
{
this.name="";
this.surname="";
this.address="";
this.city="";
this.preferredContact="";
this.contactID="";
this.specialism="";
}
public Doctor(String name,String surname, String address, String city, String preferredContact, String contactID, String specialism)
{
this.name=name;
this.surname=surname;
this.address=address;
this.city=city;
this.preferredContact=preferredContact;
this.contactID=contactID;
this.specialism=specialism;
}
public void setName(String name)
{
this.name=name;
}
public String getName()
{
return name;
}
public void setSurname(String surname)
{
this.surname=surname;
}
public String getSurname()
{
return surname;
}
public void setAddress(String address)
{
this.address=address;
}
public String getAddress()
{
return address;
}
public void setCity(String city)
{
this.city=city;
}
public String getCity()
{
return city;
}
public void setPreferredContact(String preferredContact)
{
this.preferredContact=preferredContact;
}
public String getPreferredContact()
{
return preferredContact;
}
public void setContactID(String contactID)
{
this.contactID=contactID;
}
public String getContactID()
{
return contactID;
}
public void setSpecialism(String specialism)
{
this.specialism=specialism;
}
public String getSpecialism()
{
return specialism;
}
@Override
public String toString()
{
return "\nName:"+getName()
+"\nSurname: "+getSurname()
+"\nAddress: "+getAddress()
+"\nCity: "+getCity()
+"\nPreferred Means of Contact: "+getPreferredContact()
+"\nContact ID: "+getContactID()
+"\nSpecialism: "+getSpecialism()
+"\n";
}
}
public class Surgeon extends Doctor
{
protected String certificationDate;
public Surgeon()
{
super();
certificationDate="";
}
public Surgeon(String name,String surname, String address, String city, String preferredContact, String contactID, String specialism, String certificationDate)
{
super(name,surname,address,city,preferredContact,contactID,specialism);
this.certificationDate=certificationDate;
}
public String getCertificationDate()
{
return certificationDate;
}
@Override
public String toString()
{
return "\nCertificationDate: "+certificationDate +"\n";
}
}
public class DoctorImport
{
public static void main (String[]args)
{
int index = 0;
List<Doctor> doctorsList = new ArrayList<>();
try
{
Scanner scanner=new Scanner(new File("DoctorsFile.csv"));
Scanner dataScanner;
while (scanner.hasNextLine())
{
dataScanner=new Scanner(scanner.nextLine());
dataScanner.useDelimiter(",");
Doctor myDoctor=new Doctor();
Surgeon mySurgeon=new Surgeon();
while(dataScanner.hasNext())
{
String data= dataScanner.next();
switch (index)
{
case 0:
myDoctor.setName(data);
break;
case 1:
myDoctor.setSurname(data);
break;
case 2:
myDoctor.setAddress(data);
break;
case 3:
myDoctor.setCity(data);
break;
case 4:
myDoctor.setPreferredContact(data);
break;
case 5:
myDoctor.setContactID(data);
break;
case 6:
myDoctor.setSpecialism(data);
break;
case 7:
mySurgeon.certificationDate=data;
break;
}
index++;
}
doctorsList.add(myDoctor);
if((myDoctor.specialism).equals("Surgery"))
{
doctorsList.add(mySurgeon);
}
index=0;
}
System.out.print(doctorsList);
}
catch (FileNotFoundException ex)
{
System.out.print("Error, unable to locate the CSV File!");
}
}
}
いくつかのエラーが発生していますか、直面している問題は何ですか? –
したがって、あなたの問題は、医師の専門が外科手術である場合、外科医のクラスにすべての正しいデータが含まれていないことです。 – Jason