私は継承と抽象クラスに不慣れです。
この例では、個人またはビジネスを持つことができる電話帳を設計しています。その人には、役職、名、姓、および電話番号があります。会社には会社名と電話番号があります。抽象メソッドgetNameを使用して抽象クラスを作成しました(これは皆さんにとって本当に単純に聞こえるかもしれませんが、我慢してください!)
public abstract class PhoneBook {
private String phone;
public boolean setPhone(String p) //final
{
boolean flag = false;
if(p.length()!= 10)
{
flag = false;
}
for (int i = 0; i < p.length(); i++)
{
if(Character.isDigit(p.charAt(i)))
{
phone = p;
flag = true;
}
}
return flag;
}
public abstract String getName();
}
私の2つのサブクラスは、PersonとBusinessです。その人のgetNameメソッドは、タイトル、f名、l名を連結します。主に、個人またはビジネスの両方を保持できるPhoneBook配列(抽象配列)を作成しました。
出力に問題があります...(抽象クラスの)getPhoneにアクセスして出力するにはどうすればよいですか?
これがメインです(私は現在、人の部分のみに取り組んでいます)
import javax.swing.*;
パブリッククラスPhoneBookEntries{
public static final int MAX = 100;
public static void main(String[] args) {
PhoneBook[] phone = new PhoneBook[100];
int selection;
int i = 0;
do{
selection = Integer.parseInt(JOptionPane.showInputDialog("Would you like to add a\n1.person\n2.business\nto the phone book?"));
switch(selection)
{
case 1: phone[i]= fillPerson();
break;
case 2: fillBusiness();
break;
}
}while(i < MAX && JOptionPane.showConfirmDialog(null, "Add another entry to phone book?")==JOptionPane.YES_OPTION);
//output
String output;
output = phone[i].getName();
JOptionPane.showMessageDialog(null, output);
}
private static PhoneBook fillPerson()
{
Person someone = new Person();
someone.setTitle(JOptionPane.showInputDialog("Enter your title\n(Mr., Mrs., Ms., or Dr.)"));
someone.setFName(JOptionPane.showInputDialog("Enter the first name of the person: "));
someone.setLName(JOptionPane.showInputDialog("Enter the last name of the person: "));
while(!someone.setPhone(JOptionPane.showInputDialog("Enter your 10 digit phone number: ")))
JOptionPane.showMessageDialog(null, "Error. Please enter only 10 numerical values\n(examle: 7034567890");
return someone;
}
private static void fillBusiness()
{
}
}
getName PhoneBook []があるので、簡単にアクセスできます。すべてをまとめるにはtoStringinPersonが必要だと思っていましたが(while名と電話番号)、Personがインスタンス化されていないため、メインではそのtoStringにアクセスできませんか?これが紛らわしい場合は申し訳ありません...私は自分の(貧弱な)思考の列を入力しているだけです...