【发布时间】:2018-11-18 20:17:18
【问题描述】:
我有以下方法,如果增长率小于 0,则返回 true,否则返回 false。我想知道它将是哪种方法,mutator 或 accessor。
public boolean endangered(double GR) {
if (GR < 0) {
return true;
} else {
return false;
}
}
它不会访问或改变任何值——它似乎是一个正在返回的新值,并且可能会在某处使用。
以下是完整的课程,如果有帮助的话:
public class Species {
private int population;
private double growthRATE;
private String speciesName;
private String endangered;
public Species() {
speciesName = "Dingo";
population = 1000;
growthRATE = 0.6;
}
public Species(String name, int population, double GR) {
name = name;
population = population;
growthRATE = GR;
}
//Mutator methods
//accessor methods
public boolean endangered(double GR) {
if (GR < 0) {
return GR < 0;
} else {
return GR < 0;
}
}
}
【问题讨论】:
-
它会改变任何状态吗?它是否访问任何状态?你的结论是什么?
-
请注意,它应该只是
return GR < 0; -
考虑给
GR参数一个更有意义的名字。 -
@neburRB 我知道这些问题的答案。我问他们是为了让你自己考虑一下。您应该能够自己看到,此方法不访问任何状态,而仅使用调用者提供的参数。因此,由于它既不变异也不提供对任何状态的访问权限,根据定义,它既不是变异器也不是访问器。
-
您的班级已经有一个
growthRATE字段。您不是要检查 that 字段是否为< 0,而不是将其作为单独的参数吗?