まず、finalキーワードの基本的な使用
1)変形クラス:最終のクラスを変更する場合、このクラスは、同時に、継承することができないことを示し、クラス最後の方法のすべてのメンバーが暗黙最後の方法として指定されます。
2)修正方法は:メソッドは、その意味を変更するには、任意の派生クラスを防ぐためにロック。
注:この方法の最終的な宣言を持つ親クラスは、サブクラスによってオーバーライドすることはできないが、親クラスのメソッドがプライベート、サブカテゴリによって変更されたため、プライベート修飾子と同時に、それは、すなわち、見えないことができ、サブクラスは親クラスのプライベート修正メソッドを継承していないと述べ、自然のサブクラスは自分自身に対応するメソッドを宣言することができます。(しかし、これは厳密に親子クラスカバー上の機能ではありません)
3)変数を変更:最終的な変数については、変数の基本データ型は、その値は、初期化後に一度変更することができない場合、変数は参照型である場合、初期化後の異なるオブジェクトにそれらを許可することができません。(換言すれば、最終的な修飾変数の内容は、変更され、別のオブジェクトを指すことができない、つまり、変更することができないオブジェクトへの最終的な基準は、それがこのオブジェクトの値のアドレスを参照する場合に変更することはできないが、オブジェクトの内容または)修正することができます
第二に、最後の変数と共通の変数の違い
例えば:
パブリッククラスのテスト{
公共の静的な無効メイン(文字列[] args){
文字列A = "hello2の";
最終列B = "こんにちは";
文字列D = "こんにちは";
列C = B + 2、
列E = D + 2 ;
のSystem.out.println((== C));
のSystem.out.println((== E));
}
最初の比較結果出力#}が真であり、第二は偽です。
説明:私たちは、コンパイル時にその正確な値を知ることができれば、最終的な変数は、基本データ型と文字列型の場合は、コンパイラは、コンパイル時定数、代わりに使用され、最終的な変数としてそれを使用しますかなり一定の必要性にアクセスするには、実行時に決定されることはありません。このビットC言語でマクロ置換を伴うような。したがって、上記のコードでは、変数bが最終的修飾である、ようにコンパイル時定数になり、それは変数bを配置するために使用され、Bは、直接その値を置き換えます。実行時にリンクを介してアクセスをする変数dの必要性については、取得価額の異なる段階の両方で、さまざまなプログラムが得られことで実行されています。(コンパイルプロセスは4つのフェーズに分割することができる:前の前処理/コンパイラコンパイル/アセンブラリンク組立/リンク、これは次のエッセイに記載されます)
第三に、最終的な静的間の差を利用
最後の:
1)変数の最終的な行為は変数が一つだけのコピーを保存する役割を表現するために、不変で、静的メンバ変数であることを確認するために使用されます。
2)最終的な構築方法を変更するために使用することができません
3)最終的なクラスを継承することができない、何のサブクラスは、デフォルトクラス最終的な方法は、最終ではありません。
4)最終的なサブクラスのメソッドは、メソッドがオーバーロードされてもよい書き換えることはできません。[オーバーロードクラスは同一の、戻り値、メソッド名が、パラメータまたはシーケンシャル方式の異なる数を有することができる改質剤を指します。これは、親クラス継承サブクラスを書き換える親クラスをオーバーライドすることをいいます。メソッドのサブクラスは親クラスへのアクセスの実装を許可されて書き換えが再書かれ、戻り値であり、パラメータを変更することはできません。その同じシェル、コア書き換え!]
親クラスの。5)民間メンバーがメソッドのサブクラスで覆われていない、プロセスのように民間最終型がデフォルトのタイプです。[プライベートを区別し、同時に最終版を書くために]
6)最終的なクラスベースのアクセス方法は、パケットに関係なく、最終的に、アクセス制御文字に依存するかどうかと同じです。
7)最終的なキーワードは、変数を定義し、必ずしも所与の変数の特定の値は、同時に定義されたコンストラクタの初期化変数で行うことができると述べなければなりません。
8)、最終的なキーワードで定義された方法で内部変数を定義するために、最終的なキーワードを使用する必要はありません。
静的:
1)静的メンバ変数と、そのクラスのすべてのオブジェクトの独立したメンバメソッド変更されました。
2)静的コード・ブロック・クラスのメソッドを使用して、プライベート静的変数は、この変数を表すことができ、または他の静的クラスメンバーの前に修正することができます。
3)静的ローカル変数を変更することはできません。
4)静的最終的な最終的な静的な差がない、一般的に静的EDITORIAL。
5)修正の静的プロパティは、彼らが1つしかないことを強調し、最終的に変更した属性を示す定数(作成後に変更することはできません)で、Javaはグローバル変数の概念は、静的変数が最初の使用時には初期化され、そこではありませんが、Aのみが存在します一部のメンバオブジェクト(つまり、変更することも可能です)。[属性値に静的最終修正が一度示し、それは変更することができず、クラス名を介してアクセスすることができます。]
6)静的キーワードは、クラスに属していないメンバ変数またはメンバメソッドは、インスタンス変数の場合にはアクセスすることができることを示しています。