Javaのデータ型には大きく分けて、参照型とプリミティブ型の2種類があります。
違いをざっくり言うと、オブジェクト(変数)の中身の違いです。
今回はよく使われる「箱」の例を用いて、それぞれの違いのイメージが沸くように解説していきます。
プリミティブ型(基本型)
プリミティブ型は基本型とも呼ばれ、Javaでは下表のようなものがあります。
型名 | 格納できる値 |
---|---|
boolean | true またはfalse |
char | 1文字 |
byte | 整数(8ビット) -128〜127 |
short | 整数(16ビット) -32768〜32767 |
int | 整数(32ビット) -2147483648〜2147483648 |
long | 整数(64ビット) -9223372036854775808〜9223372036854775807 |
float | 実数(32ビット) |
double | 実数(64ビット) |
これらのデータ型は、オブジェクト(変数)に値が直接入っているイメージです。
下記のコードを見てください。
int number = 10;
このような場合、int型のデータ(整数値)を入れる箱を用意し、その箱に「number」という名前を付けています。
そして、その箱に値「10」を入れています。
参照型(クラス型)
参照型はクラス型とも呼ばれ、クラスによって定義された型のことをいいます。
クラス型のオブジェクト(変数)にはインスタンス(クラスを元に作られたオブジェクト)が格納されます。
class Main{
public static void main(String[] args){
Object obj = new Object();
obj.number = 10;
}
}
class Object{
public int number;
}
この場合、3行目でObjectクラスから作られたオブジェクトを入れるための箱を用意し、箱に「obj」という名前を付けています。
この時、箱「obj」の中には「number」という箱が保存されている「住所」(仮に100とする)が入っています。
5行目で箱「number」の中に値「10」を入れています。
値「10」取り出す流れは、
- 「obj」の中の「住所(100)」を参照
- 「住所(100)」に保存してある「number」内の値「10」を取り出す
となっています。
まとめ
プリミティブ型・・・箱の中に「値」が入っている
参照型・・・箱の中に「住所」が入っている
コメント
[…] […]