継承クラスと抽象クラスは初めてです。抽象クラスでの出力方法
この例では、人またはビジネスを持つことができる電話帳を設計しています。その人は、タイトル、名、姓、電話番号を持っています。ビジネスにはビジネス名と電話番号があります。 私は
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();
}
(これは皆さんには本当に単純な音が、私と一緒に負担してください可能性があります!)のgetName 抽象メソッドと抽象クラスを作成した私の2つのサブクラスは、人とビジネスです。 personのgetNameメソッドは、タイトル、f name、l nameを連結します。 メインでは、人やビジネスの両方を保持できる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 []を持っています。私はPersonをインスタンス化する必要がないので、すべてをまとめて(whileの名前と電話番号)、toStringにアクセスすることはできません。これは混乱している場合 は申し訳ありませんが...私はこれがあるjava.lang.Object
に定義された方法であるので、あなたは常に任意のオブジェクトにtoString()
を呼び出すことができるはず...
抽象クラスで 'this.getPhone()'を実行できないのはなぜですか?両方の実装にそのプロパティがあるので、メソッドとプロパティを定義してください。 – hvgotcodes
fwiw、抽象クラス名を変更したい場合があります。電話帳は表示されません。それはエントリを表します.... – hvgotcodes