我有一个温度转换器程序的任务。我必须在一个类中使用一个veriable,这是由两个setter和两个getter方法使用的。

这是主要的类:

public class Main {

public static void main(String[] args) {
    Homero ho = new Homero();
    ho.setCelsius(0);
    System.out.println(ho.getFahrenheit());
    System.out.println(ho.getCelsius());
    ho.setFahrenheit(212);
    System.out.println(ho.getFahrenheit());
    System.out.println(ho.getCelsius());
}
}


我该如何对吸气剂说,当主函数设置了第一个设置器时,吸气剂将以此方式返回……而第二次以该方式返回……

这是Homero类:

public class Homero {
double celsius;

public void setCelsius(double celsius){
    this.celsius = celsius;
}

public void setFahrenheit(double fahr){
    this.celsius = fahr;
}

public double getFahrenheit(){
        return (this.celsius*9)/5+32;
}


public double getCelsius(){
        return (this.celsius-32)*5/9;
}
}


这将是正确的输出:


32.0
0.0
212.0
100.0


和我得到的错误输出。


32.0
-17.77777777777778
413.6
100.0

最佳答案

摄氏的getter和setter不需要转换。在华氏度的getter和setter中进行计算:

    public void setCelsius(double celsius){
        this.celsius = celsius;
    }

    public void setFahrenheit(double fahr){
        this.celsius = (fahr -32)*5/9;
    }

    public double getFahrenheit(){
        return this.celsius*9/5+32;
    }


    public double getCelsius(){
        return this.celsius;
    }

10-04 23:35