【发布时间】:2016-09-13 02:17:34
【问题描述】:
我正在研究继承(Java),并编写了以下代码。第一部分是CarBase,然后我创建了一个子类1,称为Bus。
我的想法是先判断是否是总线,通过这样做,我需要一个布尔值[if(isBus)],但是当我在Eclipse中编写这段代码时,有一个错误消息,说'@ 987654324@ 无法解析为变量'。
有人可以告诉我如何解决这个问题吗?我需要先声明布尔变量吗?
另一个问题是关于局部变量的声明。
在 getOnBus(0 方法中,我有一个名为 temp 的局部变量,我被告知,每当在方法中使用局部变量时,我需要先声明它,然后才能使用它,但我看到有人像下面这样直接使用,我在徘徊这两者有什么区别?
public class Bus extends CarBase {
//Unique bus properties
public int max_Passenger = 35;
public int current_Passenger = 0;
// unique bus method
public boolean getOnBus(int p_amount) {
if(isBus) {
int temp = 0; // <===
temp = current_Passenger + p_amount; // <===
if( temp > max_Passenger) {
return false;
} else {
current_Passenger = temp;
return true;
}
}
return false;
}
}
或者如果我使用它而不声明它是否有区别?
public class Bus extends CarBase {
//Unique bus properties
public int max_Passenger = 35;
public int current_Passenger = 0;
// unique bus method
public boolean getOnBus (int p_amount) {
if(isBus) {
int temp=current_Passenger+p_amount; // <====
if( temp > max_Passenger) {
return false;
} else {
current_Passenger = temp;
return true;
}
}
return false;
}
}
代码如下
第一部分 CarBase(父)
public class CarBase {
public int speed;
public String name;
public String color;
public int maxSpeed = 90;
// Method
public void speedUp(int p_speed) {
int tempSpeed = 0;
if (p_speed > 0) {
tempSpeed = speed + p_speed;
}
if (tempSpeed <= maxSpeed) {
speed =tempSpeed;
}
}
}
第二部分总线(Child1)
public class Bus extends CarBase {
//Unique bus properties
public int max_Passenger = 35;
public int current_Passenger = 0;
// unique bus method
public boolean getOnBus (int p_amount) {
if (isBus) {
int temp = 0;
temp = current_Passenger + p_amount;
if (temp > max_Passenger) {
return false;
} else {
current_Passenger = temp;
return true;
}
}
return false;
}
}
【问题讨论】:
-
getOnBus是Bus类的一个方法,那你为什么认为必须“判断是否是总线”。你肯定知道这是一辆公共汽车。 -
对于第二个问题,没有区别。此外,
getOnBus方法在Car类中对我来说没有意义,因为它似乎仅限于Bus。 -
请一次一个问题。
-
@Eran 非常感谢您的帮助。 “isBus”对我来说成为问题的原因是
-
@Eran 非常感谢您的评论。如果我有一个子类2,即SportsCar,“getOnBus”方法对SportsCar没有任何意义,但对于Bus,在这种情况下,是否需要“判断是否是公共汽车”?
标签: java variables if-statement local