![](/img/trans.png)
[英]Can I declare an instance variable in Java and use it in static initialization block?
[英]Can i declare a static variable inside static member function in Java?
private static int Fibonoci(int n) {
static int first=0;
static int second=1;
static int sum;
if(n>0)
我收到錯誤“非法修飾符”,如果我刪除靜態關鍵字沒有錯誤,我需要這些變量是靜態的
您不能在方法中將varibale聲明為static。
在內部方法中,所有變量都是局部變量,在此方法之外不存在,這就是為什么它們不能是靜態的。
static int first=0;
static int second=1;
static int sum;
private static int Fibonoci(int n) {
//do somthing
}
你正在嘗試為斐波那契系列編寫代碼,為此你不需要靜態變量,只是這里有一些描述sol的代碼。
http://crunchify.com/write-java-program-to-print-fibonacci-series-upto-n-number/
Java中不允許使用函數作用域中的static
函數。
根本原因:靜態變量在類加載時被分配內存,因為它們是類的一部分而不是它的對象。
現在,如果靜態變量在方法內 ,那么該變量屬於方法的范圍,JVM將無法為其分配內存。
你不能在方法中聲明一個靜態變量, static
意味着它是一個類的變量/方法,它屬於整個類而不屬於它的某個特定對象。 這意味着static
關鍵字只能在“類范圍”中使用,即它在方法內部沒有任何意義。
我不知道你想要實現什么,但如果你真的希望這些變量是靜態的,那么你可以將它們聲明為類中的靜態字段。
這個varibles稱為局部變量,它們是方法scop或構造函數,它們不能是實例或類變量。
private static int COUNT;// Class Variable
private static int Fibonoci(int n) {
int a =3 ; // local variable
}
我需要那些變量是靜態的 ,okey,你為什么需要這個呢? 因為靜態變量用於特殊的purpuse,但是,您可以創建靜態字段,就像我上面的代碼一樣。
您必須將靜態變量定義為類中的成員。 在方法中定義的變量是局部變量,它們的生命周期在方法結束時結束。 局部變量是特定於調用的,成員變量是特定於對象的,而靜態變量是特定於類的變量。
您需要在函數外部聲明靜態變量:
static int first=0;
static int second=1;
static int sum;
private static int Fibonoci(int n) {
if(n>0)
您不能在方法中將varibale聲明為static。 換句話說,我們可以說,局部變量不能聲明為靜態。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.