我在数据定义类中:
我在课堂上定义了以下内容:
private double areaOfPainting;
private boolean GMUCheck;
public double getArea(){
return areaOfPainting;
}
public void setArea(double a){
if(a > 0 && a <= 36){
this.areaOfPainting = a;
}
}
// x是我在执行类
中执行主类后从用户获得的值//以下方法是从JOptionPane.YES_NO_OPTION的用户对话框中获取它的整数值。因此,当用户点击“是”按钮时,我得到0值,1表示“否”
public boolean isGMU(int x){
if(x == 0){
return true;
}
else{
return false;
}
}
//Now, I wanted to define a method called cost such that if the above method’s `isGMU` result is true then my cost will be `(16+areaOfPainting)`
otherwise it will be `(26+areaOfPainting)` and this is how I approached
to solve the problem :
public int costCalculation(){
if(isGMU()){
return (16+ areaOfPainting);
}
else{
return (26 + areaOfPainting);
}
}
但是,我必须为isGMU()
方法提供一个值才能使其正常工作。我有点想到如何传递价值
到isGMU
方法?对于isGMU()
方法,我从中获取值
用户,对于costCalculation()
方法,我必须获得该值
不知何故,来自同一个类,即数据定义类。
如果我的逻辑是正确的,请告诉我,或者建议如何更好 解决这个问题。
由于
答案 0 :(得分:0)
我认为(在costCalculation
中)您希望将int
传递给isGMU
方法。
if (isGMU(areaOfPainting)) {
return (16 + areaOfPainting);
} else {
return (26 + areaOfPainting);
}
此外,您当前的isGMU
可以写成
public boolean isGMU(int x) {
return (x == 0);
}
或者您可能想将结果分配给该字段。
之类的东西public boolean isGMU(int x) {
return this.GMUCheck = (x == 0);
}
和
if (this.GMUCheck) {
return (16 + areaOfPainting);
} else {
return (26 + areaOfPainting);
}
或使用ternary之类的
return (this.GMUCheck ? 16 : 26) + areaOfPainting;
答案 1 :(得分:0)
我认为最简单的解决方案是为GMUCheck添加一个setter和getter。
像
这样的东西public void setGMUCheck(int x){
if(x == 0) this.GMUCheck = true;
else this.GMUCheck = false;
}
public boolean getGMUCheck(){
return this.GMUCheck;
}
现在您可以编写costCalculation()函数,如下所示:
public int costCalculation(){
if(getGMUCheck()) return (16+ areaOfPainting);
else return (26 + areaOfPainting);
}
现在,当您的用户按下JOptionPane中的YES或NO选项时会发生什么,您将调用setGMUCheck(x)
方法,并将x设置为您所描述的值。
这意味着您的isGMU功能不再需要,您可以将其删除:)(或者将其注释掉,因为这是更好的做法)