Java 一个公共变量的getter和setter问题
我有一个温度转换器程序的任务。我必须在一个类中使用一个veriable,这个类由两个setter和两个getter方法使用 这是主要课程: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
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你说得对。我没有完全理解这项任务。这就是解决办法,谢谢。它起作用了。通过你的代码,我终于理解了最初的任务。这是最好的解决方案,谢谢。它起作用了。通过你的代码,我终于理解了最初的任务。这是最好的解决方案,谢谢。我试图用一个额外的变量来求解,但我想不出答案。这也很好,谢谢。我试图用一个额外的变量来求解,但我想不出答案。这也很好。