Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What is going on with this article?
@koukonko

Javaのお勉強 ~その5~ 定数

More than 1 year has passed since last update.

1. はじめに

今回は、変数と対極的な定数についての解説です。

変数は、値が変わる。
定数は、固定の値。

といった感じですね。
後々に値を変更することが、できないようにするのが定数です。

2. 定数の宣言

では、定数の宣言方法についてみてみましょう。
また、宣言と同時に初期化する方法も紹介します。

Main.java
public class Main {
    public static void main(String[] args) {

        // 定数の宣言 & 初期化
        final int MAX_VALUE = 100;

    }
}

型の前に final というものをつけることで、定数として宣言していることになります。
また、宣言と同時に値を代入し、初期化しています。

3. 定数を使う

定数の使い方については、代入ができないだけで、変数のように値として使うことができます。
例えば、下のように

Main.java
public class Main {
    public static void main(String[] args) {

        // 「定数 MAX_VALUE」の宣言 & 初期化
        final int MAX_VALUE = 100;

        // 「変数 first」の宣言 & 初期化
        int first = 200;

        // 「変数 second」の宣言
        int second;

        // 「定数 MAX_VALUE」と「変数 first」を足した値(100 + 200)を「変数 second」に代入
        second = MAX_VALUE + first;

        // 300 と出力される
        System.out.println(second);

    }
}

「300」と出力されればオッケーです!

ざっくりと処理の流れは、
定数「MAX_VALUE」と変数「first」を足した値が、変数「second」に代入。
変数「second」を出力する。
といった感じでしょうか。

4. 定数の確認

ちなみに、本当に定数となっているか確認をしてみましょう。
以下のプログラムをコンパイルしてみると、、

Main.java
public class Main {
    public static void main(String[] args) {

        // 定数の宣言 & 初期化
        final int MAX_VALUE = 100;

        // 代入する
        MAX_VALUE = 123;

    }
}

エラーになりますね。
定数に値を代入しようとするとコンパイル時点でエラーになってしまいます。

後から値を代入することは出来ないってことが分かりました!ヨシヨシ

5. おわりに

定数は、プログラムを書く際に複数箇所に同じリテラルを使うとなった場合に、宣言しておくと非常に便利になります。

例えば、100 回も円周率の 3.14 をリテラルで記述するプログラムがあったとします。

Main.java
public class Main {
    public static void main(String[] args) {

        // 3.14 + n (nを100まで書きたい)
        System.out.println(3.14 + 1);
        System.out.println(3.14 + 2);

        // 中略

        System.out.println(3.14 + 99);
        System.out.println(3.14 + 100);

    }
}

ほぼありえないプログラムですけどあくまで例ということで

100 回も書いていれば、そのうち間違える可能性もあります。
(3.15と書いてはコンパイルエラーにもならないので、大変気付きにくい)
さらにもし、3.14159265 と桁数を増やしたくなった場合は、100 箇所修正しなくてはならなくなります。

ですので、定数として宣言しておけば、その定数を使いまわすことでミスも減らせますし、変更したくなった場合は、定数の値を変更するだけでいいので、変更に強くなります。

Main.java
public class Main {
    public static void main(String[] args) {

        // 定数「PI」の宣言
        final double PI = 3.14;

        // 3.14 + n (nを100まで書きたい)
        System.out.println(PI + 1);
        System.out.println(PI + 2);

        // 中略

        System.out.println(PI + 99);
        System.out.println(PI + 100);

    }
}

定数はソースコードの読みやすさ(可読性)にも関わります。
初めから決まった値だと分かっていれば、定数を使うようにしましょう。

次回は「演算子」についての記事を解説します。
以上です。

次回 →「Javaのお勉強 ~その6~ 演算子

1
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
koukonko
プログラミングします Java/PHP/javascript/C#/C++/Python/競プロなどの記事を書きたい

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
1
Help us understand the problem. What is going on with this article?