2012-04-08 36 views
0

我是Java中的noob,是在Python之後學習Java的人。無論如何,我很難搞清楚這一點。 假設我有類java中各種形式的聲明之間的區別

class Bicycle{ 
     .... 
} 

public class Bicycle{ 
    ....} 

有什麼區別。 又是怎麼回事

public static class Bicycle{ 
       // if this can be a valid class def in first place 
    } 

,然後,在此之後...讓我們來談談變數。

class Bicycle{ 
    int Gear or public int Gear // whats the difference 
    } 

何時使用哪一個?

回答

5

這些關鍵字(或缺乏它們)被稱爲訪問修飾符 - 簡而言之,它們控制類或成員的可訪問性。

類有以下修飾符:

  • public - 隨時隨地訪問
  • (無修飾符) - 只在同一個包訪問

類成員有更多的可能性:

  • public - 任何地方都可以訪問
  • protected - 僅在同一個包在延伸類訪問
  • (無改性劑) - 僅在同一個包訪問
  • private - 僅在相同的類文件進行訪問*

*請注意,nested classes可以訪問其外部的private成員,反之亦然。

有關訪問修飾符的更多信息可以參考here.另請參閱this helpful article瞭解基礎知識。


編輯:我錯過了你的中間例如,public static class Bicycle - 在這裏static必須意味着Bicycle是一個嵌套類。請參閱this page(我已經在我的下標中鏈接了)來解釋嵌套類,它們分解爲靜態類和非靜態類,即內部類。

3

修飾符是Java關鍵字,它向編譯器提供有關代碼,數據和類的性質的信息。它分爲兩種類型。

  1. 訪問修飾符:public,protected,private。
  2. 非訪問修飾符(final,Abstract,Synchronized,Native, stricfp)。

如果您在上課之前未指定任何訪問修飾符,它將會將其作爲「默認」訪問說明符。

public class A  : //access specification would be public. This class can be access any where. 

class A   : //access specification would be default. This class can be used only in the same package. So, default is called as package level specification 

我們不能聲明爲靜態

public static class A{ 
} 

一類,但我們可以爲靜態

public class A 
{  
    static class B{ 

    }  
} 

聲明內部類要獲得更清晰是指訪問修飾符在Java中,從「SCJP」由凱西塞拉利亞

相關問題