「Java」 変数の使い方・基本データ型 (プリミティブ型)

Java Coffee

今回もJavaの基礎をやっていきます。今回は変数の入門編としてまとめてみました。

SPONSORED LINK

photo by Nic McPhee

▼この記事の目次

  1. 「変数」とは?
  2. 「基本データ型 (プリミティブ型)」
  3. 変数の使い方
  4. 多重代入
  5. この記事のまとめ

「変数」とは?

変数は元々は数学用語で、Javaに限らず色々なプログラミング言語でも変数が使われています。

「変数というのはデータの入れ物で、 整数の場合はintを使い・・ 」
というなんとなくの認識だけでも変数は使う事が出来ますが、やはり変数といえばプログラミングにおいて基礎中の基礎なのでしっかり覚えておきたいところです。

変数はプログラムの中でいくつも作る事ができ、識別子と言われる変数名を付ける事によってわかりやすく区別しています。また、変数を作る事を「変数を定義する」とも言います。
識別子はboxとしておきましょう。この変数名は決められているルールに従っていれさえすれば自由な識別子を付ける事が出来ます。

【識別子のルール】
  • 1文字目のみ数字が使用できない
  • 使用できる記号は半角で「¥ (ドルマーク)」・「_ (アンダーバー)」のみ
  • アルファベットの大文字・小文字は区別する
  • 予約語としてすでに使われている単語を使ってはならない

予約語について詳しくは「予約語とは? – 予約語一覧」で紹介しています。

識別子の付け方・ポイント

データ型「int」を例にエラーになる場合、ならない場合それぞれ見てみましょう。

エラーになる例

//識別子1文字目が数字
int 1box;
//予約語とかぶっている
int void;
//「¥」「_」以外の記号を使用している
int box-j;
//データ型を記述していないのに整数代入
box = 10;

これなら識別子としてOK

//1文字目が数字以外であればOK
int box1;
/*予約語とかぶっても大文字、小文字は区別する*/
int Void;
int voiD
//長い変数名
int aaabbbcccdddeeefffggg987;

変数は箱

variable2
変数についてはよく箱として例えられます。「データを入れる箱」です。でも実際の箱ではなくて変数を箱とイメージしてそこに数字や文字列を入れるという事です。

「基本データ型 (プリミティブ型)」

変数を使うには「変数を宣言する」必要があります。変数は「データと入れる箱」であってもなんでもかんでも入れて良いというわけではなく、数字なのか小数点なのか文字なのかなどが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ビット 浮動小数点数
【浮動小数点数について】

浮動小数点数 (ふどうしょうすうてんすう/英… floating point number) とはコンピュータが数値を扱う時の手法のうちの一つです。

コンピュータが扱えるのは0と1の2進数だけなので小数点「2.45」などと表現する事が出来ません。この仕組みを説明すれば長くなりそうであって・・ かくかくしかじかそういう訳で・・

ただ一つ気を付けなければならない点が浮動小数点数は小数点に見えるように見せているのであって多少の誤差が生まれるという事。
(浮動小数点数 例… 0.3 + 0.5 + 0.2 = 0.9999999999)

どうしても正確な数値を求めなければならない場合は、java.math.BigDecimalにあるBigDecimal (ビッグデシマル) クラスを使います。
ビット数は変数にデータ型を指定した時に作られる領域でいわば箱のサイズ (容量) です。ビット数が多いよりは少ない方が作成される容量が小さく済みますが基本データ型は整数なら浮動小数点数ならdoubleがよく使われるようです。

このように分類する事もできます

こうして分けた方が何がどんな役割を持つデータ型なのかわかりやすいですね。また値の最後に「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);
}
}

▼このように出力されます。
variable

“?!” や “?!” や “<>*” などの記号も出力されます。なぜ上の「基本データ型 (プリミティブ型)」の仲間に入っていないかというと、「String型」はクラスに属している型だからです。

そもそもJavaの型は大きく2種類に分ける事ができ、「基本型 (プリティブ型)」以外の型は全て「参照型 (オブジェクト型)」 となります。プリティブ型を包み込むという意味でラッパークラスと呼ばれています。

「java.lang」パッケージの中にあります。

パッケージならimport文にしないの?!という話ですが上に記述した通りに「基本データ型」と同じ記述で「String型」は使用できます。なぜそのようにできるのかという所までは長くなりそうなので、機会があれば記事にしようかと思います。

変数の使い方

前述の「String型」で少し解説しましたが、変数はどのように使用するかというのをシンプルな記述から見ていきたいと思います。

まずbox.javaというプログラムの「宣言」→「代入」という変数使用の流れを見て下さい。

//宣言
int a;

//代入
a = 10

そして出力

System.out.println(a)

variable4

これが変数の流れです。どのような意味の記述なのか上から順に説明します。

  • 宣言

データ型「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);

▼コマンドプロンプトで実行

variable3

この記事のまとめ

Javaにとって変数は基本中の基本でなくてはならないものです。まだまだ覚える事は沢山あります。

「変数のスコープ」という変数の有効範囲がありますが当ブログで紹介しているコードの量ではまだ必要なさそうなので、使う時があれば紹介したいと思います。

関連記事




この記事が気に入ったら
いいね!しよう

最新情報をお届けします

Twitterでめちゃログをフォローしよう!