プログラミング言語には、データが一定であることをコンパイラに伝える方法があります。 2つの要件があります
1.変更されないコンパイラ定数
2。実行時に初期化された値で、この値は変更されません
Javaでは、最終的な修飾子変数を使用してこれら2つの要件を達成します
<pre name = "code"> //コンパイラー定数プライベート最終int値= 9;プライベート静的最終int値= 99; public static final int value_three = 39; //実行時に初期化された値は、プライベートint i4 = rand.nextint(20); static final int_5 = rand nextint(20); </span>
最終的な基本データ型を変更する場合、データを一定にして変更しておきます
最終的なオブジェクト参照を変更すると、参照は一定に保たれます。参照が初期化されてオブジェクトを指すようにすると、別のオブジェクトを指すように変更することはできません。
ただし、オブジェクト自体を変更できます
メソッドパラメーターリストの最終的な変更パラメーター。つまり、パラメーター参照によって指されたオブジェクトをメソッドで変更できないことを意味します。この機能は、主にデータを匿名の内部クラスに渡すために使用されます。
また、Javaで
最終的な変更方法の目的は、サブクラスがこの方法を上書きすることを明示的に禁止することです
最終的な変更クラス、継承は禁止されています
これら2つの要件をC#にどのように実装しますか?
要件1:コンパイラ定数
constは定数を変更します。これは、コンパイル時間の計算に使用する必要があります。定数は常に静的ですが、一定の宣言に修飾子静的を含める必要はありません(実際には許可されていません)
要件2:ランタイム定数
readonlyキーワードには、値を変更すべきではないいくつかの変数が必要になる場合がありますが、実行する前にその値は不明です。
C#は、この状況に別のタイプの変数を提供します:読み取り専用フィールド
また、C#で
密閉された変更方法は、サブクラスがこの方法を上書きすることを明示的に禁止することです。
密封された修正クラス、継承は禁止されています
上記は、Javaの最終キーワードとC#のconstおよびreadonlyキーワードの簡単な説明です。誰もがwulin.comをサポートできることを願っています〜