変数の型と代入する値の型が異なる場合、代入する値の型を、変数の型に自動変換する。
ただし、大きい型から小さい型へは変換しない。
代入時のプリミティブ型変換ルール表
プリミティブ型 | 変換できるプリミティブ型 |
boolean型(論理型) | 変換できない |
char型 | int型、long型、float型、double型 |
byte型 | short型、int型、long型、float型、double型 |
short型 | int型、long型、float型、double型 |
int型 | long型、float型、double型 |
long型 | float型、double型 |
float型 | double型 |
double型 | 変換できない |
例
int型に自動変換する例
1 | int型変数 = byte型変数 |
1 | int型変数 = short型変数 |
float型に自動変換する例
1 | float型変数 = byte型変数 |
1 | float型変数 = int型変数 |
サンプル
SampleClass.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | package samplePackage; public class SampleClass { public static void main( String[] args ){ // byte型変数に「100」を代入。 byte $byte = 100; // int型変数にbyte型変数の値を代入。 int $int = $byte; System.out.println( "変数$intの値は、「" + $int + "」である。" ); // float型変数にint型変数の値を代入。 float $float = $int; System.out.println( "変数$floatの値は、「" + $float + "」である。" ); } } |
実行結果
変数$intの値は、「100」である。
変数$floatの値は、「100.0」である。
変数$floatの値は、「100.0」である。