なんとなく分かるプログ

初学者がなんとなく分かった気になれるプログ(Programming Blog)

なんとなくわかるJava入門#5 型変換編

こんにちは。

今回は型変換編です。今回の目標は「暗黙的/明示的型変換について理解する」です。

最初の3か月間無料で音楽聞き放題!

スッキリわかるJava入門 第3版 スッキリわかるシリーズエレコム ウェットティッシュ クリーナー 汚れ落とし 強力 消臭 除菌 110枚入り 帯電防止効果 重曹電解水が汚れを除去 ボトルタイプ 日本製 WC-JU110N2Fire TV Stick 第3世代 | HD対応スタンダードモデル | ストリーミングメディアプレイヤー【2021年発売】Amazonギフトカード チャージタイプ(直接アカウントに残高追加)ヨックモック YOKUMOKU お歳暮 御歳暮 歳暮 クリスマス ホリデー スイーツ お菓子 ギフト プレゼント 人気 洋菓子 詰め合わせ 個包装 シガール オゥ ショコラ 18本入り

 

 

異なる型同士の演算

異なる型の値同士が計算された場合、どうなるのかを説明していきます。

この計算には、暗黙的型変換と明示的型変換という仕組みが重要になってきます。

暗黙的型変換

基本は同じ型の値同士で計算が行われます。では、 1 + 1L のような計算、つまり、int 型と long 型の足し算を書いたらどうなるのでしょうか?


        long l = 1 + 1L;
    

正解は、同じ型同士の計算になるように「型変換(キャスト)」が行われます。 1 + 1L の場合、int型の値(1)が long 型(1L)に変換されてから、計算が行われます。このように勝手に型変換が行われることを、「暗黙的型変換(暗黙的キャスト)」と呼びます。

型変換は小さい型の方を大きい型の方になるよう変換が行われます。この、大きい、小さいは覚えていますか?( 基本データ型編 参照 ) int 型と long 型は、どちらも、整数を扱います。この二つの違いは、扱える値の範囲です。 long 型は、長整数と言って、int 型より大きい桁を扱うことができます。

大きさの順序は、次のとおりです。


        int < long < double
    

int型とlong型の計算であれば、int型の値はlong型に変換されるし、long型とdouble型の計算であれば、long型の値はdouble型に変換されます。

なぜ小さい方から大きい方に変換されるのでしょうか?int型とdouble型の違いは、小数点以下の値を扱えるかどうかです。

もしも、1というint型の値をdouble型に変換したとしたら、1.0になります。これは「.0」が追加されただけです。したがって、1 + 1.5 を評価したら、2.5 であり特に計算結果は変わりません。

しかし、1.5というdouble型の値をint型に変換したらどうなるでしょうか?正解は、1になります。これは「.5」の情報が削除されたことになります。1 + 1.5は、2となってしまい、計算結果が変わってしまいますよね?これだと想定しない問題も起きかねないので、小さい方から大きい方へ変換されると覚えると良いでしょう。

 

明示的型変換

どうしても大きい方の型から、小さい方の型へ変換したい場合があります。

通常は、「 int a = 1.5; 」のように、double型の値をint型の変数に代入することはできません。これを代入できるようにするには、「キャスト演算子を利用します。

キャスト演算子は、「(変換したい型)」のように記述します。先ほどの例の場合は、「int a = (int) 1.5;」のように記述します。これによりdouble型の値をint型に変換してから代入します。

ただし、大きい型の値を、小さい型に適合するように、一部の情報が削除されることに注意してください。「int a = (int) 1.5;」の場合、「1.5」をint型に変換すると小数点以下の値は扱えなくなるので、この情報が削除され、「1」となります。つまり、aに代入される値は「1」です。

このようにキャスト演算子を利用して型変換を行うことを「明示的型変換(明示的キャスト)」と呼びます。

 

こまけぇハナシ

暗黙的と明示的について

暗黙的と明示的という言葉はソフトウェアの分野ではよく使われます。

辞書にある暗黙値という用語の言葉を借りると、

暗黙的とは、文章などで示されないが、常識的(典型的)には分かっていること。

明示的とは、文章などではっきりと分かるように示されていること。

を指します。文書や会話で明示的だとか明示してというようにあれば、あぁはっきりと示すのね~というように理解すれば良いです。

 

終わりに

といことで、型変換編は以上です。次回は条件分岐編(予定)です。

ほんじゃ、また。
励みになるので、良ければ下の☆ボタン、読者になるボタンを押していって下さい。