2012-01-14 15 views
0

私はまだ多くの問題を抱えています。私はまだJavaを学んでおり、私の本は私がネット上で共通している課題を設定しています。メソッドの取得と継承の混乱

私は銀行口座プログラムを作成する必要があります。口座名義人には貯金口座(当座貸越ファシリティーはありません)と当座預金口座(£100の関心施設はありません) 。

私は当座貸越をまだ実装しておらず、払い戻しと預金機能を準備するには半分しかありませんが、私の疑問は関心事です。私はスーパークラスで貯蓄口座残高と当座預金残高を定義しました私は貯蓄勘定科目に興味を持っています。私はset.nameメソッドを使用しようとしていますが、間違っていることを明確に示しています....

大きな笑顔と助言を与えることができます誰かありがとう!

次のようにスーパークラスがある:次のように

public class BankDetails 
    { 
     private String customer; 
     private String accountno; 
     private double savebalance; 
     private double checkbalance; 


//Constructor Methods 

public BankDetails(String customerIn, String accountnoIn, double savebalanceIn, double checkbalanceIn) 
     { 
      customer = customerIn; 
      accountno = accountnoIn; 
      savebalance = savebalanceIn; 
      checkbalance = checkbalanceIn; 
     } 

     // Get name 
     public String getcustomername() 
     { 
      return (customer); 
     } 

     // Get account number 
     public String getaccountnumber() 
     { 
      return (accountno); 
     } 

     public double getcheckbalanceamount() 
     { 
      return (checkbalance); 
     } 

     public double getsavebalanceamount() 
     { 
      return (savebalance); 
     } 


public void savewithdraw(double savewithdrawAmountIn) 

    { 
     savebalance = savebalance - savewithdrawAmountIn; 

    } 

public void checkwithdraw(double checkwithdrawAmountIn) 

    { 
     checkbalance = checkbalance - checkwithdrawAmountIn; 

    } 


public void savedeposit(double savedepositAmountIn) 

    { 
     savebalance = savebalance - savedepositAmountIn; 

    } 

public void checkdeposit(double checkdepositAmountIn) 

    { 
     checkbalance = checkbalance - checkdepositAmountIn; 

    } 




    } // End Class BankDetails 

サブクラスである:あなたが持っているので

import java.util.*; 

public class Savings extends BankDetails 
    { 

     private String saveaccount; 
     private double interest; 


     public Savings(String customerIn, String accountnoIn, float interestIn, 
     String saveaccountIn, double savebalanceIn) 
     { 


      super (customerIn, accountnoIn, savebalanceIn, interestIn); 


      saveaccount = saveaccountIn; 
      interest = interestIn; 

     } 


     public String getsaveaccountno() 
     { 
      return (saveaccount); 
     } 

     public double getinterestamount() 
     { 
      return (interest); 
     } 


     public void interestamount(String[] args) 

     { 
      BankDetails.getsavebalanceamount(savebalance); 
      interest = (savebalance/100) * 1.75; 


     } 


     } 

答えて

3

は怪しい、という名前のバランスを(、アクセスするために、スーパークラスのgetSaveBalance()メソッドを使用します貯蓄勘定科目ですが、他の場所で残高を保ちます)。

(現在のところ、それはgetsavebalanceamount()だ、私はJavaの規則を維持するための名前変更を前提としています。)


は、私はあなたのゲッターとセッター、例えば、getInterestAmount()、​​などに名前を付けるときに一貫性のあるキャメルケースを使用してお勧めします。

例えば、私はシンプルなゲッター/セッターのコメントに対してお勧めしますが、行う場合は、Javadocの表記法を使用しています

/** Returns current savings account balance. */ 
public double getSaveBalance() { ... etc ... } 

私も例えば、として、現在お使いのゲッターでは、不要な括弧を避けるためお勧めします。:

public double getSaveBalance() { 
    return saveBalance; // No parens required. 
} 
+0

okが怪しい名前の、ありがとうございました?? これは私がよくやるかどうかわからなかったのですが、適切なサブクラスにセーブバランスと小切手バランスを入れ、それらに撤回と預金の方法を入れなければならないと思いますか?私はスーパーカルチャーを維持する方が良いかもしれないと感じました。両方のサブクラスに発生する計算であるためです。 – Phil

+0

私はまだ私が理解していないと思いますが、サブクラスのスーパークラスから getSaveBalance()メソッドを使用していると思いますか? 公共ボイドinterestamount(文字列[]引数) {BankDetails.getsavebalanceamount(savebalance)。 interest =(セーブバランス/ 100)* 1。75; } – Phil

+0

@Phil 'savebalance'は' getSaveBalance() 'と同じではありません。一つはスーパークラスで 'private'と宣言された変数です。一つは' public'と宣言されたメソッドです。 –

2

私はあなたがこのような何かを示唆、

interface Account{ 
    int getAccountNumber(); 
    float getBalance(); 
} 

public class SavingAccount implements Account, Interest{ 
    int accountNumber; 
    public int getAccountNumber(){ 
    return accountNumber; 
    } 
    float balance; 
    public float getBalance(){ 
    return balance; 
    } 
    float savingInterestRate; 
    public float getInterestRate(){ 
    return savingInterestRate; 
    } 
} 

public class CheckingAccount implements Account, OverDraft{ 
    int accountNumber; 
    public int getAccountNumber(){ 
    return accountNumber; 
    } 
    float balance; 
    public float getBalance(){ 
    return balance; 
    } 
} 

interface Interest{ 
    float getInterestRate(); 
} 

interface OverDraft{ 
.... 
}