簡體   English   中英

我可以在Java中的靜態成員函數中聲明一個靜態變量嗎?

[英]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/

http://electrofriends.com/source-codes/software-programs/java/basic-programs/java-program-find-fibonacci-series-number/

Java中不允許使用函數作用域中的static函數。

根本原因:靜態變量在類加載時被分配內存,因為它們是類的一部分而不是它的對象。

現在,如果靜態變量在方法內 ,那么該變量屬於方法的范圍,JVM將無法為其分配內存。

Local variables不能聲明為static。 換句話說, Static不適用於local variables

而且我沒有看到在那里declaring它們static任何用法。

在靜態字段上跟隨JL

初始化類時,靜態字段(有時稱為類變量)會顯示(第12.4節)。

你不能在方法中聲明一個靜態變量, 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM