我有一个温度转换器程序的任务。我必须在一个类中使用一个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());
}
}
我怎么对吸气剂说,当主函数设置了第一个setter时,吸气剂以...返回;第二次以那个...返回。
这是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;
}
}
这将是正确的输出:
我得到的输出错误。
答案 0 :(得分:2)
摄氏温度的获取器和设置器不需要转换。在吸气剂和吸气剂中进行华氏度计算:
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;
}
答案 1 :(得分:2)
我建议由设置员重置另一个值,因此每次您设置一个值时,另一个也是新计算的:
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;
}
}
答案 2 :(得分:0)
public void setFahrenheit(double fahr){
this.celsius = fahr;
}
这很破旧,您应该在分配前将fahr转换为cel。
此处:
public double getCelsius(){
return (this.celsius-32)*5/9;
}
您应该返回this.celcius