型変換とキャスト
型変換
とは、ある型から別の型に変換することを言う(int型からdouble型に変換など)。
そして
キャスト
とは、代入する変数に、プログラマが意識的に型変換することである。
boolean型を除くプリミティブ型変数の場合、代入によって値の精度が落ちなければJava実行環境(Java VM)によりプログラマが意識しなくても自動的に型変換される(ワイドニング変換)。
しかし、代入する変数の型の方がサイズが大きかったり、整数型の変数に浮動小数型の変数の値を代入すると値の精度が落ちる(ナローイング変換)ので、代入する変数をプログラマが意識的に変換(キャスト)する必要がある。
ワイドニング変換:ある型からより多くのサイズ(ビット数)の型に変換(代入)する→精度が落ちない(下位ビットの情報を失う恐れあり)
ナローイング変換:ある型からより少ないサイズ(ビット数)の型に変換(代入)する→精度が落ちるのでキャストしなければコンパイルエラーが起こる
【注意】
boolean型は他のどのプリミティブ型への変換もできない。
プリミティブ型の代入における変換の対応表
青い下の矢印
↓
はナローイング変換
赤い上の矢印
↑
はワイドニング変換
黒い上の矢印↑はワイドニング変換だが、下位ビットの情報を失う恐れあり
数値格上げ変換
以下の様な四則演算を行う。
演算子
使用方法
使用例
演算結果
加算
+
A + B
5 + 2
7
減算
-
A - B
5 - 2
3
乗算
*
A * B
5 * 2
10
除算
/
A / B
5 / 2
2
剰余(除算の余り)
%
A % B
5 % 2
1
AとBはboolean型を除くプリミティブ型の式を表す
ここで注目すべきなのは、除算の演算結果が本来2.5であるはずなのに2という整数(int型)になっている点である。
このような結果になるのは、以下の様な数値格上げ変換が暗黙的に行われているからである。
本来の演算結果を得たい場合は、次に説明するキャストを行えばよい。
本サイトにおける全コンテンツの無断複製,転写,公衆送信を禁じます
Copyright(C) 2003-2010 Eiko Takaoka. All rights reserved.