Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 一个公共变量的getter和setter问题_Java_Getter Setter - Fatal编程技术网

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

Java 一个公共变量的getter和setter问题,java,getter-setter,Java,Getter Setter,我有一个温度转换器程序的任务。我必须在一个类中使用一个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

我有一个温度转换器程序的任务。我必须在一个类中使用一个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());
}
}
我怎么能对getter说,当main函数设置第一个setter时,getter会返回这个。。。第二次回来的时候

这是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 212 100 我得到的输出是错误的

32 -17.77777777777778 413.6 100 这是您应该在分配之前将fahr转换为cel的工作

在这里:

public double getCelsius(){
        return (this.celsius-32)*5/9;
}
你应该还这个,塞尔修斯

这是您应该在分配之前将fahr转换为cel的工作

在这里:

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

您应该返回这个。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;
    }

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

我建议设置者重置其他值,因此每次设置值时,另一个值也是新计算的:

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

当然这是错误的。setCelsiusx,如果你做了一个getCelsius,你应该得到这个x,但是你可以把它计算成其他的东西。选择你存储的单位。然后在另一个单位的setter和getter中进行转换。this.concerties=fahr;看起来不太好。这里需要转换。是的@Thilo你说得对。我没有完全理解这项任务。这就是解决办法。当然,这是错的。setCelsiusx,如果你做了一个getCelsius,你应该得到这个x,但是你可以把它计算成其他的东西。选择你存储的单位。然后在另一个单位的setter和getter中进行转换。this.concerties=fahr;看起来不太好。这里需要转换。是的@Thilo你说得对。我没有完全理解这项任务。这就是解决办法,谢谢。它起作用了。通过你的代码,我终于理解了最初的任务。这是最好的解决方案,谢谢。它起作用了。通过你的代码,我终于理解了最初的任务。这是最好的解决方案,谢谢。我试图用一个额外的变量来求解,但我想不出答案。这也很好,谢谢。我试图用一个额外的变量来求解,但我想不出答案。这也很好。