6. データ型とリテラル

データ型

基本型と参照型とは

プログラムのデータ型は「文字列」「整数」「小数」「論理値」など色々ありますが、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 itemName;
	int price;
	int amount;
}

リテラル

リテラルとは

リテラルは、プログラムに記述する文字列や数字のことです。「コーヒー」は文字リテラル、「120」は整数リテラルといいます。

変数にリテラルを代入

=(イコール)を使って、変数に値を入れることを代入といいます。

データ型 変数 = 値;

= は数学でいう「同じ」という意味ではなく、右辺の値を左辺に代入することです。

文字列リテラルの代入

ファイル構成

lesson1
└── src/
    └── sample/
        └── Item.java

文字列リテラルは "(ダブルクォーテーション)で囲みます。

String itemName = "コーヒー";

文字列のシンタックスエラー

文字列を"(ダブルクォーテーション)で囲まないとシンタックスエラーになります。

整数リテラルの代入

「120」や「5」は整数なので、整数リテラルで代入します。

price = 120;
amount = 5;

小数(float)のリテラルの代入

float型は小数をあつかえますが、リテラル値は数値の最後に「f」 をつけます。

0.1f

データ型違う代入はエラー

整数型(int)の変数に、実数型(float)のリテラル値を代入するとコンパイルエラーになります。

//int に float を代入しようとしてエラー
amount = 0.1f;

論理値(boolean)のリテラルの代入

boolean型は true か false のどちらか入力します。

is_sale = true;

リテラル値代入のまとめ

変数定義とリテラル値の代入のコードです。

package sample;

public class Item {

	public static void main(String[] args) {
		String itemName;
		int price;
		int amount;
        boolean is_sale;
		
		itemName = "コーヒー";
		price = 120;
		amount = 5;
        is_sale = true;
	}

}

変数のコンソール出力

改行コードとは

メールやメモなどの文章で改行するときに改行コードが入力されます。プログラムで利用する改行コードは「\n」という文字を利用します。

println()

print() はコンソール出力しましたが、改行コードがないので結果が横並びになってしまいます。改行コード付きの出力をするには、println() を利用します。

System.out.println(値);

コンソール表示

System.out.println() で、変数に入っている値をコンソール表示してみましょう。

System.out.println(itemName);
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.8f;
System.out.println(TAX_RATE);

ソースコード

package sample;

public class Item {

	public static void main(String[] args) {
		String itemName;
		int price;
		int amount;
		
		String itemName;
		int price;
		int amount;
        boolean is_sale;
		
		itemName = "コーヒー";
		price = 120;
		amount = 5;
        is_sale = true;

		System.out.println(itemName);
		System.out.println(price);
		System.out.println(amount);
        System.out.println(is_sale);
		
		System.out.println(itemName + "の価格は" + price + "円です");
		
		final float TAX_RATE = 0.1f;
		System.out.println(TAX_RATE);
	}

}

演習問題

問題1

つぎのデータ型で「整数型」はどれですか?

1)int

2)boolean

3)char

4)float

問題2

つぎのデータ型で「文字列型」はどれですか?

1)Integer

2)Boolean

3)String

4)Float

問題3

「100」や「東京」などの値のことを、プログラムでは何といいますか?

1)クラス

2)リテラル

3)変数

4)定数

問題4

つぎの変数の定義で正しいのはどれですか?

1)String city = "東京";

2)int city = "東京";

3)Boolean city = "東京";

4)final city = "東京";

問題5

つぎの定数の定義で正しいのはどれですか?

1)final TOKYO = "東京";

2)final int TOKYO = "東京";

3)String TOKYO = "東京";

4)final String TOKYO = "東京";