Javaのは、通常、最前線の声明に配置された修飾の種類、アクセス許可、および他の機能的属性とメソッドによって制御されます。例えば:
パブリック クラスclassNameの{ // クラスの本体 } プライベート ブールmyFlag。 静的 最終 ダブル週間= 9.5 ; 保護された 静的 最終 int型 BOXWIDTH = 42 。 パブリック 静的 ボイドメイン(文字列[]引数){ // メソッドの本体 }
アクセス修飾子と非修飾のアクセスに多くのJava修飾子、。このセクションでは、唯一のアクセス修飾子について説明し、非アクセス修飾子は、プレゼンテーションに従います。
また、アクセス制御文字として知られているアクセス修飾子は、カテゴリ、メンバ変数、メソッドのキーワードの使用権を管理する能力を指します。
オブジェクト指向プログラミングでは、アクセス指定子は、クラス、アクセス変数、メソッドとコンストラクタを保護するために使用することができ、非常に重要な概念です。
Javaのは、4つの異なるアクセス権をサポートしています。
パブリック:パブリックドメイン
公共のクラス、メソッド、コンストラクタとして宣言され、そしてインターフェースは、アクセスの任意の他のタイプであってもよいです。
パブリッククラスは、相互にアクセスパッケージなしでいくつかに分散している場合は、対応するパケットのパブリッククラスをインポートする必要があります。そのため、継承クラスで、すべてのパブリックメソッドと変数のようにそのサブクラスによって継承することができます。
以下の方法は、パブリックアクセス制御を使用しています。
公共の静的な無効メイン(文字列[]引数){
//メソッドの本体
}
メインJavaプログラム()メソッドはpublicに設定されている必要があり、そうでない場合は、Javaインタプリタは、クラスを実行することはできません。
保護:保護
保護として変数が宣言され、メソッドやコンストラクタは、他のクラスにアクセスするために同じパッケージであることができ、サブクラスは、異なるパッケージにアクセスすることができます。
保護としてクラスとインタフェース、メソッド、およびメンバー変数を変更することができない保護されたアクセス修飾子を宣言することができるが、メンバ変数とインタフェースのメンバ・メソッドは、保護宣言することはできません。
我々はクラスがこれらのメソッドや変数の使用に関連していない保護することができるようにサブクラスは、修飾子を保護宣言されたメソッドや変数にアクセスすることができます。
保護されたアクセス修飾子を使用して、次の親クラス、サブクラスは、親クラスの樹皮()メソッドをオーバーライドします。
パブリック クラス犬{ 保護された ボイド樹皮(){ System.out.printlnは( "樹皮が、来ていません" ); } }
クラステディ拡張犬{ // テディが 無効(樹皮を){ System.out.printlnは(「樹皮、私は怖いです、私に従っていない」と); } }
樹皮()メソッドがプライベートで宣言した場合、その後、Dogクラスに加えて、このメソッドにアクセスすることができません。樹皮は()publicとして宣言した場合、そのすべてのクラスは、メソッドにアクセスすることができます。私たちは、保護としてクラスは、メソッドが宣言され、サブクラスのメソッドにそれが見えるようにしたい場合。
プライベート:プライベート
プライベートアクセス修飾子が、アクセスの最も厳しいレベルで、それが唯一の彼らのクラスによってアクセスすることができますプライベートメソッド、変数、および施工方法として宣言され、クラスとインタフェースは、プライベート宣言することはできません。
型クラスの変数への専用アクセスとして宣言のみ外部クラスのパブリックgetter / setterメソッドでアクセスすることができます。
プライベートアクセス修飾子を主にクラスの背後にあるクラスのデータと実装の詳細を保護するために使用されます。
以下のクラスは、プライベートアクセス修飾子を使用します。
パブリック クラス犬{ プライベート文字列名; プライベート int型の年齢; パブリック文字列のgetName(){ 戻り名。 } 公共 ボイドのsetName(文字列名){ この .nameの= 名前。 } 公共 INT getAge(){ 戻り年齢; } 公共 ボイド setAge(int型の年齢){ この .age = 年齢。 } }
他のクラスが直接取得し、変数の値を設定することができないように例、Dogクラス名、年齢変数は、プライベート変数です。他のクラスは、可変可能に動作させるために、我々は2つのパブリックメソッドのペア、のgetName()/のsetName()およびプライベート変数の値を取得および設定するために使用されてgetAge()/ setAge()を定義します。
これは、Javaのキーワードです。
メソッドがクラスにアクセスプライベート変数を定義し、習慣が、そのように命名された:「設定」「取得」または変数名の前に、最初の文字は大文字と変数。たとえば、変数名は、独自の方法のgetName()、名前のsetName()を設定する方法を取得します。これらの方法には、多くの場合、使用するだけでなく、getterメソッドとsetterメソッドと呼ばれる特定のタイトルを、持っています。
デフォルト:任意のキーワードを使用しないでください
いずれかの修飾子を使用せずに、それが表示されている同じパッケージ内のクラスのプロパティとメソッドを宣言しました。変数は暗黙のうちのpublic static finalとして宣言されているインタフェース、およびデフォルトのアクセス方式のインターフェイスは、デフォルトでpublicです。
次の例では、いずれかの修飾子を使用せず、クラス、変数やメソッドの定義:
クラス犬{ 文字列名; int型の年齢; 無効樹皮(){ // 樹皮 するSystem.out.println( "樹皮、来ていない" ); } 無効ハングリー(){ // 飢餓 するSystem.out.println(「マスター、私は「おなかすいです;) } }
アクセス制御と継承
継承規則:
サブクラスで親クラス宣言publicメソッドは、公開でなければなりません。
保護またはサブクラスで保護された、またはpublicとして宣言として宣言として宣言された親クラスのメソッド。それはプライベート宣言することはできません。
親クラスのメソッドは、デフォルトの修飾子はプライベートサブクラスを宣言することができると宣言しました。
親クラスのメソッドをprivate宣言され、継承することはできません。
アクセス指定子を使用する方法
アクセス制御文字は、私たちは簡単に制御コードにアクセスすることができます:
あなたはそれらの製造クラスは他のすべてのクラスにアクセスしているようにする必要がある場合、あなたは、公共のための指定子クラス宣言にアクセスすることができます。
あなたはクラスのみカテゴリへのアクセスに含めることができたときに、自分の作るために必要がある場合、あなたは省略指定子にアクセスすることができます。
クラスのデータメンバを制御するときに必要な、オペレータアクセス制御のクラスのデータメンバは保護され、公衆に設定するか、または省略することができます。(編集:Leilin鵬出典:ネットワーク)