内部クラスについて
内部クラスはネストされたクラスの一種で、次の4種類があります。 [出典]
静的ネストクラス、通常のクラスに近い静的ネストクラス。は外部クラスへの参照ではありません。外部クラスの静的 ** にのみアクセスでき、内部クラスに静的 ** がある場合、クラスは静的である必要があります。クラス内部クラス (非静的)、真の内部クラス。
ローカル クラス ローカル クラス (メソッド内で定義)、真の内部クラス。一度実装すると、いくつかのメソッド クラス
3) したがって、final は jdk8 の前に使用する必要があります。逆コンパイル後、内部クラスが実際にコンストラクター
を備えたクラスを生成し、参照された変数が外部クラスのインスタンスを含むパラメーターとして渡されることがわかります (これが、内部クラスがクラスへの参照を保持する理由です)デフォルトでは外部オブジェクトです。メモリ リークが発生しやすい)、その値を独自の変数に代入します。つまり、外部変数の値が内部クラスで変更された場合、
実際には、 の変数値のみが代入されます。外部変数の値ではなく、内部クラス自体が変更されます4) Java8 では、内部クラスが外部クラス変数にアクセスする場合、内部クラスが外部変数を再割り当てしない限り、外部クラス変数は事実上 Final 変数になります。 Java は外部変数を暗黙的に Final として宣言します。 [出典]
5) なぜ Final なのか? 理由は上で簡単に説明しましたが、長さとわかりやすさのために、もう一度詳しく説明します。変数が Final の場合、最後のローカル変数はローカル変数として「コピー」されます。内部クラスのデータメンバー。ローカル内部クラスがローカル変数にアクセスするとき、実際にアクセスされるのはローカル変数の「コピー」です。実行中のスタック内の実際のローカル変数が終了しても、内部クラスのオブジェクトは引き続きローカル変数にアクセスできます。 (コピー、ローカル変数の寿命が延びたようです), 今のところ、final とはあまり関係ありませんが、O(∩_∩)O ははは~「final」の名の下に、最終的にはファイナルに戻る、変数はファイナルです: [ソース]
: 1. 引用タイプ: 参照値は変更されません (常に同じオブジェクトを指します)、レプリカは元の参照変数と同じです コピーは同じです。元の量、意味効果は同じです[出典]内部クラス: [出典]
論理的な所属を反映し、内部クラスは他のクラスによって制御でき、外部からは見えません
变 外部クラスの変数は外部クラス全体です (内部クラスを含みますが、外部クラスは内部クラスの Private メンバーにアクセスできません) コンパイル後、内部クラスは別のクラスにコンパイルされます 静的初期化子: 静的。 block: クラス メソッドの外側に存在する静的ブロック。クラスがロードされるときに 1 回だけ実行されます。一般に、静的クラス属性を初期化するために使用されます。 1. 静的メソッドを非静的メソッドでオーバーライドすることはできません。 2. コンストラクターを静的に宣言することはできませんfinal: 最終状態の特性
1. 基本クラスまたはサブクラスによってオーバーライドできず、マークされている変数は定数です
通常の状況では、原因を使用しないでください。それ以外の場合、try ブロックと catch ブロックの return ステートメントと throw ステートメントは無効になり、finally の return ステートメントによって例外が失われます。 【出典】【出典】
try...catch では、複数の catch がある場合、親クラスの例外をサブクラスの例外の下に配置する必要があります。そうしないと、コンパイルが失敗します。私はこれをテストするのが面倒ではありません。通りすがりの同僚が私にいくつかの意見をくれるかもしれません^_^
なぜ内部クラスと例外が一緒に書かれているのですか? 例外を要約してナインリンクに分類する必要があるようです。次の記事はもうシングルトンすぎるので気にしないでください
関連記事:
関連ビデオ:
内部クラス分類とメンバー内部クラスを直接使用する Java の主要な入門ビデオ チュートリアル
以上が【Javaの基礎】内部クラスとその特徴の簡単な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。