将值从布尔方法传递到同一个类中的另一个方法

时间:2015-10-02 03:27:39

标签: java

我在数据定义类中:

我在课堂上定义了以下内容:

    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()方法,我必须获得该值 不知何故,来自同一个类,即数据定义类。

如果我的逻辑是正确的,请告诉我,或者建议如何更好 解决这个问题。

由于

2 个答案:

答案 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功能不再需要,您可以将其删除:)(或者将其注释掉,因为这是更好的做法)