簡體   English   中英

如何在另一個類的if語句中調用實例變量

[英]How to call instance variables in another class's if statement

這是教師向我們提供的問題:我不確定如何制作if語句來檢查我在BikeTester類中創建的變量。 我使用的變量在Bike Class中聲明為實例變量。 有人可以幫我解決Biketester課上的第4步嗎?

自行車課

  1. 創建一個名為Bike的類,該類僅具有以下實例變量:

    • 輪數

    • 輪胎直徑

    • 生產商名稱

    • 建造年份

  2. 創建無參數構造函數

  3. 創建使用所有字段作為參數的構造函數

  4. 為所有實例變量編寫getter和setter方法

  5. 使用上面顯示的示例覆蓋toString方法

Bike類中應該沒有main方法。

BikeTester類別

  1. 創建一個名為BikeTester的類,該類構造10個不同的Bike對象

  2. 將每個Bike對象添加到數組

  3. 使用for循環SOP每個自行車參考

  4. 僅使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM