第七章 基本データ型の型変換
型変換の基本
目的のデータ型の変数に値を代入する「暗黙的な型変換」と、
キャスト演算子による「明示的な型変換」があります。
目次
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 | 範囲 |
| 整数型 | byte | 1 (8bit) | -128 ~ 127 |
| 整数型 | short | 2 (16bit) | -32768 ~ 32767 |
| 整数型 | int | 4 (32bit) | -2147483648 ~ 2147483647 |
| 整数型 | long | 8 (64bit) | -9223372036854770000 ~ 9223372036854775807 |
| 実数型 | float | 4 (32bit) | -3.4028235E+38 ~ 3.4028235E+38 |
| 実数型 | double | 8 (64bit) | -1.79769313486231570E+308 ~1.79769313486231570E+308 |
| 文字型 | char | 2 (16bit) | 0~65535(UTF-16) |
| 真偽型 | boolean | - | true 又は false |
お疲れ様でした。