型変換の基本 キャスト - 萌えJava超入門
第七章 基本データ型の型変換

型変換の基本

目的のデータ型の変数に値を代入する「暗黙的な型変換」と、
キャスト演算子による「明示的な型変換」があります。


目次

1.型変換とは


型変換とは、あるデータ型を他のデータ型に変換することです。
型変換はキャストとも呼ばれます。

型変換を説明する前に
重大な事実をお知らせしなければならない。
重要
Javaでは変数のデータ型を変更することはできません。

えっ?
できないの?


できない。
>
えっと、
どうやって型変換するんスか?

型変換をする方法には、暗黙的な型変換明示的な型変換があります。



2.暗黙的な型変換

暗黙的な型変換は、目的のデータ型の変数に値を代入することで行います。
特に型変換である旨を記述しなくても、代入するだけで型変換ができるので、
暗黙的(自動的)な型変換といいます。

例えばこんな感じだ。
int の値を double に変換している。
サンプルコード
  int num = 10;
  double dou = num;

あれ?
データ型が同じでないと
代入できないんじゃなかったっスか?
すまん。
全くできないわけではないんだ。

変数に代入できる値は、基本的に変数と同じデータ型の値ですが、
「表現できる範囲がより広いデータ型」への代入は許されます。

広いデータ型への変換を、広くする基本データ型変換(widening primitive)と呼んだりします。



3.明示的な型変換

明示的な型変換は、キャスト演算子で型変換を行います。
(キャスト演算子によって型変換を明示します。)

例えばこんな感じだ。
サンプルコード
  double dou =3.14;
  int num = (int)dou;

(int)がキャスト演算子?

そう。
この場合はintに型変換している。

キャスト演算子を使って明示的に型変換を行えば、データ型の広さに関係なく型変換ができます。
特に狭いデータ型への変換には、多くの場合キャスト演算子が必要になります。
ただし、狭いデータ型への変換では、値が表現できる範囲を超えていると、
精度が落ちたり、意味が失われたりするリスクがあります。

狭いデータ型への変換を、狭くする基本データ型変換(narrowing primitive)と呼んだりします。



4.booleanは型変換できない

基本データの中で、booleanだけは型変換できません
他のデータ型を booleanにすることも、booleanを他のデータ型にすることもできません。



5.データ型の範囲の広さ


データ型の範囲の広さは、以下の様な順番になっています。

データ型の広さの順番
byte < short < int < long < float < double

左から右への型変換は
暗黙的に行える。


プリミティブ型の範囲とサイズ
種類データ型サイズ
byte
範囲
整数型byte1
(8bit)
-128 ~ 127
整数型short2
(16bit)
-32768 ~ 32767
整数型int4
(32bit)
-2147483648
~ 2147483647
整数型long8
(64bit)
-9223372036854770000
~ 9223372036854775807
実数型float4
(32bit)
-3.4028235E+38
~ 3.4028235E+38
実数型double8
(64bit)
-1.79769313486231570E+308
~1.79769313486231570E+308
文字型char2
(16bit)
0~65535(UTF-16)
真偽型boolean-true 又は false



お疲れ様でした。




© 2019 awasekagami