2016-08-26 4 views
-6

おそらくちょっとしたエラーですが、どこにも見つからないようです。私はプログラムを実行すると、それは$ 100堆積した後、」印刷します:普通預金口座を:,も私のクラスを撤回お金は変更されません撤退後の残高として、動作していないようだ正しい出力が得られない

public class CheckingandSavings 
{ 

    public static void main(String[] args) { 
     Savings savings = new Savings(1001,1000.0); 
     Checking checking = new Checking(1002, 2000.0); 

     System.out.println("At the beginning: " + savings); 
     savings.deposit(100); 
     System.out.println("After depositing $100: " + savings); 
     savings.withdraw(500); 
     System.out.println("After withdrawing $500: " + savings); 

     System.out.println(""); 

     System.out.println("At the beginning: " + checking); 
     checking.deposit(100); 
     System.out.println("After depositing $100: " + checking); 
     checking.withdraw(500); 
     System.out.println("After withdrawing $500: " + checking); 
    } 
} 

public class Account { 

    private int accountNumber; 
    private double accountBalance; 

    //The Two-Arg Constructor 
    public Account(int accountNumber, double accountBalance) 
    { 
     setAccountBalance(accountBalance); 
     setAccountNumber(accountNumber); 
    } 

    //Getter for accountNumber 
    public int getAccountNumber() 
    { 
     return accountNumber; 
    } 

    //Setter for accountNumber 
    public void setAccountNumber(int accountNumber) 
    { 
     if (accountNumber >= 0) 
      this.accountNumber = accountNumber; 
    } 

    //Getter for accountBalance 
    public double getAccountBalance() 
    { 
     return accountBalance; 
    } 

    //Setter for accountBalance 
    public void setAccountBalance(double accountBalance) 
    { 
     if (accountNumber >= 0) 
      this.accountBalance = accountBalance; 
    } 

    //Deposit to accountBalance 
    public void deposit(double amount) 
    { 
     if (amount > 0) 
      this.accountBalance += amount; 
    } 

    //Withdraw from accountBalance 
    public double withdraw(double amount) 
    { 
     if (amount > 0 || amount > this.accountBalance) 
      return 0; 

     this.accountBalance -= amount; 
     return this.; 
    } 

    //Returns a string of the instance data 
    public String toString() 
    { 
     String result = ""; 
     result += "Account Number: " + this.accountNumber; 
     result += "\nAccount Balance: $" + String.format("%.2f", this.accountBalance); 
     return result; 
    } 
} 

public class Savings extends Account { 

    //The two-arg constructor 
    public Savings(int accountNumber, double accountBalance) 
    { 
     super(accountNumber, accountBalance); 
    } 

    //Returns a string of the instance data 
    public String toString() 
    { 
     String result = ""; 
     result += "Savings Account: \n" + super.toString(); 
     return result; 
    } 
} 

public class Checking extends Account { 


    //The two-arg constructor 
    public Checking(int accountNumber, double accountBalance) 
    { 
     super(accountNumber,accountBalance); 
    } 

    //Returns a string of the instance data 
    public String toString() { 
     String result = ""; 
     result += "Checking Account: \n" + super.toString(); 
     return result; 
    } 
} 
+1

関連するコードを投稿し、それを少しだけフォーマットしてみてください;-) –

+0

または、それをデバッグして自分で修正してください... – Meo

答えて

2

あなたの撤回を見てみます。方法:

//Withdraw from accountBalance 
public double withdraw(double amount) 
{ 
    if (amount > 0 || amount > this.accountBalance) //This needs to be && 
     return 0; 

    this.accountBalance -= amount; 
    return this.; //I am assuming you meant this to be this.accountBalance? 
} 

あなたが撤回したい量が0以上であるか、あなたの口座残高よりも大きい場合は、私はあなたが言いたいので、代わりにamount > 0 && amount > this.accountBalance

を置くと思う0を返す、と言っていますまた、01を返すべきです。

最後に、お客様のtoStringメソッドの上に@Override注釈を配置する必要があります。これは、あなたが親メソッドをオーバーライドしていることをコンパイラに知らせます。

関連する問題