Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaの定数とは?finalキーワードを使った定義方法を徹底解説

定数とは何か

定数(constant)とは、一度値を代入すると、その後変更することができない変数のことです。Javaには定数を直接扱うための組み込み機能は用意されていませんが、「final」キーワードを使うことで簡単に定数を実現できます。

定数を使うメリット

定数を活用することで、プログラムの意図が明確になり、コードの可読性が大きく向上します。他の開発者がコードを読んだときにも、値が変わらないことが保証されているため、理解しやすくなります。

さらに、定数はJVM(Java Virtual Machine)やアプリケーションによってキャッシュされるため、パフォーマンスの向上にもつながります。

finalキーワードによる定義方法

変数を定数として定義するには、変数宣言の先頭に「final」キーワードを付けるだけです。

構文

final float pi = 3.14f;

上記のステートメントでは、float型の変数「pi」を値「3.14f」を持つ定数として宣言しています。これ以降、プログラム内のどこであっても「pi」の値を変更することはできません。

仮に後から「pi = 5.25f;」のように再代入しようとすると、Javaはコンパイルの時点でエラーを検出します。

なお、定数への値の代入は、必ずしも宣言と同時に行う必要はありません。まず宣言だけを行い、その後に一度だけ値を代入する書き方も可能です。

すべてのプリミティブ型での定義例

以下の例では、すべてのプリミティブデータ型(byte、short、int、long、float、double、boolean、char)の変数を、宣言時に「final」キーワードを付けるだけで定数として定義しています。

サンプルコード

public class ConstantsDemo {
    public static void main(String args[]) {
        final byte var1 = 2;
        final byte var2;
        var2 = -3;
        final short var3 = 32;
        final short var4;
        var4 = -22;
        final int var5 = 100;
        final int var6;
        var6 = -112;
        final long var7 = 20000;
        final long var8;
        var8 = -11223;
        final float var9 = 21.23f;
        final float var10;
        var10 = -121.23f;
        final double var11 = 20000.3223;
        final double var12;
        var12 = -11223.222;
        final boolean var13 = true;
        final boolean var14;
        var14 = false;
        final char var15 = 'e';
        final char var16;
        var16 = 't';
    // 全変数の値を表示
        System.out.println("value of var1 : "+var1);
        System.out.println("value of var2 : "+var2);
        System.out.println("value of var3 : "+var3);
        System.out.println("value of var4 : "+var4);
        System.out.println("value of var5 : "+var5);
        System.out.println("value of var6 : "+var6);
        System.out.println("value of var7 : "+var7);
        System.out.println("value of var8 : "+var8);
        System.out.println("value of var9 : "+var9);
        System.out.println("value of var10 : "+var10);
        System.out.println("value of var11 : "+var11);
        System.out.println("value of var12 : "+var12);
        System.out.println("value of var13 : "+var13);
        System.out.println("value of var14 : "+var14);
        System.out.println("value of var15 : "+var15);
        System.out.println("value of var16 : "+var16);
    }
}

実行結果

value of var1 : 2
value of var2 : -3
value of var3 : 32
value of var4 : -22
value of var5 : 100
value of var6 : -112
value of var7 : 20000
value of var8 : -11223
value of var9 : 21.23
value of var10 : -121.23
value of var11 : 20000.3223
value of var12 : -11223.222
value of var13 : true
value of var14 : false
value of var15 : e
value of var16 : t

定数の命名規則とベストプラクティス

実際の開発では、定数名はすべて大文字+単語間をアンダースコア(_)で区切るのが一般的な命名規則です。また、多くの場合「static」修飾子と組み合わせて、クラスレベルの定数として定義します。

public class MathConstants {
    public static final double PI = 3.14159;
    public static final int MAX_USERS = 100;
}

このように定義しておけば、「MathConstants.PI」のようにクラス名から直接アクセスでき、コード全体で一貫した値を安全に共有できます。

  1. 【Java】JTextFieldの入力値を読み取ってJListに追加する方法を解説

    JListとは JListはJComponentクラスのサブクラスで、ユーザーが単一選択または複数選択を行えるSwingのリストコンポーネントです。ただし、JListクラス自体にはスクロールバーの機能が備わっていないため、スクロールバーを表示したい場合はJScrollPaneクラスと組み合わせて使用します。JScrollPaneでJListをラップすれば、スクロールバーは自動的に管理されます。 DefaultListModelで項目を管理する DefaultListModelクラスは、リストモデルのシンプルな実装を提供しており、JListに表示される項目を管理するために利用できます。Defa

  2. JavaのLayoutManager(レイアウトマネージャー)とは?6つの種類と使い方を解説

    LayoutManager(レイアウトマネージャー)は、GUIフォーム上に視覚コンポーネントをどのように配置するかを制御するための仕組みです。コンテナ内における各コンポーネントのサイズと位置を自動的に決定することで、ウィンドウサイズが変わっても整然としたユーザーインターフェースを維持できます。 LayoutManagerの種類 Javaには、標準で以下の6種類のレイアウトマネージャーが用意されています。 FlowLayout(フローレイアウト):コンポーネントをページ上の文章のように配置します。上段から左から右へ、上から下へと順に詰めていき、追加された順序どおりに並びます。最初のコンポーネン