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」のようにクラス名から直接アクセスでき、コード全体で一貫した値を安全に共有できます。
-
【Java】JTextFieldの入力値を読み取ってJListに追加する方法を解説
JListとは JListはJComponentクラスのサブクラスで、ユーザーが単一選択または複数選択を行えるSwingのリストコンポーネントです。ただし、JListクラス自体にはスクロールバーの機能が備わっていないため、スクロールバーを表示したい場合はJScrollPaneクラスと組み合わせて使用します。JScrollPaneでJListをラップすれば、スクロールバーは自動的に管理されます。 DefaultListModelで項目を管理する DefaultListModelクラスは、リストモデルのシンプルな実装を提供しており、JListに表示される項目を管理するために利用できます。Defa
-
JavaのLayoutManager(レイアウトマネージャー)とは?6つの種類と使い方を解説
LayoutManager(レイアウトマネージャー)は、GUIフォーム上に視覚コンポーネントをどのように配置するかを制御するための仕組みです。コンテナ内における各コンポーネントのサイズと位置を自動的に決定することで、ウィンドウサイズが変わっても整然としたユーザーインターフェースを維持できます。 LayoutManagerの種類 Javaには、標準で以下の6種類のレイアウトマネージャーが用意されています。 FlowLayout(フローレイアウト):コンポーネントをページ上の文章のように配置します。上段から左から右へ、上から下へと順に詰めていき、追加された順序どおりに並びます。最初のコンポーネン