プログラミング初心者の私が実務未経験転職するにあたり、会社の研修資料以外にも本格的に自主的な勉強をするためについに始めました。今回はそのシリーズの第6段となります。過去記事は下記から見れます。
現在使用している参考書は「オラクル認定資格教科書 JavaプログラマSilver SE11」いわゆる紫本と呼ばれる参考書です。今後は白本・黒本を活用しつつ勉強していくと思います。
オラクル認定資格教科書 JavaプログラマSilver SE11
基本データ型の型変換
暗黙型変換
①変数への代入で利用
1.(short型からint型へ暗黙型変換)
short s = 10 ;
int i = s ;
2.(int型からfloat型へ暗黙型変換)
float f = 7 / 6 ; → ※7/6は1と計算される
f変数には1.0が格納される。
3.配列
int [] array = new int [3] ;
array[0] = ‘a’ ;//char型からint型へ
array[1] = 1.0F ;//float型からint型へ(コンパイルエラー)
array[2] = 2.0 ;//double型からint型へ(コンパイルエラー)
※キャストを使用することでコンパイルエラーを回避できます!
②メソッドの引き数で利用
(呼び出し側)
int i = 100 ;
method(i) ;
(定義側)
void method (double d){}
※メソッドの引数でint値を渡し、double型で宣言した変数で受け取る。d変数には100.0が格納される。
③メソッドの戻り値で利用
(呼び出し側)
double d = method() ;
(定義側)
int method() {
int i = 100 ;
return i ; }
※メソッドで処理した結果をint型で返す。戻り値をdouble型で宣言した変数で受け取る。
キャストによる型変換
①変数への代入で利用
1.(int型からshort型へキャストによる型変換)
int i = 10 ;
short s = (short) i ;
2.(double型からint型へキャストによる型変換)
double d = 10.5 ;
int i = (int) d ;
※iには10が格納される
②メソッドの引き数で利用
(呼び出し側)
double d = 10.5 ;
method((int) d) ;
(定義側)
void method (int i){}
※メソッドの引数でdouble型をint型に変換してからint型で宣言した変数で受け取る。i変数には10が格納される。
③メソッドの戻り値で利用
(呼び出し側)
int i = method() ;
(定義側)
double method() {
double d = 10.5 ;
return d ; }
※メソッドで処理した結果をint型に変換してから返す。戻り値をint型で宣言した変数で受け取る。i変数には10が格納される。
型変換での注意
インクリメント/デクリメントでは型変換は行われないため、+のようにオペランドを2つとる演算子には次のルールが適用される。
・より大きい方の型に変換される。
・long,float,double以外はint型に変換される。
ラッパークラス(Boxing/Unboxing)
Javaでは、基本データ型の値を参照型として扱う専用のクラスが提供されています。これをラッパークラスと呼びます。
例えば、Integerクラスを使用すると、基本データ型であるint型の値を参照型として扱えるようになります。
Boxing
基本データ型からラッパークラスへの自動変換をBoxingと呼びます。
Unboxing
ラッパークラスから基本データ型への自動変換をUnboxingと呼びます。
Boxingでは暗黙の型変換は行われない。
①基本データ型同士は暗黙の型変換が行われる
double d1 = 10 ;//int型からdouble型への変換
②Boxing下では暗黙の型変換は行われない
コンパイルエラー
Double d2 = 10;//