ビデオ: 【Javaプログラミング講座/オブジェクト指向 #4】継承①(継承/継承関係にあるオブジェクトの構造) ※1.5倍速での再生を推奨 2024
Javaアプリケーションが複雑になるにつれて、スコープを検討する必要性がますます重要になります。主な理由は、間違ってデータ値を追加したり、メソッドにアクセスしたりするなど、アプリケーションによって誤ってフィールドや他のメンバが使用されていることが原因である可能性があります。間違った時間や間違ったデータが含まれている可能性があります)また、不適切なスコープを設定すると、外部ユーザーが予期しない方法(ウイルスなど)でアプリケーションとやりとりすることができます。
デフォルトのスコープは、スコープをクラス要素に特に指定しない場合に発生します。多くのJava開発者は、デフォルトのスコープがいくつかの要素について何もわからないため(デフォルトのスコープを使用するとコードが文書化されていないことを意味します)非常に頻繁に使用されていません。
oいくつかのJava開発者がそれに依存しているため、デフォルトのスコープがさまざまな要素にどのようなものか分かります。ただし、デフォルトスコープを理解するには、可視性
- アプリケーション要素がメンバーを参照できるかどうかを判断する必要があります。 Javaは、次のレベルの可視性(カプセル化の一般的な順番)を提供します。 <! - 2 - > パッケージ:
多数のクラスを保持するために使用されるコンテナ。この本の例が示すように、単純なディレクトリ構造で作業する場合、パッケージは多数のディレクトリを保持するディレクトリです。クラスファイル。-
クラス: クラスは通常、単一のクラスに属します。あなたがコンパイルしたJavaファイル。クラスファイル。それは単一のクラス宣言を含んでいます。方法:
-
要素は、クラス内に存在することも、メソッドの一部として存在することもあります。このメソッドは、要素を保持するコンテナとして機能します。 <! - 3 - >
-
ブロック: 要素は、forループなどのコードブロック内に存在することができます。
スコープは、要素を宣言するために使用される場所によって部分的に異なります。たとえば、ブロック内で定義された変数(forループなど)は、そのブロック内でのみ表示されます。変数をブロック外で使用しようとすると、Javaは例外を表示します。この表では、可視性を考慮して、Java環境内のさまざまなレベルのスコープについて説明します。 -
Java Scoping Rules 可視性
private
protected | public | クラス | X | X |
---|---|---|---|---|
X | パッケージからアクセス可能X | X | X | X |
任意の子クラスからアクセス可能X | X | どこでもアクセス可能 | X | |
表デフォルトスコープが物事のスキームにどのように適合するかを示します。たとえば、デフォルトのスコープを使用してメソッドを宣言する場合、どのメソッドでも同じパッケージに存在する限り、そのメソッドを使用できます。さらに、メソッドを含むクラスから継承するクラスを作成する場合、サブクラスは同じパッケージ内に存在する限り、このメソッドを使用できます。 | ただし、サブクラスが現在のパッケージの外に存在する場合、そのメソッドは使用できません。要するに、デフォルトスコープは保護されたスコープよりも少し制限がありますが、プライベートスコープよりも制限はありません。 |