getter 和 setter 有一个公共变量的问题

Issue with getter and setter with one common variable

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

这是主要的class:

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());
}
}

我怎么能对 getter 说,当主函数设置第一个 setter、getter return 时...第二次 return 那个...

这是荷马罗 class:

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;
}
}

这将是正确的输出:

我得到的输出错误。

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

这是错误的,您应该在赋值前将 fahr 转换为 cel。

此处:

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

你应该returnthis.celcius

摄氏度的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;
    }

我建议通过设置器重置另一个值,所以每次设置一个值时,另一个值也是新计算的:

public static class Homero {
 double celsius;
 double fahrenheit;
 public void setCelsius(double celsius) {
  this.celsius = celsius;
  this.fahrenheit = this.celsius * 1.8 + 32;
 }

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

 public double getFahrenheit() {
  return this.fahrenheit;
 }


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