目次
オブジェクト参照付きのfinal
変数にfinalを使用する時期とその理由
留意すべきことがいくつかあります
ホームページ Java &#&チュートリアル 変数の「ファイナル」キーワードは何ですか?

変数の「ファイナル」キーワードは何ですか?

Jun 24, 2025 pm 07:29 PM
変数 final

Javaでは、最終的なキーワードでは、変数の値が割り当て後に変更されるのを防ぎますが、その動作はプリミティブとオブジェクトの参照で異なります。プリミティブ変数の場合、最終的なint max_speed = 100のように、ファイナルは値を一定にします。ここで、再割り当てがエラーを引き起こします。オブジェクト参照の場合、finalはオブジェクトではなく参照をロックします。したがって、names.add( "alice")が許可されている間、新しいオブジェクトに名前を再割り当てしていません。最終変数は、偶発的な変更を回避し、スレッドの安全性を向上させ、コードの明確さを高め、匿名の内部クラスで使用される変数に必要です。また、後で初期化(空白の決勝戦)またはコンストラクターに設定して、柔軟な不変のクラスを許可することもできます。したがって、ファイナルは、一定の値または固定参照のいずれかを保証し、よりクリーンで安全なコードを支援します。

変数の「ファイナル」キーワードは何ですか?

Javaでは、変数を使用してfinalキーワードを使用する場合、変数の値を割り当てた後に変更できないことを意味します。それは単純に聞こえるかもしれませんが、変数がプリミティブタイプかオブジェクトの参照かによっては、いくつかのニュアンスがあります。


プリミティブ変数を備えたfinal

プリミティブ変数( intdouble 、またはbooleanなど)をfinalに宣言すると、その値は一定になります。初期化後に新しい値を割り当てることはできません。

 final int max_speed = 100;
max_speed = 120; //コンピレーションエラー!

これは簡単です。一度設定すると、値は同じままです。実行中に変更されるべきではない構成値や制限など、コードの定数に役立ちます。


オブジェクト参照付きのfinal

ここで物事が少し難しくなります。オブジェクトの参照をfinalとしてマークする場合、正確に修正されたものは何ですか?

最終リスト<文字列>名前= new arrayList <>();
names.add( "Alice"); //これで問題ありません
names = new arrayList <>(); //コンピレーションエラー
  • 参照を変更することはできません。つまり、新しいオブジェクトをnamesに割り当てることはできません。
  • ただし、オブジェクト自体を変更できます。そのため、リストから要素を追加または削除することが許可されています。

したがって、ここでのfinal 、オブジェクトを不変にせず、それを参照するだけです。


変数にfinalを使用する時期とその理由

finalを使用するいくつかの実際的な理由があります:

  • 偶発的な再割り当てを避けてください:特に大きな方法や複雑なロジックで役立ちます。
  • 不変性と糸の安全性:最終変数は、マルチスレッド環境で簡単に推論するのが簡単です。
  • 透明度と読みやすさ:他の開発者(および自分自身)に、この変数が変更することを意図していないことを示しています。

final輝くいくつかの一般的な場所:

  • 定数( public static final
  • 匿名の内部クラスで使用されるローカル変数(最終的または効果的に最終的でなければなりません)
  • メソッド内の構成値

防御的なコーディングスタイルや、不変のオブジェクトを構築するときに使用されることがよくあります。


留意すべきことがいくつかあります

  • 宣言時に常に値を割り当てる必要はありません。
  • final変数は後で初期化することができますが、1回だけです。これはブランクファイナルと呼ばれます。
  • コンストラクターでは、オブジェクトの作成中にfinalフィールドを割り当てることができます。これにより、柔軟な不変のクラスの構築に役立ちます。

例えば:

パブリッククラスの人{
    プライベート最終文字列名;

    パブリックパーソン(文字列名){
        this.name = name; //コンストラクターに1回許可されます
    }
}

これにより、各インスタンスに独自のnameが付いています。


したがって、基本的に、変数でfinalを使用すると、タイプに応じてその値または参照がロックされます。複雑ではありませんが、賢明に使用すると、クリーナーとより安全なコードを書き込むのに役立ちます。

以上が変数の「ファイナル」キーワードは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ホットトピック

Windows 11 および 10 の環境変数をプロファイリングに使用するためのガイド Windows 11 および 10 の環境変数をプロファイリングに使用するためのガイド Nov 01, 2023 pm 08:13 PM

環境変数は、アプリケーションやプログラムが実行される場所 (または環境) へのパスです。ユーザーはこれらを作成、編集、管理、削除でき、特定のプロセスの動作を管理する場合に便利です。ここでは、Windows で複数の変数を個別に編集することなく、複数の変数を同時に管理するための構成ファイルを作成する方法を説明します。環境変数でプロファイルを使用する方法 Windows 11 および 10 Windows には、ユーザー変数 (現在のユーザーに適用) とシステム変数 (グローバルに適用) の 2 つの環境変数セットがあります。ただし、PowerToys などのツールを使用すると、別の構成ファイルを作成して新しい変数と既存の変数を追加し、それらをすべて一度に管理できます。方法は次のとおりです: ステップ 1: PowerToysPowerTo をインストールする

Javaのfinal、finally、finalizeの違い Javaのfinal、finally、finalizeの違い Feb 19, 2024 pm 12:16 PM

Java におけるfinal、finally、finalize の違いには、具体的なコード例が必要です。Java プログラミングでは、final、finally、finalize という 3 つのキーワードが頻繁に使用されます。これらは綴りは似ていますが、意味と使用法が異なります。この記事では、これら 3 つのキーワードの違いを詳しく説明し、読者の理解を助けるコード例を示します。 1. Final キーワード Final キーワードは、クラス、メソッド、変数に使用できます。その機能は、変更されたクラスを作成することです

PHP7 の変数の厳密モード: 潜在的なバグを減らすには? PHP7 の変数の厳密モード: 潜在的なバグを減らすには? Oct 19, 2023 am 10:01 AM

PHP7 では Strict モードが導入され、開発者が潜在的なエラーを減らすのに役立ちます。この記事では、厳密モードとは何か、および PHP7 で厳密モードを使用してエラーを減らす方法について説明します。同時に、コード例を通じて厳密モードの適用を示します。 1.ストリクトモードとは何ですか? Strict モードは、開発者がより標準化されたコードを作成し、いくつかの一般的なエラーを減らすのに役立つ PHP7 の機能です。厳密モードでは、変数宣言、型チェック、関数呼び出しなどに厳密な制限と検出が行われます。合格

Javaのインスタンス変数とは何ですか Javaのインスタンス変数とは何ですか Feb 19, 2024 pm 07:55 PM

Java のインスタンス変数は、メソッドやコンストラクターではなく、クラスで定義された変数を指します。インスタンス変数はメンバー変数とも呼ばれ、クラスの各インスタンスにはインスタンス変数の独自のコピーがあります。インスタンス変数はオブジェクトの作成時に初期化され、その状態はオブジェクトの存続期間全体にわたって保存および維持されます。インスタンス変数定義は通常、クラスの先頭に配置され、パブリック、プライベート、プロテクト、またはデフォルトのアクセス修飾子など、任意のアクセス修飾子を使用して宣言できます。それは私たちがこれをどうしたいかによって決まります

Python 構文のマインド マップ: コード構造の深い理解 Python 構文のマインド マップ: コード構造の深い理解 Feb 21, 2024 am 09:00 AM

Pythonはそのシンプルで読みやすい構文から幅広い分野で広く使われています。プログラミングの効率を向上させ、コードがどのように機能するかを深く理解するためには、Python 構文の基本構造をマスターすることが重要です。この目的を達成するために、この記事では、Python 構文のさまざまな側面を詳しく説明した包括的なマインド マップを提供します。変数とデータ型 変数は、Python でデータを保存するために使用されるコンテナです。マインド マップには、整数、浮動小数点数、文字列、ブール値、リストなどの一般的な Python データ型が表示されます。各データ型には独自の特性と操作方法があります。演算子 演算子は、データ型に対してさまざまな操作を実行するために使用されます。マインド マップは、算術演算子、比率など、Python のさまざまな演算子の種類をカバーしています。

Ajaxを使用してPHPメソッドから変数を取得するにはどうすればよいですか? Ajaxを使用してPHPメソッドから変数を取得するにはどうすればよいですか? Mar 09, 2024 pm 05:36 PM

Ajax を使用して PHP メソッドから変数を取得することは、Web 開発では一般的なシナリオであり、Ajax を使用すると、データを更新せずにページを動的に取得できます。この記事では、Ajax を使用して PHP メソッドから変数を取得する方法と、具体的なコード例を紹介します。まず、Ajax リクエストを処理し、必要な変数を返すための PHP ファイルを作成する必要があります。以下は、単純な PHP ファイル getData.php のサンプル コードです。

jQuery の使用法: 変数が空かどうかを判断するいくつかの方法 jQuery の使用法: 変数が空かどうかを判断するいくつかの方法 Feb 27, 2024 pm 04:12 PM

jQuery は Web 開発で広く使用されている JavaScript ライブラリで、Web ページ要素を操作したりイベントを処理したりするためのシンプルで便利なメソッドを多数提供します。実際の開発では、変数が空かどうかを判断する必要がある場面によく遭遇します。この記事では、jQuery を使用して変数が空かどうかを判断する一般的な方法をいくつか紹介し、具体的なコード例を添付します。方法 1: if ステートメントを使用して、varstr="";if(str){co を決定します。

Java では、final キーワードのみを使用して定数を定義できますか? Java では、final キーワードのみを使用して定数を定義できますか? Sep 20, 2023 pm 04:17 PM

定数変数とは、値が固定されており、プログラム内に 1 つだけ存在する変数です。定数変数を宣言して値を代入すると、プログラム全体でその値を再度変更することはできません。他の言語とは異なり、Java は定数を直接サポートしません。ただし、変数を static および Final として宣言することで、定数を作成することはできます。静的 - 静的変数を宣言すると、それらはコンパイル時にメモリにロードされます。つまり、使用できるコピーは 1 つだけになります。 Final - Final 変数を宣言すると、その値は変更できなくなります。したがって、インスタンス変数を static かつ Final として宣言することで、Java で定数を作成できます。デモの例 classData{&am

See all articles