2014-04-21 128 views
-2

我被要求重写一个方法来实现新的行为,我已经做了构造函数和方法。重写方法

private String name; 
private boolean disease; 

public Area(Position pos, String name, boolean disease) { 
    super(pos); 

    this.name = name; 
    this.disease = disease; 
} 

public String getName() { 
    return name; 
} 

和方法我要重写上的一个区域,使疾病得以停止,如果药是足够

public boolean hasDisease() { 
    return disease; 
} 

我尝试使用

if (medicine = true) { 
     disease = false 
    } 
    return disease = true; 
} 

但引起其他测试失败。

+4

比较:'=='。作业:'='。 –

回答

5

您使用=而不是==来测试是否相等。

if(medicine == true) { // <-- Fixed this. 
    disease = false 
} 
    return disease = true; 
} 

可以解决这个问题更:

if(medicine) 
    disease = false 
return disease; 
0

对答案添加上述

=是赋值运算符,所以说

INT A = B;

a将取b的值。

其中as ==是比较运算符。

因此,a == b实际上是一个函数调用,如果a和b具有相同的值,则返回true的布尔结果,如果不具有相同的值,则返回false。对于像int,double,Boolean,float等基本类型,它会比较值,对于复杂类型(如某些对象的实例)(大多数语言),它会比较变量的内存位置。换言之,

String s = "This is True"; 
if(s == "This is True"){ 
    return true; 
} 
return false; 

将永远不会返回true,因为s和“This is True”不会驻留在内存中的相同位置。为此,您需要使用

if(s.equals("This is True"){ 
    return true; 
} 
return false;