Chapter 06

変数・定数

KeitoYuasa
KeitoYuasa
2023.02.05に更新

変数とは

  • 変数:データを入れる箱
  • 変数には、1つしかデータを入れることができない

※配列は、変数とは異なり複数のデータを格納することができる

用語

  • 変数の宣言:変数を作成(定義)すること
  • 代入:変数にデータを入れる(格納する)こと
  • 参照:変数に格納されたデータを取得すること
  • データ型:データの種類のこと(文字列や数値など)

変数の宣言・代入・参照

javaは静的型付け言語なので、変数宣言の際に格納するデータの型(種類)を指定する必要がある。
つまり、事前に扱うデータの型を指定しなければいけない。

  • test/Number.javaを作成
  • int var;:int型で変数を宣言(intは数値データ)
  • var = 100;:=でデータを代入
  • System.out.println(var);:println()メソッドを使ってvar変数に格納されたデータを出力
Number.java
class Number {
    public  static void main(String[] args){
        int var; //変数の宣言

        var = 100; //変数の代入

        System.out.println(var); //変数の参照と出力
    }
}
//出力結果:100

※変数を複数宣言することも可:int num1, num2;

変数の宣言と代入を同時に行う(一般的)

変数の宣言と代入を同時に行うことで、コードがスッキリする。

Number.java
class Number {
    public  static void main(String[] args){
        int var = 100; //変数の宣言と代入

        System.out.println(var); //変数の参照と出力
    }
}
//出力結果:100

※おそらく変数を複数初期化することも可:int num1, num2 = 1, 2;

変数名のルール

  • 変数名の大文字と小文字は区別される(つまり、appleとAPPLEは別の変数として扱われる)
  • 変数名に使用できるもの、できないものがある。
使用できる
アルファベット
数字(頭文字以外)
アンダーバー(_)
ドルマーク($)
使用できない
頭文字が数字
アンダーバー(_)やドルマーク($)以外の記号
予約語(if, for, return, classなどあらかじめ役割が決まっているもの)

使用できる変数名

  • test/Training.javaを作成
  • 以下をコピペして、正常に実行されることを確認
Training.java
class Training {
    public static void main(String[] args){
        int var = 1;
        int var111 = 2;
        int var_ = 3;
        int var$ = 4;

        System.out.println(var);
        System.out.println(var111);
        System.out.println(var_);
        System.out.println(var$);
    }
}
//出力結果:
//1
//2
//3
//4

使用できない変数名

  • test/Training.javaに上書き
  • 以下をコピペして、エラーが出力されることを確認
Training.java
class Training {
    public static void main(String[] args){
        int 1var = 1;
        int var-111 = 2;
	int for = 3;

        System.out.println(1var);
        System.out.println(var-111);
	System.out.println(for);
    }
}
//出力結果:エラー

定数

変数との違いは、宣言方法と値の再代入ができないこと。(再代入した場合はコンパイルエラー)

//一部省略
final int num = 123;
num = 567; //再代入不可

varによる変数宣言

  • varを変数に指定することでデータ型を省略できる。(変数初期化時に代入するデータからデータ型を推測するもの)
  • ローカル変数の初期化時のみに使用できる。
  • varは予約語ではないため、識別子として使用できる。

var num = 10;
※varによって、代入する値10からint型を推測。

No. コンパイルエラー例
1 フィールド(メンバ変数)で用いた場合
2 引数で用いた場合
3 catchブロック内で用いた場合
4 var num; (初期値を指定していないので使えない)
5 var num = null; (nullだと型を推測できない)
6 var final num = 10; (定数にvarを使用する場合は、final var = 10;にする。)
  • ローカル変数:if文やfor文、あるブロックの中で宣言している変数やメソッドの引数リスト。引数はローカル変数ではない。
  • メンバ変数:クラス定義直下で宣言する変数。