7.
データ型
データ型
基本型と参照型とは
プログラムのデータ型は「文字列」「整数」「小数」「論理値」など色々ありますが、Javaでは 「基本型(プリミティブ型)」と「参照型」 の2つ大きくわかれます。
基本型(プリミティブ型)
基本データ型はプリミティブ型ともいいます。プリミティブ型の一覧です。
データ型 | タイプ | サイズ | データ範囲 |
---|---|---|---|
void | なし | 型がない | |
boolean | 論理型 | 1bit | true or false |
char | 文字型 | 16bit | \u0000~\uFFFF(Unicode) |
byte | 整数型 | 8bit | -128~127 |
short | 整数型 | 16bit | -32,768~32,767 |
int | 整数型 | 32bit | -2,147,483,648 ~ 2,147,483,647 |
long | 整数型 | 64bit | -9,223,372,036,854,775,808~9,223,372,036,854,775,807 |
float | 浮動小数型 | 32bit | ±3.4028235E+38~ ±1.401298E-45 |
double | 浮動小数型 | 64bit | ±1.79769313486231570E+308 ~ ±4.94065645841246544E-324 |
参照型
参照型は以下に分類できます。
- クラス型
- 配列型
- インタフェース型
どれを利用するかは、プログラムの考え方によって人それぞれです。
クラス型
Javaではプリミティブ型ごとに対応したクラスファイル(ラッパークラス)が用意されており、これをクラス型といいます。クラス型はオブジェクトというものに自動変換され、より簡単にデータ処理することが可能です。
クラス型 | タイプ | プリミティブ型 |
---|---|---|
Boolean | 論理型 | boolean |
Integer | 整数型 | int |
Character | 文字型 | char |
String | 文字列型 | なし |
Float | 実数型 | float |
Double | 実数型 | double |
配列型
配列とは、複数の変数を格納する箱のようなもので、Javaではデータ型を配列と組み合わせて定義できます。配列に関しては別の章で説明します。
データ型 | タイプ |
---|---|
int[] | 整数配列 |
String[] | 文字列配列 |
インタフェース型
インターフェイス型は別の章で説明しますが、実際に値を代入したり処理はせず、定義を抽象化するためのデータ型です。
interface Item {
String name;
int price;
int amount;
}
リテラル
リテラルとは
リテラルは、プログラムに記述する文字列や数字のことです。「コーヒー」は文字リテラル、「120」は整数リテラルといいます。
変数にリテラルを代入
=(イコール)を使って、変数に値を入れることを代入といいます。
データ型 変数 = 値;
= は数学でいう「同じ」という意味ではなく、右辺の値を左辺に代入することです。
文字列リテラルの代入
文字列リテラルは "(ダブルクォーテーション)で囲みます。
String name = "コーヒー";
文字列のシンタックスエラー
文字列を"(ダブルクォーテーション)で囲まないとシンタックスエラーになります。
整数リテラルの代入
「120」や「5」は整数なので、整数リテラルで代入します。
price = 120;
amount = 5;
小数(float)のリテラルの代入
float型は小数をあつかえますが、リテラル値は数値の最後に「f」 をつけます。
0.1f
データ型違う代入はエラー
整数型(int)の変数に、実数型(float)のリテラル値を代入するとコンパイルエラーになります。
//int に float を代入しようとしてエラー
amount = 0.1f;

論理値(boolean)のリテラルの代入
boolean型は true か false のどちらか入力します。
isSale = true;
リテラル値代入のまとめ
変数定義とリテラル値の代入のコードです。
package item;
public class Drink {
public static void main(String[] args) {
String name;
int price;
int amount;
boolean isSale;
name = "コーヒー";
price = 120;
amount = 5;
isSale = true;
}
}
変数のコンソール出力
コンソール表示
System.out.println() で、変数に入っている値をコンソール表示してみましょう。
System.out.println(name);
System.out.println(price);
System.out.println(amount);
System.out.println(is_sale);
結果
コーヒー
120
5
true
定数
定数は代入したら変更はできない定まった値です。Javaの定数は先頭にfinalを記述します。
final データ型 定数名 = 値;
定数の定義
定数に小数値を代入して、コンソール表示してみましょう。
final float TAX_RATE = 0.1f;
System.out.println(TAX_RATE);
結果
0.1
代入エラー
定数にあとから値を代入しようとすると、コンパイルエラーになります。
final float TAX_RATE = 0.1f;
TAX_RATE = 0.08f;
System.out.println(TAX_RATE);

ソースコード
item/Drink.java
package item;
public class Drink {
public static void main(String[] args) {
String name;
int price;
int amount;
String name;
int price;
int amount;
boolean isSale;
name = "コーヒー";
price = 120;
amount = 5;
isSale = true;
System.out.println(name);
System.out.println(price);
System.out.println(amount);
System.out.println(isSale);
System.out.println(name + "の価格は" + price + "円です");
final float TAX_RATE = 0.1f;
System.out.println(TAX_RATE);
}
}
演習問題
問題1
つぎのデータ型で「整数型」はどれですか?
- int
- boolean
- char
- float
問題2
つぎのデータ型で「文字列型」はどれですか?
- Integer
- Boolean
- String
- Float
問題3
「100」や「東京」などの値のことを、プログラムでは何といいますか?
- クラス
- リテラル
- 変数
- 定数
問題4
つぎの変数の定義で正しいのはどれですか?
- String city = "東京";
- int city = "東京";
- Boolean city = "東京";
- final city = "東京";
問題5
つぎの定数の定義で正しいのはどれですか?
- final TOKYO = "東京";
- final int TOKYO = "東京";
- String TOKYO = "東京";
- final String TOKYO = "東京";