変数とは
- 変数:データを入れる箱
- 変数には、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文、あるブロックの中で宣言している変数やメソッドの引数リスト。引数はローカル変数ではない。
- メンバ変数:クラス定義直下で宣言する変数。