簡體   English   中英

java中聲明的各種forms的區別

[英]Difference between various forms of declarations in java

我是 Java 的菜鳥,我是在 python 之后學習 Java 的人。無論如何,我很難弄清楚這一點。 假設我有 class

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
    }

什么時候使用哪一個?

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

類具有以下修飾符:

  • public - 任何地方都可以訪問
  • (無修飾符)- 只能在同一個 package 中訪問

Class會員有更多可能:

  • public - 任何地方都可以訪問
  • protected - 只能在相同的 package擴展的 class 中訪問
  • (無修飾符)- 只能在同一個 package 中訪問
  • private - 只能在同一個 class 文件中訪問*

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

可以在此處找到有關訪問修飾符的更多信息。 另請參閱這篇有用的文章了解基礎知識。


編輯:我錯過了你中間的例子, public static class Bicycle - 這里的static必須意味着Bicycle是一個嵌套的 class。請參閱 此頁面(我已經在我的下標中鏈接)了解嵌套類的解釋,它分為static 類和非靜態類,也稱為內部類。

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

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

如果您在 class 之前沒有指定任何訪問修飾符,它將把它作為“默認”訪問修飾符。

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

我們不能將 class 聲明為 static

public static class A{
}

但是我們可以聲明內部類為 static

public class A
{    
     static class B{

     }    
}

為了更加清晰,請參閱 kathy sierra 的“SCJP”中的 java 中的訪問修飾符

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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