亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

兩個對象以某種方式互相更新

兩個對象以某種方式互相更新

慕標5832272 2023-11-10 15:37:18
我有一個名為 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您正在為所有這些更改它



查看完整回答
反對 回復 2023-11-10
  • 1 回答
  • 0 關注
  • 161 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號