2014-09-29 63 views
0

任何人都可以解釋我初始化類級變量,爲什麼不是Java允許申報,並在兩個不同的步驟

  1. 爲什麼不是Java允許申報,並在兩個初始化類級變量不同的步驟。
  2. 爲什麼我不能在公共方法中聲明一個公共變量。
public class Class10 { 
    public String i=" "; 
    public String j; 
    j=" "; //Does-Not work 

    public void method(String[] args){ 
     public String k=" "; // Does-not work 
     j=" "; 
    } 
} 
+2

因爲這些是[JLS:Java語言規範](http://docs.oracle.com/javase/specs/)中定義的Java語法規則的一部分。 – 2014-09-29 15:36:09

+4

與「private」局部變量相比,具有「公共」局部變量意味着什麼?他們已經是本地的。 – 2014-09-29 15:36:12

+0

你可以初始化靜態塊中的靜態成員.. – gipinani 2014-09-29 15:39:12

回答

4

1)可以用正確的語法(但不鼓勵):

public class Class10 { 
    public String i=" "; 
    public String j; 
    {j=" ";} //This is called an "Instance initialization block" 
    //It would be better to do it in a constructor. 

2)它沒有任何意義:

  • 如果你想讓它對其他方法可見,它應該是一個屬性。
  • 如果您希望它是方法的本地,它應該是一個變量。
+0

這與他想要實現的內容以及你在一個區塊內完成的內容仍然不同。 – Cold 2014-09-29 15:41:21

+0

@酷你是什麼意思? – 2014-09-29 15:43:38

+0

@Arnaud Denoyelle我還有一個問題。我們可以在方法中使用哪些訪問修飾符? – madan 2014-09-30 05:03:56

相關問題