请考虑以下代码:
float temp ;
void setTemperature(float newTemp)
{
temp = newTemp;
}
在此示例中,使用void方法。我的背景是C(虽然不高级)。在C中,void表示函数不返回任何值(我在C中学到的最简单的东西)。但是,在Java中,它看起来有点混乱。创建的方法是void
,它使用在方法外声明的变量,甚至修改它。
那么,当它被称为void
时,该方法如何获得修改它?
答案 0 :(得分:4)
在你的例子中:
float temp;
void setTemperature(float newTemp)
{
temp = newTemp;
}
此代码的作用是:
声明变量temp
使用关键字setTemperature
声明方法void
,这表示该方法不会返回任何值。此方法正在接收参数newTemp
newTemp
分配给temp
要回答您的问题,关键字void
与访问变量无关,只是意味着该函数不会返回任何值。
PS:您可能想要了解互联网上的Java范围。
答案 1 :(得分:2)
虚空意味着它不会返回任何东西。您无法在return
方法中编写void
个语句,这意味着您无法编写return x;
,但您可以编写return;
。
答案 2 :(得分:2)
void
是该方法的返回类型。 void
方法可以在不返回值的情况下修改该值。
float temp ;
/*Here you are just setting up the value
* the method is not returning anything so
* it should be called like this obj.setTemperature(20.0);
*/
void setTemperature(float newTemp)
{
temp = newTemp;
}
/*Here you are retrieving the value thats why
* While calling you should store the result
* in a variable like this: float num= obj.getTemperature();
*/
float getTemperature()
{
return temp;
}
答案 3 :(得分:1)
考虑一下C程序的这个片段。如果我犯了语法错误,请原谅我 - 自从我编写C以来已经很多年了。
typedef struct {
float value;
} Temperature;
void setTemperatureValue(Temperature *toModify, float newValue) {
toModify->value = newValue;
}
这非常类似于您引用的Java系列。它有一个功能,可以做一些事情,什么也不返回;单词void
用于表示函数不返回任何内容。
在Java中,我们有方法而不是函数,但含义是相同的。 void
表示“此方法不返回任何内容,即使它可能会对传入的参数执行操作。
Java与C中的(void *)
指针没有任何相似之处。