変数の明示的なキャスト
前回は、変数が自動で型変換される様子を説明しました。変数の型変換(キャストといいます)は、プログラマが明示的に行うこともできます。今回は明示的な型変換の方法を説明します。
変数の明示的なキャスト 目次
1.変数を明示的にキャストする
自動的にキャストされる場合は、値を代入するだけでしたが、明示的にキャストする場合は変換先の型名を指定します。次の様に書きます。
(変換先の型)キャストする対象の値や変数
package pac01; public class HelloWorld { public static void main(String[] args) { int intHensu1; intHensu1 = (int)1.2; System.out.println(intHensu1); } } ----------------------------------------------------------------- 1
1.2というdouble型の値を、int型の変数にそのまま代入しようとした場合、小数点以下が欠落してしまう為、自動型変換ではエラーとなります。但し、小数点以下は無くても構わない場合もありますので、その時は上記のようにint型へのキャストを明示することで、可能になります。
2.色々なキャストの書き方
この明示的なキャストは、色々な書き方ができます。上で書いたのは変数に値を代入する際でしたが、他にも変数の初期化時や、計算式に対してもキャストすることができます。
package pac01; public class HelloWorld { public static void main(String[] args) { int intHensu1 = (int)1.2; // 変数の初期化時にキャスト System.out.println(intHensu1); intHensu1 = (int)(5 * 1.1); // 計算結果5 × 1.1 = 5.5 をキャスト System.out.println(intHensu1); } } ----------------------------------------------------------------- 1 5
3.キャストできない型
boolean型は、どの型にもキャストすることはできません。また、String型からchar型へのキャストは一見できそうに思いますが、これもNGです。
package pac01; public class HelloWorld { public static void main(String[] args) { int intHensu1 = (int)false; boolean blnHensu2 = false; intHensu1 = (int)blnHensu2; String strHensu3 = "123"; char chrHensu4; chrHrnsu4 = (char)strHensu3; } }
最近のコメント