private static int Fibonoci(int n) {
static int first=0;
static int second=1;
static int sum;
if(n>0)
我得到一個錯誤「非法修改」如果我刪除static關鍵字沒有錯誤,我需要這些變量是靜態我可以在Java中聲明靜態成員函數中的靜態變量嗎?
private static int Fibonoci(int n) {
static int first=0;
static int second=1;
static int sum;
if(n>0)
我得到一個錯誤「非法修改」如果我刪除static關鍵字沒有錯誤,我需要這些變量是靜態我可以在Java中聲明靜態成員函數中的靜態變量嗎?
你不能聲明varibale的方法中作爲靜態的。
內部方法所有變量都是局部變量,在這個方法之外沒有任何存在,這就是爲什麼它們不能是靜態的。
static int first=0;
static int second=1;
static int sum;
private static int Fibonoci(int n) {
//do somthing
}
您正在嘗試編寫代碼爲斐波納契數列,併爲您不需要的,只是這裏的靜態變量是一些鏈接,誰介紹了溶膠爲
http://crunchify.com/write-java-program-to-print-fibonacci-series-upto-n-number/
只有類變量(字段)和方法可以是靜態的。 – vikingsteve
這個變量名爲Local Variables,它們在方法scop或構造函數內,它們不能是實例或類變量。
private static int COUNT;// Class Variable
private static int Fibonoci(int n) {
int a =3 ; // local variable
}
我需要這些變量是靜態的,對吧,你爲什麼需要這個?因爲用於特殊purpuse的靜態變量,但是,你可以像上面的代碼那樣創建靜態字段。
static
s在功能範圍內不允許在Java中使用。
Local variables
不能被聲明爲靜態。換句話說Static
不適用於local variables
。
我沒有看到declaring
他們static
有任何使用。
靜態字段,有時被稱爲一個類變量,當類(§12.4)初始化被體現。
你不能在方法中聲明一個靜態變量,static
意味着它是一個類的變量/方法,它屬於整個類,但不屬於它的某個特定對象。 這意味着static
關鍵字只能在'類作用域'中使用,即它在方法內部沒有任何意義。
我不知道你想達到什麼,但如果你真的想讓這些變量是靜態的,那麼你可以在你的類中聲明它們爲靜態字段。
您必須將靜態變量定義爲類中的成員。在方法中定義的變量是局部變量,它們的生命週期在方法結束時結束。局部變量是特定於調用的,成員變量是特定於對象的,靜態變量是特定於類的變量。
您需要聲明的功能之外的靜態變量:
static int first=0;
static int second=1;
static int sum;
private static int Fibonoci(int n) {
if(n>0)
你不能聲明varibale的方法中作爲靜態的。換句話說,我們可以說, 局部變量不能被聲明爲靜態的。
的根本原因:靜態變量在類加載時間分配的內存,因爲它們是類的一部分,而不是它的對象。
現在,如果靜態變量位於方法中,那麼該變量將進入方法的作用域,JVM將無法爲其分配內存。
但這正是靜態局部變量用於像C或C++這樣的語言中的原因:使用靜態內存而不是堆棧,但將其範圍限制在函數內部。類範圍中的靜態變量是另一回事,因爲它對所有其他方法都是可見的。 – SasQ
將它們包裝在一個類中。 – BigMike
'我需要這些變量是靜態的'然後將它們聲明爲類中的靜態字段。 – Pshemo
你爲什麼需要它們是靜態的? –