0 概要
最後のキーワードは、それが不変であることを示します。
以下に説明する属性(フィールド)、メソッド、クラスありました。
図1は、属性(またはフィールド)は、定数であります
最終宣言属性(またはフィールド)において、定数であり、初期化する2つの方法があり、宣言がこの静的定数ように、それがコンパイル時に決定され、直接に初期化され、図2に示すように、コンストラクタで初期化され、これはその値は、実行時に決定され、次のようにサンプルコードです。
パブリック クラスマン { 最終的な文字列名=「ジョン・ドウ」; // 1、静的に初期化定数宣言 の最終文字列EnName; / ** *コンストラクタ * / パブリック・マン() { EnName =「アンソン」; // 図2に示すように、コンストラクタの初期化中に、その値が実行するまで決定されます } }
図2に示すように、最終的な方法は、この方法は表しカバーできません
最後の方法の主な役割は、二つの側面を有している:1である任意の派生クラスのオーバーライドメソッドを防止します。2は、より効率的なプログラムの実行。最終的に及び、方法は、最終に設定された後、コンパイラがスタックに取らメソッド呼び出し機構(独立変数を実行するコードを挿入する従来の方法を無視する、方法コードをスキップして実行し、バックジャンプ、スタック引数をクリア)戻り値を処理します。これは、実際のコードの本体内のメソッドのコピーを持つメソッドの呼び出しに置き換えられます。これは、ある程度メソッド呼び出しのオーバーヘッドを回避することができます。
次のようにサンプル・コードは次のとおりです。
クラスマン { / ** *最終的な方法をオーバーライドすることはできません * / 公共の 最終 無効ファイル名を指定して実行() { // ...} }
3 、最終的なクラスを表すクラスを継承することができません
クラスの最終的な宣言、クラスが継承することができない表し、次のようにサンプルコードです。
最終的な クラスのヒト { // ...}
000静的
静的について、よりよく理解され、コード例を記述していない、4つの主要な用途があります。次のように要約します:
- メンバ変数を変更するために使用、それはメンバーを共有するためのすべての目的を達成するためには、クラスのメンバーになります。
- クラスメソッドにそれを回すために、メンバーを変更するために使用される方法は、あなたが直接使用することができ、「クラス名を。メソッド名」道の呼び出し、一般的に使用されるツール。
- 静的ブロック、初期化に基づいて、複数の部材を使用して、静的メンバを初期化します。
- 静的袋使用ガイド、直接使用する直接、現在のクラスにクラスメソッド、「メソッド名」次のようなクラスのメソッドを呼び出すことがより便利であり、
-
輸入 静的 com.anson.utils.PythonHelper *。