3 回答

TA貢獻1865條經(jīng)驗 獲得超7個贊
你應(yīng)該聲明youngestAge為靜態(tài)變量。這樣所有的都petObject可以共享相同的值。
static int youngestAge=9999;
你的 setter 和 getter 方法也不合適。
public static String setPetName()
{
return petName;
}
應(yīng)該:
public static void setPetName(String name)
{
petName=name;
}
也不要忘記從 main 方法中設(shè)置值PetObject。
...
petName= input.next();
PetObject.setPetName(petName);
...

TA貢獻1820條經(jīng)驗 獲得超3個贊
這段代碼有很多問題。
但是為了直接回答你的問題,想一想如果每次 for 循環(huán)運行時它都重新創(chuàng)建寵物對象,那么這個程序中可能有多少寵物對象,因為它在 for 循環(huán)內(nèi)。但是,簡單地將它移到 for 循環(huán)之外將無濟于事,因為那樣的話,每次運行 for 循環(huán)時,您都會不斷地重置同一個 pet 對象的值。考慮制作一系列寵物物品。
此外,您的代碼實際上從未訪問過寵物對象實例變量
此外,正如其他人指出的那樣,您使用 static 還存在其他問題。干杯。

TA貢獻1876條經(jīng)驗 獲得超6個贊
每次創(chuàng)建Pet時,您都會為該對象獲得一個不同的youngestAge ,其值為 9999。因此,每次它都會將最新的petAge與 9999 進行比較,并在您輸入的petAge小于 9999時為您提供最新的petAge 。
如果需要存儲最小年齡,則將其保存在靜態(tài)字段中。因為,保留一個額外的字段來存儲所有對象的最小年齡對于內(nèi)存來說是多余的。
如果您希望使用現(xiàn)有設(shè)計獲得所需的輸出,請執(zhí)行以下操作:
使youngestAge靜態(tài)化:
static int youngestAge=9999;
并且也不要忘記使該方法也成為靜態(tài)的。不再需要使其成為對象屬性,它使用的字段變量都是靜態(tài)的。
public static int getYoungestPet()
{
if (petAge<youngestAge)
youngestAge=petAge;
return youngestAge;
}
添加回答
舉報