gpt4 book ai didi

java - 在 void 方法中更改变量?

转载 作者:太空宇宙 更新时间:2023-11-04 06:33:55 25 4
gpt4 key购买 nike

我需要设置温度等级,并且需要在 void 方法中更改度数。

如何在 void 方法中访问这些变量,并确保 void 方法将参数更改为我需要的变量?

我需要转换度数,但不知道如何访问不在集合类中的度数变量?

Temperature (double enteredtemp,char scale ){
degrees=Temperature.set();
}

public void set (double enteredtemp, char scale){
if (scale=='r'||scale=='R'){ degrees=(enteredtemp/(9/5));}
else if (scale=='c'|| scale=='C') {degrees=enteredtemp+273.15;}
else if (scale=='F'||scale=='f'){degrees=((enteredtemp+459.67)*9/5);}

最佳答案

您正在实现一个 setter ,其职责是更改度数的值。 Setter 通常具有 void 返回值 - 这意味着它们根本不返回任何内容。

您发布的这段代码看起来像一个“ok” setter :

public void set (double enteredtemp, char scale){
if (scale=='r'||scale=='R'){ degrees=(enteredtemp/(9/5));}
else if (scale=='c'|| scale=='C') {degrees=enteredtemp+273.15;}
else if (scale=='F'||scale=='f'){degrees=((enteredtemp+459.67)*9/5);}

但是,您在构造函数中调用它的方式是完全错误的。此行没有任何意义:

degrees=Temperature.set();

请记住,您的 set 函数返回 void,因此尝试将该值分配给度数是行不通的。此外,它完全忽略了调用 setter 的要点(即让 set 函数将值分配给度数)。另一个问题是你调用 set() 就好像它是一个静态方法 - 它不是(如果是,它会再次错过使用 setter 的点)。

从构造函数调用 set 函数的正确方法是:

Temperature (double enteredtemp,char scale )
{
set(enteredtemp, scale)
}

另一个例子...

Temperature temp = new Temperature(98.6, 'F');   // normal temp
temp.set(102, 'F'); // now we've got a fever

关于java - 在 void 方法中更改变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25703477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com