![](/img/trans.png)
[英]How to call a class of instance variables through a method of another class
[英]How to call instance variables in another class's if statement
這是教師向我們提供的問題:我不確定如何制作if語句來檢查我在BikeTester類中創建的變量。 我使用的變量在Bike Class中聲明為實例變量。 有人可以幫我解決Biketester課上的第4步嗎?
自行車課
創建一個名為Bike的類,該類僅具有以下實例變量:
輪數
輪胎直徑
生產商名稱
建造年份
創建無參數構造函數
創建使用所有字段作為參數的構造函數
為所有實例變量編寫getter和setter方法
使用上面顯示的示例覆蓋toString方法
Bike類中應該沒有main方法。
BikeTester類別
創建一個名為BikeTester的類,該類構造10個不同的Bike對象
將每個Bike對象添加到數組
使用for循環SOP每個自行車參考
僅使用2004年之后制造且車輪直徑大於4的那些自行車使用SOP循環進行SOP
我正在最后一步(第2部分中的第4步)。
我有以下代碼:
// Bike類中的四個參數構造函數
公共自行車(int車輪,雙輪胎,弦樂器制造,int年)
{ numWheels = wheels; diameterOfTires = tires; manufacturer = manuf; yearBuilt = year; }
Bike bike10 = new Bike(5, 2.5, "Bob", 1995);
//排除其他9個自行車對象只是為了理解這個想法。
Bike[] bikes = new Bike[10];
bikes[0] = bike1;
bikes[1] = bike2;
bikes[2] = bike3;
bikes[3] = bike4;
bikes[4] = bike5;
bikes[5] = bike6;
bikes[6] = bike7;
bikes[7] = bike8;
bikes[8] = bike9;
bikes[9] = bike10;
// 需要幫助的第4步
for(int y = 0; y <bikes.length; y ++)//我的循環來解決問題(無效)
{
if(yearBuilt > 2004 && diameterOfTires > 4)
{
System.out.println(bikes[y]);
}
}
謝謝! 任何幫助都將是不錯的,因為我一直努力解決這個問題!
自行車應具有可以讓您獲得成功的屬性。
您可以使用
for (Bike b : bikes) {
if(b.getYearBuilt() > 2004 && b.getTireDiameter() > 4) {
// whatever you want to do here.
}
}
或者如果您需要使用索引for循環,則可以使用
for (int i = 0; i < bikes.length; i++) {
if(bikes[i].getYearBuilt() > 2004 && bikes[i].getTireDiameter() > 4) {
// whatever you want to do here.
}
}
從您的問題尚不清楚運行代碼時出了什么問題。 它不編譯嗎,您是否獲得異常,是否打印出您不需要的內容,或者您什么都看不到?
但是,我可以就如何解決此問題提供一般性建議。 如果您在Bike類中創建了setter和getter( int getNumWheels()
, void setNumWheels(int)
等),則可以使用它們來獲取每個Bike的實例變量。
for (y = 0; y < bikes.length; y++) {
if (bikes[y].getYearsBuilt() > 2004 && bikes[y].getDiameterOfTires() > 4) {
System.out.println(bikes[y]);
}
}
該代碼將循環遍歷您的所有自行車(前提是您已在與此代碼相同的類中聲明了它,否則必須首先獲取它。
對於循環的每次迭代,您都必須選擇一輛特定的自行車來測試制造年份和輪胎直徑。 為此,您可以使用循環索引y
獲取Bike對象,然后調用相關的吸氣劑。
只要if
語句為true,就會調用System.out.println(bikes[y])
來打印出Bike類的String toString()
方法。 如果您沒有重寫該方法,則只會看到類名和哈希碼(例如, java.lang.String@a132d3
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.