初心者向けのJava講座です。一緒にJavaを勉強しませんか?
はじめてのJava入門初心者向けのJava講座 |
型変換とキャスト
Javaの型にはint型やbyte型などいろいろな型があります。
その型をプログラム上で変換することができます。
大きなサイズの型の変数に小さいサイズの型の値を代入することができるのです。
これを型変換といいます。
→ |
ここでは、型変換されたことをわかりやすくするため
整数のint型(16bit)と浮動少数値型のdouble(32bit)を使いたいと思います。
サンプルプログラム(Sample25.java)
class Sample25{ public static void main(String args[]){ int x = 10; System.out.println("int 型で表示します"); System.out.println("x の値は" + x); double y = x; System.out.println("double型に型変換しました"); System.out.println("y の値は" + y); } }
プログラムをコピーする場合すべて選択をクリックしてください。
Sponsored link
コンパイル・実行したら以下のようになります。
int型のxの値10がdouble型のyに代入されて、yの値が10.0になることがわかります
これが型変換です。
では、その逆はどうでしょう。まずはサンプルプログラムを作ってみます。
サンプルプログラム(Sample25_1.java)
class Sample25_1{ public static void main(String args[]){ double y = 10; System.out.println("double型で表示します"); System.out.println("yの値は" + y); System.out.println("int型に型変換します"); int x = y; System.out.println("x の値は" + x); } }
プログラムをコピーする場合すべて選択をクリックしてください。
Sponsored link
このようなコンパイルエラーが出ます。
これはint型よりも大きなサイズdouble型の値をint型に代入しようとしたからです。
すなわち、小さい型から大きな型には代入できますが
大きい型から小さい型には代入できないのです。
もし小さいサイズの型の変数に大きなサイズの型の値を代入するには 型を変換することを明示的に書いてやる必要があります。
書き方は簡単です。 上のサンプルプログラムを例に出すと
int y = (int)x;
のように書くだけです。このことをキャストといいます。
キャストすることでエラーを回避することができます。
では、早速サンプルプログラムを書いていきます
サンプルプログラム(Sample25_2.java)
class Sample25_2{ public static void main(String args[]){ double y = 10; System.out.println("double型で表示します"); System.out.println("yの値は" + y); System.out.println("int型にキャストします"); int x =(int) y; System.out.println("x の値は" + x);
} }
プログラムをコピーする場合すべて選択をクリックしてください。
では、コンパイル・実行してみます。今度は無事コンパイルも実行もできました。
ちゃんとキャストされxの値に10が代入」されたのがわかります。
byte |
short |
int |
long |
float |
double |