2011-01-14 75 views
0

誰能告訴我爲什麼我得到這個錯誤?私人類型..錯誤

表達的非法啓動
private int confirm;

表達的非法啓動
private File soundFile3 = new File("merge.wav");

如果我刪除單詞 「私有」 的編譯器沒有按」 t顯示任何錯誤。代碼是公共方法的一部分。 爲什麼?

謝謝。

的代碼是:

private int confirm; 
     confirm = JOptionPane.showConfirmDialog(this, 
       "Different sample size....", 
       "JOin", JOptionPane.OK_CANCEL_OPTION); 
     if (confirm != JOptionPane.OK_OPTION) { 
      return; 
     } 

private File soundFile3 = new File("merge.wav"); 
+1

你能告訴我們完整的代碼,這個類的相關位和封閉函數嗎?真的,這聽起來像是你把一個函數裏的`private`成員放進去了。 – birryree 2011-01-14 21:37:55

+0

這實際上是一個函數(在Java中的方法)如果我刪除「私人」一切都很好。方法:public void joinFiles() – herbie 2011-01-14 21:42:40

回答

5

私人關鍵字不能內方法中使用。它可以用來聲明類的字段或方法:

class Foo { 
    private int num; //private can be specified here 
    public void foo() { 
    int s = 1; 
    int k = num+s; //no private here 
    } 
} 
1

應該只在類的成員,而不是局部變量使用訪問修飾符。

局部變量總是隻在聲明塊的範圍內可見。所以,如果你在你的方法中聲明瞭一個變量,那麼該變量將僅在該方法中可見。所以,沒有必要在那裏使用private。我的意思是,即使你可以,也不需要。

3

我想你不能把一個訪問修改,除了final在一個方法。爲方法級別變量設置專用修飾符是沒有意義的。由於方法變量是在其單獨的堆棧中創建的,並在範圍丟失時被銷燬。