参照型とは?
参照型とは、値そのものを保持するものではなく、値が置いてある場所を保持します。また、値が置いてある場所を保持する変数のことを参照型変数といいます。
基本データ型との違い
基本データ型では、変数に直接その値が代入されます。
基本データ型について知りたい方は下記の記事をご覧ください。
現実世界で例えると?
例えば、あなたが「Aさんの家に行きたい」と思ったとき、実際には「Aさんの家の住所」を手に入れ、それを頼りに家を訪問します。ここで重要なのは、手に持っているのは「家そのもの」ではなく、「家の住所」ということです。
- Aさんの家:これが実際のデータやオブジェクトに相当します。
- 住所:これがメモリ上のアドレス(参照)に相当します。
家の住所を知っているだけで、Aさんの家に行くことができるように、プログラム内で参照型変数を使うと、データが格納されている場所(メモリ上のアドレス)を知っているだけで、そのデータにアクセスできるのです。
コード例
実際にコードで参照型をみていきましょう。以下はJavaでの参照型の例です。
Java
int[] numbers1 = {1, 2, 3};
int[] numbers2 = numbers1;
numbers2[0] = 10;
System.out.println(numbers1[0]); // 結果:10
この例では、numbers1
とnumbers2
は同じ配列を参照しているため、numbers2
で要素を変更すると、numbers1
も影響を受けます。つまり、両者は同じメモリ上のオブジェクトを参照しているのです。
主な参照型の種類
- クラス:String,Scannerなど、ユーザー定義のクラスも含む
- 配列:複数のデータを扱うための参照型
- インターフェース:オブジェクトの契約を定義する参照型
- 列挙型(Enum):限られた定数の集合を定義する参照型
まとめ
参照型は、Javaのオブジェクト指向プログラミングに欠かせない重要な概念です。配列やクラス、インターフェースなど、多くの機能がこの参照型を使って動作しています。基本の仕組みを理解しておくことで、Javaでのプログラミングがよりスムーズに進むでしょう。