2009-10-08 20 views
0

我想知道是否有可能在java中聲明一個變量本地執行該方法。例如,如果我正在做一些遞歸的東西,我想保留特定於該方法的一個特定執行的各種計數器。在java中動態範圍的變量? (又名每個方法執行一個變量)

我不知道正確的英文表達...

+0

也許添加一個想要的值/輸出的僞代碼片段 – jitter 2009-10-08 21:09:23

+3

你很瞭解如何知道遞歸,但不知道局部變量:p – Kai 2009-10-08 21:11:02

+0

@Kai:同意。在深入研究遞歸之前,我會確保您知道該語言的基礎知識。 – 2009-10-08 21:13:24

回答

6
void method() 
{ 
    int i = 0; // this int is local to 'method' 
} 
+0

那必須是你得到的最簡單的50個代表:) – skaffman 2009-10-08 22:15:14

+0

哈哈,是的。 65其實:) – 2009-10-08 22:51:18

5

這就是Java如何工作的默認。例如,在下面的方法:

void recursive(int i) { 
    int localI = 6; 
    i-= 1; 
    if (i > 0) { 
    recursive(i); 
    } 

localI將保持本地的方法的當前執行。

+0

用四個空格縮進代碼,將其格式化爲源代碼。我還添加了一個缺少的'}',並在聲明中更正了錯誤的變量名稱。 – Jesper 2009-10-08 21:15:41

+0

糟糕,聲明中的變量名稱沒有錯。 – Jesper 2009-10-08 21:16:24

-2

我想你可能會在談論static變量。 如果你聲明瞭一個靜態變量,它將在方法的執行之間保存它的值。

+0

你的意思是'靜態'局部變量在C或C++中。類似的東西在Java中不存在。 – Jesper 2009-10-08 21:13:17

+0

如果您在該方法所在的類中聲明靜態變量,則可以使用方法調用之間的值。遞歸非常有用。我試圖相信提問的人知道局部變量是什麼。 – Itsik 2009-10-08 21:16:44

+0

在我看來,他問了一個靜態成員變量的反義詞;他想要一個「變量本地執行該方法」,即一個正常的局部變量。 – Jesper 2009-10-08 21:18:06

1

方法中正常的局部變量正是你的意思。這些局部變量分配在堆棧上。每次調用方法時,無論是否以遞歸方式,都會創建一個新的變量副本。