繁体   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