今回もJavaの基礎をやっていきます。今回は変数の入門編としてまとめてみました。
それでは見ていきましょう。
「変数」とは?
変数は元々は数学用語で、Javaに限らず色々なプログラミング言語でも変数が使われています。
「変数というのはデータの入れ物で、 整数の場合はintを使い・・ 」
というなんとなくの認識だけでも変数は使う事が出来ますが、やはり変数といえばプログラミングにおいて基礎中の基礎なのでしっかり覚えておきたいところです。
変数はプログラムの中でいくつも作る事ができ、識別子と言われる変数名を付ける事によってわかりやすく区別しています。また、変数を作る事を「変数を定義する」とも言います。
識別子はboxとしておきましょう。この変数名は決められているルールに従っていれさえすれば自由な識別子を付ける事が出来ます。
予約語について詳しくは「予約語とは? – 予約語一覧」で紹介しています。
識別子の付け方・ポイント
データ型「int」を例にエラーになる場合、ならない場合それぞれ見てみましょう。
エラーになる例
//識別子1文字目が数字 int 1box;
//予約語とかぶっている int void;
//「¥」「_」以外の記号を使用している int box-j;
//データ型を記述していないのに整数代入 box = 10;
これなら識別子としてOK
//1文字目が数字以外であればOK int box1;
/*予約語とかぶっても大文字、小文字は区別する*/ int Void; int voiD
//長い変数名 int aaabbbcccdddeeefffggg987;
変数は箱
変数についてはよく箱として例えられます。「データを入れる箱」です。でも実際の箱ではなくて変数を箱とイメージしてそこに数字や文字列を入れるという事です。
「基本データ型 (プリミティブ型)」
変数を使うには「変数を宣言する」必要があります。変数は「データと入れる箱」であってもなんでもかんでも入れて良いというわけではなく、数字なのか小数点なのか文字なのかなどがJavaは他のプログラミング言語と比べて厳密に決められています。データを混ぜる事はできないのです。
「基本データ型」には8つの種類があります。
boolean型 | (ブーリアン) | 1ビット | true (トゥルー) または false (フォルス) |
char型 | (キャラ) | 16ビット | Unicodeの1文字 |
byte型 | (バイト) | 8ビット | 整数 -128~127 |
short型 | (ショート) | 16ビット | 整数 -32768~32767 |
int型 | (イント) | 32ビット | 整数 -2147483648~2147483647 |
long型 | (ロング) | 64ビット | 整数 -9223372036854775808~9223372036854775807 |
float型 | (フロート) | 32ビット | 浮動小数点数 |
double型 | (ダブル) | 64ビット | 浮動小数点数 |
このように分類する事もできます
こうして分けた方が何がどんな役割を持つデータ型なのかわかりやすいですね。また値の最後に「long型」では「Lまたはl」、「float型」では「Dまたはd」を付けます。
- 「論理型」… boolean
- 「文字型」… char
- 「整数型」… byte、short、int、long
- 「小数点型」… float、double
「String型」という変数
「String型」という変数があります。これは”あいうえお” “abcd” などの文字列を代入できる変数です。
例えば・・
//変数名「box」に"あいうえお"を代入 class sample { public static void main(String[] args){ String box = "あいうえお"; System.out.println(box); } }
▼このように出力されます。
“?!” や “?!” や “<>*” などの記号も出力されます。なぜ上の「基本データ型 (プリミティブ型)」の仲間に入っていないかというと、「String型」はクラスに属している型だからです。
そもそもJavaの型は大きく2種類に分ける事ができ、「基本型 (プリティブ型)」以外の型は全て「参照型 (オブジェクト型)」 となります。プリティブ型を包み込むという意味でラッパークラスと呼ばれています。
「java.lang」パッケージの中にあります。
パッケージならimport文にしないの?!という話ですが上に記述した通りに「基本データ型」と同じ記述で「String型」は使用できます。なぜそのようにできるのかという所までは長くなりそうなので、機会があれば記事にしようかと思います。
変数の使い方
前述の「String型」で少し解説しましたが、変数はどのように使用するかというのをシンプルな記述から見ていきたいと思います。
まずbox.javaというプログラムの「宣言」→「代入」という変数使用の流れを見て下さい。
//宣言 int a; //代入 a = 10
そして出力
System.out.println(a)

これが変数の流れです。どのような意味の記述なのか上から順に説明します。
- 宣言
データ型「int」の変数「a」を宣言する
- 代入
変数「a」に整数「10」を代入する 「=」は代入を意味します。
- 出力
変数「a」を出力するためにSystem.out.println() 内に記述する。出力される時は変数内の整数が解放され表示される
変数の初期化
またこれらの流れをまとめる方法もあります。「宣言」した時点で「代入」する値が決まっている場合です。これを変数の初期化と言います。その場合はこっちの方がすっきりまとまっていてわかりやすいかもしれません。
▼それがこちら
/*データ型「int」の変数「a」に整数「10」を代入*/ int a = 10
多重代入
変数には多重代入という仕組みがあります。3つの変数である「a」「b」「c」にはそれぞれ10が入ります。
int a,b,c; a=b=c=10; System.out.println(a); System.out.println(b); System.out.println(c);
▼コマンドプロンプトで実行

まとめ
Javaにとって変数は基本中の基本でなくてはならないものです。まだまだ覚える事は沢山あります。
「変数のスコープ」という変数の有効範囲がありますが当ブログで紹介しているコードの量ではまだ必要なさそうなので、使う時があれば紹介したいと思います。