ホームページ  >  記事  >  Java  >  Java のアクセス修飾子の詳細な分析

Java のアクセス修飾子の詳細な分析

高洛峰
高洛峰オリジナル
2017-01-24 15:43:051585ブラウズ

1. クラス修飾子は、アクセス可能な制御文字と非アクセス制御文字の 2 種類に分類されます。

アクセシビリティ制御シンボルは次のとおりです: public クラス修飾子 public

非アクセス制御シンボルには、abstract クラス修飾子 abstract、final クラス修飾子 Final

1) パブリック クラス修飾子 public: Java 言語のクラスのアクセシビリティ制御 シンボルは 1 つだけです: public は公共の意味です。すべての Java プログラムのメイン クラスは、他のクラスやプログラムで使用するためのパブリック クラスとして定義する必要があります。

2) 抽象クラス修飾子 abstract: 抽象修飾子で変更されたクラスは、抽象クラスと呼ばれます。いわゆる抽象クラスは、具体的なオブジェクトを持たない概念的なクラスを指します。このようなクラスは、Java 言語の抽象クラスです。

3) 最終クラス修飾子final: クラスがサブクラスを持つことができない場合、修飾子finalを使用してそれを最終クラスとして示すことができます。 Final として定義されたクラスは通常、固定された役割を持ち、特定の標準機能を完了するために使用されるクラスです。

4) クラスのデフォルトのアクセス制御文字: クラスにアクセス制御文字がない場合、それはデフォルトのアクセス制御文字があることを意味します。現時点では、このクラスは同じパッケージ内のクラスからのみアクセスまたは参照できます。このアクセス機能は、パッケージ アクセシビリティとも呼ばれます。

2.ドメイン制御修飾子も、アクセス可能な制御文字と非アクセス制御文字の 2 つのカテゴリに分類されます。

アクセス制御文字には、パブリックアクセス制御文字:パブリック、プライベートアクセス制御文字:プライベート、プライベート保護アクセス制御文字:プライベート保護の4種類があります

制御文字: static ドメイン修飾子: static; 最終ドメイン修飾子: Final; 揮発性 (共有) ドメイン修飾子: volatile; 一時ドメイン修飾子: transient

1) パブリック アクセス制御文字 public: public で変更されたドメインはパブリック ドメインと呼ばれます。パブリック フィールドがパブリック クラスに属している場合、他のすべてのクラスから参照できます。 public 修飾子は運用上のセキュリティとデータのカプセル化を低下させるため、一般に public フィールドの使用を減らす必要があります。

2) プライベートアクセス制御文字 private: private で変更されたメンバー変数 (フィールド) は、そのクラス自体からのみアクセスでき、他のクラス (サブクラスを含む) からは参照できません。

3) 保護されたアクセス制御文字 protected: protected で変更されたメンバー変数は、次の 3 つのカテゴリから参照できます: ① クラス自体、② それと同じパッケージ内の他のクラス、③ 他のパッケージの種類内のこのクラスのサブクラス。 protected 修飾子を使用する主な目的は、他のパッケージ内のサブクラスが親クラスの特定のプロパティにアクセスできるようにすることです。

4) private protected アクセス制御文字 private protected: 修飾子 private protected で変更されたメンバー変数は、クラス自体またはそのサブクラスからアクセスおよび参照できます。

5) 静的ドメイン修飾子 static: static で修飾されたメンバー変数は、クラスの変数にのみ属し、特定のオブジェクトには属しません。静的メンバー変数の値は、メモリ領域のパブリック ストレージ ユニットに格納されます。クラスの、特定のオブジェクトのメモリ領域に保存されません。任意のクラスのオブジェクトがアクセスすると、同じデータが取得され、任意のクラスのオブジェクトがそのデータを変更すると、同じメモリ ユニット上で動作します。

6) 最終ドメイン修飾子final: 最終ドメイン修飾子finalは、シンボリック定数を定義するために使用されます。クラスのフィールド(メンバ変数)が修飾子finalで指定されている場合、その値はプログラムの実行中変化しません。

7) 揮発性 (共有) ドメイン修飾子 volatile: 揮発性 (共有) ドメイン修飾子 volatile は、このメンバー変数が複数のスレッドによって制御および変更される可能性があることを示すために使用されます。つまり、プログラムの実行中に、このメンバー変数は他のプログラムの影響を受けたり、その値が変更されたりする可能性があります。したがって、使用時にはこのメンバ変数の値の変化に注意する必要があります。通常、volatile は、外部入力を受け入れるフィールドを変更するために使用されます。

8) 一時ドメイン修飾子 transient: 一時ドメイン修飾子 transient は、一時変数を定義するために使用されます。その特徴は次のとおりです。修飾子 transient で修飾された一時変数は、一時変数が永続的な状態に属さないことを Java 仮想マシンに指定して、さまざまなオブジェクトのアーカイブ機能を実現します。それ以外の場合、クラス内のすべての変数はオブジェクトの永続的な状態の一部となるため、オブジェクトを保存するときに保存する必要があります。

3.メソッドの制御修飾子も、アクセス可能な制御文字と非アクセス制御文字の 2 つのカテゴリに分類されます。

アクセス制御文字にはパブリックアクセス制御文字:パブリック、プライベートアクセス制御文字:プライベート、プライベート保護アクセス制御文字:プライベート保護があります

非アクセスは5種類あります。制御文字: 抽象メソッド制御文字: 静的メソッド制御文字: 最終メソッド制御文字: 同期メソッド制御文字: synchronized

1) 抽象メソッド制御文字: メソッド修飾子で変更された abstract メソッドと呼ばれます。抽象メソッドは、メソッド ヘッダーのみを持ち、メソッド本体と操作の実装を持たないメソッドです。

2) 静的メソッド制御文字 static: 修飾子 static で修飾されたメソッドを静的メソッドと呼びます。静的メソッドはクラス全体に属するクラス メソッドであり、静的メソッドで変更または修飾されていないメソッドは、特定のクラス オブジェクトに属するメソッドです。 静的メソッドはクラス全体に属するため、オブジェクトに属するメンバー変数を操作して処理することはできませんが、クラス全体に属するメンバー変数のみを処理できます。つまり、静的メソッドは静的ドメインのみを処理できます。

3)ファイナルメソッド制御文字final:修飾子finalで修飾されたメソッドをfinalメソッドと呼びます。 Final メソッドは、その機能と内部ステートメントを変更できないメソッドです。つまり、final メソッドはオーバーロードできません。このようにして、このメソッドの機能と操作が固定され、現在のクラスのサブクラスが親クラスの主要なメソッドを誤って定義するのを防ぎ、プログラムの安全性と正確性が保証されます。 private 修飾子によってプライベートとして修飾されたすべてのメソッド、および Final クラスに含まれるすべてのメソッドは、final メソッドとみなされます。

4) ネイティブメソッド制御文字native: 修飾子nativeで修飾されたメソッドをローカルメソッドと呼びます。プログラムの実行速度を向上させるには、プログラムのメソッド本体を他の高級言語で記述する必要があります。その後、メソッドをローカル メソッドとして定義し、修飾子ネイティブ

を使用して変更できます。メソッド制御文字 synchronized: この修飾子は主に、マルチスレッドが共存するプログラムの調整と同期に使用されます。

Java のアクセス修飾子の詳細な分析と関連記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。