2013-01-25 88 views
-2

我想建立一個簡單的銀行賬戶程序,即從餘額中扣除提款金額,但是當我撥打部門方法時,它不會執行扣除操作。java簡單的銀行賬戶程序

如何獲得此程序的工作,我不確定是否應該使部門方法無效或使其返回一個值。

import java.util.Scanner; 
    public class JavaApplication7 { 

    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 

     Account account1 = new Account(50.0); 

     System.out.printf("account1 balance: $%.2f\n", account1.getBalance()); 

     double withdrawalAmount; 

     System.out.print("Enter withdrawal amount for account1: "); 

     withdrawalAmount = input.nextDouble(); 

     System.out.printf("\nsubtracting %.2f from account1 balance\n", withdrawalAmount); 

     account1.dept(withdrawalAmount); 

     System.out.printf("account1 balance: $%.2f\n", account1.getBalance()); 
    } 

} 

public class Account { 
    private double balance; // instance variable that stores the balance 

    public Account(double initialBalance) 
    { 

     if (initialBalance > 0.0) 
      balance = initialBalance; 
     } 

     public double dept (double dept1){ 

     dept1=balance-dept1;  
     return dept1;  
    } 


    public double getBalance() 
    { 
     return balance; 
    } 
} 
+2

* 「喜我嘗試..」 *試着找你的shift鍵。在句子開始處應用它,像Java這樣的專有名詞,以及單詞I.這樣做可以使文本更易於閱讀。不這樣做使得文字就像試圖讀「嘟'」。 –

+4

對代碼塊使用一致的邏輯縮進。代碼的縮進旨在幫助人們理解程序流程。 –

回答

2

dept方法從不更新餘額,而是返回你從不使用的值。

您應該更新您的餘額:

public void dept (double dept1){ 
    balance=balance-dept1;  
} 
1

你的債務法迴歸平衡的新的價值,但不能將其設置

你可以做的是即:

public void dept (double dept1){ 
balance-=dept1;  
} 
0

原語如雙是通過價值傳遞的,而不是通過引用。你不會在債務方法之外改變價值。

但是 - 您正在返回一個值,但您不會將其分配給任何地方 - 嘗試分配它。

0

試試這個

System.out.println("New Balence is : "+account1.dept(withdrawalAmount)); 

或更改此功能:

public void dept (double dept1){ 
    balance=balance-dept1;   
    }