ホームページ  >  記事  >  Java  >  Java の Final キーワードと static キーワードの概要

Java の Final キーワードと static キーワードの概要

零下一度
零下一度オリジナル
2017-07-21 16:45:031840ブラウズ
1. Final

最終クラスにはサブクラスはありません。 デフォルトでは、最終クラスのメソッドは、サブクラスのメソッドによってオーバーライドできません。継承される

final メンバー変数 定数を表します。これは一度だけ割り当てることができ、割り当て後に変更することはできません。

private はサブクラスのメソッドによってオーバーライドできません。

final で変更される変数は 3 種類あり、静的変数、インスタンス変数、ローカル変数がそれぞれ 3 種類の定数を表します。

注: Final 変数を定義する場合、初期値を指定せずに最初に宣言することができます。この変数は、どのような状況であっても、使用前に空の Final を初期化する必要があります。

2. static
static は「グローバル」または「静的」を意味し、メンバー変数やメンバーメソッドを変更するために使用され、静的な静的コードブロックを形成することもできますが、グローバル変数はありません。 Java 言語の概念。 Static によって変更されたメンバ変数とメンバ メソッドのオブジェクトは、カテゴリのオブジェクトから独立しています。つまり、クラスの特定のインスタンスに依存せず、クラスのすべてのインスタンスによって共有されます。このクラスがロードされている限り、Java 仮想マシンはデフォルトでクラス名に基づいてランタイム データ領域のメソッド領域でそれらを見つけることができます。したがって、静的オブジェクトは、そのオブジェクトが作成される前でも、オブジェクトを参照せずにアクセスできます。 : ‑」この点は非常に重要です。実際、プライベートはアクセス許可の制限を意味し、静的はインスタンス化せずに使用できることを意味し、理解しやすいことを理解する必要があります。 static の前に他のアクセス許可キーワードを追加しても効果は同じです。 C i 静的変更されたメンバー変数とメンバー メソッドは、クラス名を通じて直接アクセスできます。
クラス名 (パラメーター リスト ...) クラス名。静的変数名

static で変更されたコード ブロックは、Java 仮想マシン (JVM) がクラスをロードするときに、コード ブロックが実行されます。
1. 静的変数
クラスメンバー変数は、静的かどうかに応じて 2 つのタイプに分類できます。1 つは静的変数またはクラス変数と呼ばれる、静的変数によって変更される変数です。静的、変数をインスタンス変数と呼びます。 2 つの違いは次のとおりです:
メモリ内に静的変数のコピーは 1 つだけあります (メモリを節約するため)。JVM は静的変数にメモリを 1 回だけ割り当てます。静的変数のメモリ割り当てはクラスのロード中に完了します。プロセスにアクセスでき、クラス名によって直接アクセスできます (便利です)。もちろん、オブジェクトを通じてアクセスすることもできます (ただし、これはお勧めしません)。
インスタンスの前が作成されると、インスタンス変数にメモリが 1 回割り当てられます。インスタンス変数は、相互に影響を与えることなくメモリ内に複数のコピーを持つことができます (柔軟)。态 静 2、静的メソッド
静的メソッドはクラス名を通じて直接呼び出すことができ、任意のインスタンスを呼び出すことができます。そのため、静的メソッド内のキーワード This と Super は静的メソッドのみ使用できます。静的メンバー変数と、それらが属するクラスのメンバー メソッドにアクセスします。インスタンスのメンバーは特定のオブジェクトに関連付けられているためです。これは暗記するのではなく、理解し理解する必要があります。 ! !
静的メソッドはインスタンスから独立しているため、静的メソッドは実装する必要があり、抽象化することはできません。 t t3 では、静的コードブロック
静的コードブロックとも呼ばれ、クラス内のどの位置にも配置できる静的コードです。複数の静的コード ブロックがある場合、JVM はクラス内に出現する順序でそれらを実行します。各コード ブロックは 1 回だけ実行されます。 At4、Static、および FINAL は、Static Final がメンバー変数とメンバーシップ メソッドの変更に使用されることを示すために使用されます。これらは単に「グローバル定数」として理解できます。
変数の場合、値が与えられると変更できず、クラス名を通じてアクセスできることを意味します。
メソッドの場合、オーバーライドできず、クラス名を通じて直接アクセスできることを意味します。
質問に特に注意してください:
たとえば、static および Final によって変更された定数の場合、インスタンス自体を変更することはできませんが、一部のコンテナ タイプ (配列リスト、ハッシュマップなど) の例では、コンテナはコンテナ変数自体を変更できませんただし、コンテナに保存されているオブジェクトは変更することができ、プログラミングでよく使用されます。
staticfinalで変更されたコンテナ型変数に「インストールされている」オブジェクトを変更することができます。

以上がJava の Final キーワードと static キーワードの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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