![](/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.