型変換とキャスト

Javaの型にはint型やbyte型などいろいろな型があります。
その型をプログラム上で変換することができます。

大きなサイズの型の変数に小さいサイズの型の値を代入することができるのです。
これを型変換といいます。

つまり byte型(8bit)の変数をint型(32bit)に代入することができるのです.

では、サンプルプログラムを見ていきます。
ここでは、型変換されたことをわかりやすくするため
整数の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

ページのトップへ戻る