Javaプログラミング学習サイト ゆるゆるプログラミング

2015/11/01 公開

・型キャスト

型キャストとは、データの型を変換することです。例えば、int型変数の値をdouble型に代入したり、float型変数の値をshort型に代入することです。型が一致していないデータ同士で演算させようとすると、コンパイルエラーになったり、計算結果が不正な値になることがあります。型キャストを行い同じ型のデータにすることで、これらの不具合を防ぐことができます。

型キャストには、暗黙的な型キャスト明示的な型キャストの2つがあり、その2つの違いは、変換する変数型を指定するか指定しないかです。暗黙的な型キャストは、プログラマーが変換後の変数型を指定する必要がなく、情報量の少ない変数型から情報量のが多い変数型に変換するものです。明示的な型キャストは、プログラマーが変換後の変数型を指定する方法で、情報量の多い変数型から情報量のが少ない数型に変換するものです。

■関連コンテンツ

変数について   Javaで扱う変数について解説

以下のJavaソースコードは、暗黙的な型キャストの例です。情報量の少ない変数型から情報量の多い変数型に値を変換しています。

TypeCasting1.java ← クリックしてダウンロードページに移動
001:    public class TypeCasting1 {
002:    	public static void main( String[] args ) {
003:    		// 変数を宣言
004:    		char   chrV;	// 16bit
005:    		byte   bytV;	// 8bit
006:    		short  shtV;	// 16bit
007:    		int    intV;	// 32bit
008:    		long   lngV;	// 64bit
009:    
010:    		float  fltV;	// 32bit
011:    		double dblV;	// 64bit
012:    
013:    
014:    		// 暗黙的な型キャスト
015:    
016:    		// char型を他の型に変換
017:    		chrV = 100;
018:    
019:    		intV = chrV;	// char型をint型に変換
020:    		lngV = chrV;	// char型をlong型に変換
021:    		fltV = chrV;	// char型をfloat型に変換
022:    		dblV = chrV;	// char型をdouble型に変換
023:    
024:    
025:    		// byte型を他の型に変換
026:    		bytV = 100;
027:    
028:    		shtV = bytV;	// byte型をshort型に変換
029:    		intV = bytV;	// byte型をint型に変換
030:    		lngV = bytV;	// byte型をlong型に変換
031:    		fltV = bytV;	// byte型をfloat型に変換
032:    		dblV = bytV;	// byte型をdouble型に変換
033:    
034:    
035:    		// short型を他の型に変換
036:    		shtV = 100;
037:    
038:    		intV = shtV;	// short型をint型に変換
039:    		lngV = shtV;	// short型をlong型に変換
040:    		fltV = shtV;	// short型をfloat型に変換
041:    		dblV = shtV;	// short型をdouble型に変換
042:    
043:    
044:    		// int型を他の型に変換
045:    		intV = 100;
046:    
047:    		lngV = intV;	// int型をlong型に変換
048:    		fltV = intV;	// int型をfloat型に変換
049:    		dblV = intV;	// int型をdouble型に変換
050:    
051:    
052:    		// long型を他の型に変換
053:    		lngV = 100;
054:    
055:    		fltV = lngV;	// long型をfloat型に変換
056:    		dblV = lngV;	// long型をdouble型に変換
057:    
058:    
059:    		// float型を他の型に変換
060:    		fltV = 100.0f;
061:    
062:    		dblV = fltV;	// float型をdouble型に変換
063:    	}
064:    }

以下のJavaソースコードは、明示的な型キャストの例です。情報量の多い変数型から情報量の少ない変数型に値を変換しています。代入する値の前に(変換後の変数型)を書くことで、指定の変数型に変換することができます。

TypeCasting2.java ← クリックしてダウンロードページに移動
001:    public class TypeCasting2 {
002:    	public static void main( String[] args ) {
003:    		// 変数を宣言
004:    		int    intV = 100;	// 32bit
005:    		long   lngV = 200;	// 32bit
006:    		float  fltV = 123.4f;	// 32bit
007:    		double dblV = 567.8;	// 64bit
008:    
009:    
010:    		// 明示的な型キャスト
011:    
012:    		// int型に変換
013:    		intV = (int)lngV;
014:    		intV = (int)fltV;
015:    		intV = (int)dblV;
016:    
017:    
018:    		// float型に変換
019:    		fltV = (float)lngV;
020:    		fltV = (float)dblV;
021:    	}
022:    }

この例では、int型float型への変換を書いています。

012:    		// int型に変換
013:    		intV = (int)lngV;
014:    		intV = (int)fltV;
015:    		intV = (int)dblV;

(int)変数名の前に書いて、int型に変換しています。

018:    		// float型に変換
019:    		fltV = (float)lngV;
020:    		fltV = (float)dblV;

(float)変数名の前に書いて、float型に変換しています。

■関連コンテンツ

byte型をint型へ byteの値 → 0~255
四則演算(足し算/引き算/掛け算/割り算)について-画像

計算結果の表示

足し算(加法)/引き算(減法)/掛け算(乗法)/割り算(除法)の使い方を説明

Javaで扱う変数について解説-画像

Javaの変数

変数は、プログラムの中で値を入れておく入れ物のようなものです。

■新着情報

2021.09.24 配列の値が全て同じか? 全ての配列値の一致確認

■広告

Topへ