Javaでは代入や算術等の演算を行う際に自動的に型変換された後に演算が行われます。
しかし、演算の一部では自動的に型変換できない場合があります。その際に利用するのが「キャスト」による型変換です。
キャストによる型変換
自動的に型変換が行われない場合、プログラマーが強制的に型変換をさせることができます。それがキャストです。
キャストによる型変換は関連性のある型同士でおこないます。たとえば、boolean型からintへのキャストはできません。しかし、charは内部が数値(文字コード)で管理されていることからint型等の数値への型変換が可能です。
キャストは(型)をキャストしたいデータの左側に記述します。
キャストの文法 | (型)データもしくは変数 |
---|---|
記述例 | (int)10.8
char c = ‘a’ |
代表的なキャストには小数から整数への型変換があります。
小数から整数へ型変換すると小数部が切り捨てられ、整数部分のみとなります。
また、文字から文字列、文字列から文字へのキャストは行うことができません。
文字列は基本データ型ではないので、文字と文字列の相互変換は別の方法で行います。
キャスト サンプルプログラム
以下のプログラムを「Number13.java」という名前でworkフォルダ内に保存します。
保存が完了したら、コマンドプロンプトを起動し、コンパイルおよび実行を行ってみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
class Number13{ public static void main(String[] args){ //小数から整数へキャスト System.out.println((int)10.8); //演算結果をキャスト(小数点切捨て) System.out.println("税込み価格: " + (int)(13800 * 1.1)); //数値をchar型へキャスト int a = 97; System.out.println((char)a); //文字列と文字は型変換ができない(コメントを外すとコンパイルエラー) char c = 'a'; //String str = (String)c; } } |
実行例
c:\work>javac Number13.java
c:\work>java Number13
10
税込み価格: 15180
a
※実行例はコンパイルから実行までの例を表示しています。
まとめ
- キャストを利用すると強制的に型変換を行うことができる
- String型からintやdoubleへキャストできない