考慮下面的代碼:'void'究竟做什麼?
float temp ;
void setTemperature(float newTemp)
{
temp = newTemp;
}
在這個例子中,使用空隙方法。我的背景是C(不是先進的)。在C中,void意味着一個函數不會返回任何值(我在C中學到的最簡單的東西)。但是,在Java中,它似乎更加混亂。創建的方法是void
,它使用在方法外部聲明的變量,甚至修改它。 那麼,當它是所謂的void
時,該方法如何獲取修改它?
考慮下面的代碼:'void'究竟做什麼?
float temp ;
void setTemperature(float newTemp)
{
temp = newTemp;
}
在這個例子中,使用空隙方法。我的背景是C(不是先進的)。在C中,void意味着一個函數不會返回任何值(我在C中學到的最簡單的東西)。但是,在Java中,它似乎更加混亂。創建的方法是void
,它使用在方法外部聲明的變量,甚至修改它。 那麼,當它是所謂的void
時,該方法如何獲取修改它?
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;
}
Void意味着它不返回任何東西。您不能在void
方法中編寫return
語句,這意味着您不能編寫return x;
,但可以編寫return;
。
你可以寫一個'return'語句,但表達式必須是空的。 –
@SotiriosDelimanolis是true – 2014-01-05 04:59:59
@SotiriosDelimanolis我已修改答案 – 2014-01-05 05:02:22
在您的例子:
float temp;
void setTemperature(float newTemp)
{
temp = newTemp;
}
這段代碼的作用是:
聲明一個變量temp
聲明的方法setTemperature
用關鍵字void
,這說的方法將不會返回任何價值。該方法接收參數newTemp
newTemp
到temp
要回答你的問題,關鍵字void
不具有訪問的變量相關,因此只是意味着函數不會返回任何值。
PS:您可能想了解有關Internet上的Java範圍。
該字段不是「私人」。它具有默認訪問權限。 –
愚蠢的錯誤,感謝您指出。 – Christian
考慮一下C程序的這個片段。原諒我,如果我做了語法錯誤 - 這是很多年以來我編程C.
typedef struct {
float value;
} Temperature;
void setTemperatureValue(Temperature *toModify, float newValue) {
toModify->value = newValue;
}
這非常像Java的,你所引用的行。它有一個功能可以完成一些功能,並且不會返回任何內容;字void
用於指示函數不返回任何內容。
在Java中,我們有方法而不是函數,但含義相同。 void
的意思是「這個方法沒有返回值,即使它可能做的東西到在傳遞的參數。
Java沒有什麼很類似於(void *)
指針在C
這意味着* *正好相同就像它在C中所做的一樣。上次我看,C也有變量範圍。 –
同一類的方法總是可以訪問類變量。 –