我有一個名為 savingAccount 的對象,當我在 main 上創建兩個這種類型的對象時,我可以設置用戶初始帳戶余額。當我創建第一個對象時,初始值設置為 3000,當我創建第二個對象時,我的第一個和第二個對象的初始值都設置為 2000首先,我認為這與公共方法和類有關,但我將它們全部設置為私有、受保護等,問題仍然存在。這是我的對象:public class SavingsAccount {private static double annualInterestRate = 0;private static double savingsBalance = 0;private static double monthlyInterest = 0;SavingsAccount(double savingsBalance){ this.savingsBalance = savingsBalance;}void setAnnualInterestRate(double annualInterestRate){ this.annualInterestRate = annualInterestRate;}private static void updateSavingsBalance(){ savingsBalance = savingsBalance + monthlyInterest;}double getSavingsBalance(){ return savingsBalance;}}這是我的司機: SavingsAccount saver1 = new SavingsAccount(3000.00); System.out.println("User 1 balance: " + saver1.getSavingsBalance()); // 3000 SavingsAccount saver2 = new SavingsAccount(2000.00); System.out.println("User 2 balance: " + saver2.getSavingsBalance()); // 2000 //2000 for both now System.out.println("User 1 balance: " + saver1.getSavingsBalance()); System.out.println("User 2 balance: " + saver2.getSavingsBalance());
1 回答

回首憶惘然
TA貢獻1847條經驗 獲得超11個贊
問題是您使用的是static
變量,而不是非靜態(實例)變量。
每個靜態變量只有一個化身 - 因此在您的情況下,無論SavingsAccount
您創建多少個對象,它們都共享相同的savingsBalance
數據。因此,當您(認為您是)更改其中之一時SavingAccount
,savingsBalance
您正在為所有這些更改它
添加回答
舉報
0/150
提交
取消