この記事は、主に、次のように、Javaプログラミングアクセス権の制御に関する関連コンテンツを研究しています。
以前に注意を払っていなかった修飾子の場合、一般的に、変数は以前に追加されていませんでした、1つはそれが何のためにあるのかわからなかったからであり、もう1つは私が怠け者だったからでした。後でプロジェクトに出会ったとき、私はまだプライベートと一般の間に大きな違いがあることがわかりました。
(1)まず、パッケージ名
コレクションクラスなどのクラスを使用する場合、このパッケージを導入してから、パッケージの下のクラスを使用する必要があります。のように:
パッケージcom.myown.iaiti; public class print {static void print(string s){system.out.println(s); }}カスタマイズされたパッケージは、独自のパッケージを導入することにより、将来文字列を印刷するために書いた方法を使用できます。以前に自分のパッケージのパスをClassPathに設定しようとしたので、他のディレクトリにコンパイルするときは、このディレクトリにパッケージを入れる必要はありません。また、通常実行することもできます。そうしないと、JARパッケージは見つかりません。
(2)一般
一般の人々、過去に、教師はしばしばラオツーを比phorとして使用しました。これは公的なことです、私はあなたのためにそれを使用します。 Publicはデータメンバーを密接に追跡します。つまり、すべての人が利用できることを意味します。
(3)プライベート
プライベート、プライベート、私の私有財産、触れないでください。使用できるパッケージにこのデータメンバーを含むクラスを除き、他のクラスを使用できません。この部分は、デザイナー自体が部外者に見せたり修正したくないものです。
public class print {public static void main(string [] args){getIt g = new getIt(); }} class getIT {//ファイルにはパブリッククラスが1つしかないことに注意してください。 //の前にpublicを追加したい場合は、print print private getit(){}}と同じファイルに書いてはいけません。コンストラクターgetIT()は表示されません。表示されていません。便利であることがわかります。シングルトンパターンもこのように使用され、オブジェクトの作成を制御します。
シングルトンモードの適用:
クラスA {private a(){} private static a = new a(); public static a getinstace(){return a; }}他のクラスは、コンストラクターがプライベートによって変更されるため、新しいクラスを新しい介して作成することはできません。目的は、このクラスAが非常に複雑でメモリを消費する場合、オブジェクトの作成を厳密に制御する必要があることです。単一のケースを提供しているので、ちなみに単一のケースについて説明します。私は以前にいくつかの人々の著作を読んだことがあります、それはとても古典的で素晴らしいです。
上記は空腹の男のスタイルです。これは、あなたが来たらすぐに新しくなり、将来新しくなったら直接それを使用するのを助けることです。スレッド化の問題はありません。欠点は、それが役に立たない場合、それはリソースの無駄になるということです。
怠zyなスタイル
パブリッククラスA {private a(){} private static a; public static a getInstance(){if(a == null){return a = new a(); } else {return a; }}}それはあなたがそれを使用するときにあなたが新しいのに役立ちます、そしてあなたがそれを使用するときそれは新しいものになりますが、スレッド化の問題があります。同期を追加すると、効率が低下します。これを使用すると、そのうちの1つが占有されるためです。
完璧な方法は、両方を組み合わせることです。
パブリッククラスA {//プライベート静的インナークラス、クラスは、参照プライベート静的クラスlazya {public static aa = new a()がある場合にのみロードされます。 } public static a getInstance(){return lazya.a; }}このいわゆる静的な内側クラスを以前に理解することはできません。機能は、新しいときにのみ使用されるため、遅延荷重を実現することです。 GetInstanceメソッドを使用します。静的クラスはすべての外部クラスオブジェクトに属し、1回しか読み込まれないため、マルチスレッドの問題はありません。静的インナークラスがインスタンス化された後、それはクラスレベルの属性であり、特定のオブジェクトに属していないが、1回しかロードされません。このようにして、資源の無駄はなく、マルチスレッドの非効率性の問題はありません。この方法を思いついた人は本当に素晴らしいです。
(4)保護されています
印刷はベースカテゴリです。中国人は親のカテゴリーについて話すのが好きですが、外国人はサブカテゴリがより素晴らしいと考えています。基本カテゴリは、基礎または基礎です。保護されているのは、私が息子に特に残した財産です。
public class print {protected void print(){} private void can count count?{}} public class printson extends print {void get(){print(); // cantableprint();プライベートプライベート方法、サブクラスはまだ使用できません}} public class notson {void get(){print(); }}保護された修正されたサブクラスは、パブリックとプライベートの間で取得できます。
(5)クラスのアクセス許可
各ファイルには1つのパブリッククラスのみができます。
クラス名とファイル名は同じです。
基本的な基盤がない場合、それは少し前になりますが、知識ポイントが改善された後、理解しやすくなります。アクセス権の制御は、コードの部分を他の人に直接使用するかどうかによって依然として異なります。
要約します
上記は、この記事のJavaプログラミングアクセス許可の制御コードのすべての詳細な説明です。私はそれがすべての人に役立つことを願っています。興味のある友人は、このサイトの他の関連トピックを引き続き参照できます。欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!