2016-09-19 96 views
-6
public class SavingsAccount { 
public static int annualInterestRate = 0; 
private double savingsBalance = 0; 

public double calculateMonthlyInterest(){ 
    return (savingsBalance * annualInterestRate)/12; 
} 

} 

這是我目前擁有的。除了設定值之外,我做了所有必需的部分。我需要一個靜態方法來設置annualInterestRate的值爲其他值。如你所知,要在靜態方法中修改某些內容,變量也應該是靜態的。那就是爲什麼annualInterestRate是靜態的。我的問題是,我不知道如何創建一個方法,而不是硬編碼。我需要一個可以在另一個課程中測試的方法。我應該使用set和get方法來執行我想要的嗎?如何修改變量的值?

+3

你知道什麼是'static'手段或你爲什麼要添加它無處不在?和谷歌搜索「setter方法java」會有所幫助。 – Tom

+3

提示:'modifyInterestRate(int n)' – OldCurmudgeon

+1

如果這是一個學校作業,我建議你花一些時間來試驗並親自看看會發生什麼。您可以使用VARIABLE = VALUE在Java中重新分配一個變量。通過System.out.println打印變量(VARIABLE) – Gikkman

回答

-2

我想n是未定義

private static void modifyInterestRate(int n){ //=> parameters you missing here 
     this.annualInterestRate = n; 
    } 
+0

@OldCurmudgeon感謝您指出 – Roushan45

+0

對於明顯的作業問題給出一個解決方案已經不是一個好主意(相反,讓OP學習提示來解決他的作業),但它至少應該是可編譯的。 – Tom

+1

這在靜態的情況下 – degr

0

用於訪問成員變量的方法,方法需要被聲明爲公共的,和成員變量應該是私有的,使得它可以僅通過訪問方法進行修改。

0

A static字段將是一個全局變量,綁定到類。發生一次。 因此,使字段爲非靜態字段將成爲每個SavingsAccount對象的一部分,即this

public class SavingsAccount { 

    public int annualInterestRate = 0; 

    public double savingsBalance = 0; 

    public void calculateMonthlyInterest() { 
     double y = (savingsBalance*annualInterestRate)/12; 
     savingsBalance = y +savingsBalance; 
    } 

    public void modifyInterestRate(int n) { 
     this.annualInterestRate = n; // Or simply: 
     annualInterestRate = n; 
    } 
} 

順便說領域不需要初始化。默認情況下,它們將是0,0.0,null,false。

0

使這些變量靜態意味着SavingsAccount的每個實例都會看到相同的值。

當您創建我的SavingsAccount時,請設置值等於Warren Buffet的餘額。

更好的方法是使用實​​例變量:

public class Account { 
    private double balance; 

    public Account(double balance) { this.balance = balance; } 

    public double getBalance() { return this.balance; } 
    public void setBalance(double newBalance) { this.balance = newBalance; } 
}