変数の明示的なキャスト
前回は、変数が自動で型変換される様子を説明しました。変数の型変換(キャストといいます)は、プログラマが明示的に行うこともできます。今回は明示的な型変換の方法を説明します。
変数の明示的なキャスト 目次
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;
}
}




最近のコメント