私はというサブクラスをシリアル化する必要がある大学の課題を持っています。現在です。新しいCurrentアカウントの詳細を入力してシリアル化できるようにする必要があります。別のクラスのインスタンス変数でユーザー入力を受け入れる方法を教えてください。
アカウントクラスがスーパークラスであるクラス階層があります。 現在のオブジェクトを追加、表示、一覧表示、編集、削除することは可能です。静的変数を介して行われるように、ユーザーにアカウント番号を追加するように求めることはできません。例:**accountNo** = **nextAvailableNumber++**
;
私はユーザー名とdateOpened詳細を取り上げなければなりません。すでにNameクラスを作成していますが、Nameクラスにはnameという名前の変数がありますので、サブクラスのStringとして使用できません。それは私に不一致例外を与えている、名前と不一致の例外に文字列を変換することはできませんの日付をintに変換することはできません。
私の質問は次のとおりです。私はユーザーの入力を取らなければならない場合。私は入力を取るためにNameクラスの型名の変数nameを使用する必要があります。Date
の**dateOpened**
変数で同じことをしていますか?私はキャスティングする必要があります。ここに私のコードは、ユーザーがアカウントを設定することができますメニューベースのシステムです。タイプName
& & Date
Date型の変数**dateOpened**
の名前の変数を持つ
// Nameクラス。
package ie.lyit.bank;
public abstract class Account
{
protected Name name; // COMPOSITION - Account HAS-A name (object of class Name)
protected String address;
protected double balance;
protected Date dateOpened; // COMPOSITION - Account HAS-A dateOpened (object of class Date)
protected int accountNo;
private static int nextUniqueNumber = 1; // Next available unique Account number
// Default Constructor - set Instance Variables to null
public Account()
{
name = new Name();
address= new String(); // OR address = ""; OR address = null;
balance = 0.0;
dateOpened = new Date();
// Set accountNo to static nextUniqueNumber & increment it for next accountNo
accountNo = nextUniqueNumber++;
}
// Current class with read() method
// Read method to read in the account details from the user
public void read()
{
Scanner keyboardIn = new Scanner(System.in);
System.out.println("ENTER ACCOUNT DETAILS ==>");
System.out.print("ACCOUNT NAME : ");
name = keyboardIn.nextLine();
System.out.print("ACCOUNT ADDRESS : ");
address = keyboardIn.nextLine();
System.out.print("ACCOUNT BALANCE : ");
balance = keyboardIn.nextDouble();
System.out.print("ACCOUNT DATE OPENED : ");
dateOpened = keyboardIn.nextInt();
}
}
'Name'クラスの目的は何ですか?それは 'name'属性以外のものを含んでいますか? – Berger
名前クラスの目的は、単に名前をモデル化することです。 – Daniel