0

私はJavaの初心者で、Pythonの後に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
    }

いつどちらを使用するのですか?

4

2 に答える 2

5

これらのキーワード (またはそれらの欠如) は、アクセス修飾子として知られています。つまり、クラスまたはメンバーのアクセシビリティを制御します。

クラスには次の修飾子があります。

  • public- どこでもアクセス可能
  • (修飾子なし) - 同じパッケージでのみアクセス可能

クラス メンバーにはさらに多くの可能性があります。

  • public- どこでもアクセス可能
  • protected- 同じパッケージまたは拡張クラスでのみアクセス可能
  • (修飾子なし) - 同じパッケージでのみアクセス可能
  • private- 同じクラスファイルでのみアクセス可能*

*ネストされたクラスは外部クラスのメンバーにアクセスでき、そのprivate逆も可能であることに注意してください。

アクセス修飾子の詳細については、こちらを参照してください。基本については、この役立つ記事も参照してください。


編集:私はあなたの中間の例を逃しましたpublic static class Bicycle-ここでは、ネストされたクラスであるstaticことを意味する必要があります。ネストされたクラスの説明については、このページBicycle(サブスクリプションで既にリンクされています) を参照してください。ネストされたクラスは、静的クラスと非静的、別名内部クラスに分類されます。

于 2012-04-08T05:54:07.933 に答える
3

修飾子は、コード、データ、およびクラスの性質に関する情報をコンパイラに提供する Java キーワードです。それは2つのタイプに分類されます。

  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

クラスを static として宣言することはできません

public static class A{
}

しかし、内部クラスを静的として宣言できます

public class A
{    
     static class B{

     }    
}

より明確にするために、kathy sierra による「SCJP」の Access Modifier in Java を参照してください。

于 2012-04-08T06:25:52.790 に答える