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;
}
}
这将是正确的输出:
- 32.0
- 0.0
- 212.0
- 100.0
我得到的输出错误。
- 32.0
- -17.77777777777778
- 413.6
- 100.0
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;
}
}
我有一个温度转换器程序的任务。我必须在 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;
}
}
这将是正确的输出:
- 32.0
- 0.0
- 212.0
- 100.0
我得到的输出错误。
- 32.0
- -17.77777777777778
- 413.6
- 100.0
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;
}
}