参照型とプリミティブ型【Java】

参照型?プリミティブ型? Java

Javaのデータ型には大きく分けて、参照型プリミティブ型の2種類があります。

違いをざっくり言うと、オブジェクト(変数)の中身の違いです。

今回はよく使われる「箱」の例を用いて、それぞれの違いのイメージが沸くように解説していきます。

プリミティブ型(基本型)

プリミティブ型は基本型とも呼ばれ、Javaでは下表のようなものがあります。

型名格納できる値
booleantrue またはfalse
char1文字
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」取り出す流れは、

  1. 「obj」の中の「住所(100)」を参照
  2. 「住所(100)」に保存してある「number」内の値「10」を取り出す

となっています。

まとめ

プリミティブ型・・・箱の中に「値」が入っている

参照型・・・箱の中に「住所」が入っている

コメント

  1. […] […]

タイトルとURLをコピーしました