プリミティブ型を理解する
プリミティブ型は、整数・小数・文字・真偽値を直接扱うための8種類の型です。変数へ入れられる値の種類と範囲を理解し、表示結果だけでなく、代入が許される理由まで追います。
この単元で学ぶこと
- 8種類のプリミティブ型とリテラルを区別する
- 整数の範囲と小数の型を踏まえ代入を判定する
- charとbooleanの数値型との違いを説明する
本文解説
8種類の役割 個数にはint、より大きな整数にはlong、小数の測定値にはdouble、条件にはbooleanを使うなど、値の用途から型を選びます。整数4種類、浮動小数点2種類、char、booleanの合計8種類です。Stringはここに含まれず、後で学ぶ参照型です。int count=3;はcountという名前で整数3を扱う宣言です。
整数の範囲 byteは-128から127、shortは-32768から32767、intは-2147483648から2147483647、longはさらに広い64ビットの整数です。byte n=127;は宣言できますがbyte n=128;は範囲外でコンパイルできません。小さい型へ自動的に切り捨てて代入するとは限りません。
リテラルの型 5は通常int、5Lはlongのリテラルです。long n=3000000000L;のように大きい整数にはLを付けます。longへ入れる宣言でも3000000000というint範囲外のリテラルのままではエラーです。左辺の型が右辺リテラルの規則を変えるわけではありません。
小数の型 2.5はdoubleです。float f=2.5;はdoubleからfloatへの縮小が必要で拒否されます。float f=2.5f;ならfloatリテラルなので代入できます。double d=2;のような整数からの拡大は可能で、dを表示すると2.0です。
文字と文字列 char c='A';は文字を表す一単位、String s="A";は文字列です。char c="A";は一文字に見えても型が違い代入できません。charは0から65535の値でUTF-16の一単位を表し、すべての絵文字を一つで表せる型ではありません。
真偽値 boolean ready=true;は条件を表します。boolean ready=1;はJavaでは認められません。int n=3;boolean positive=n>0;のように比較式からtrue/falseを得ます。数値の0をfalse、非0をtrueへ自動変換する他言語の規則を持ち込みません。
演算する時点の型 System.out.print(7/2);は3です。int同士の除算では小数部分が残りません。double x=7/2;でも先に整数除算した3をdoubleへ変換するため3.0です。7/2.0ならdoubleの演算で3.5になります。入れ物より前に右辺の計算を追います。
初期値と代入可否 int n=null;はプリミティブへnullを入れられずコンパイルエラーです。またint n;System.out.print(n);はローカル変数を初期化せず読むのでエラーです。配列要素やフィールドには初期値の規則がありますが、main内のローカル変数が自動で0になるわけではありません。
図解
重要ポイント
- 整数はbyte/short/int/long、小数はfloat/double。
- charはUTF-16の一単位、booleanはtrue/false。
- 整数リテラルは通常int、小数リテラルは通常double。
- プリミティブ型へnullは代入できない。
間違えやすい点
- floatへdoubleリテラルをそのまま代入しない。
- charの一重引用符とStringの二重引用符を区別する。
- 整数除算の結果を後からdoubleへ入れても小数部分は戻らない。
用語解説
- プリミティブ型
- 数値・文字・真偽値を直接表す8つの基本型。
- リテラル
- ソースコードへ直接書いた5、2.5、true等の値表現。
- 値域
- その型が表せる値の範囲。
関連教材
参考資料
教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。
確認問題の出題・採点や学習履歴の保存にはログインが必要です。