【Javaの基礎】Javaの変数(参照型)

 

こんにちは、現役SEの「とも」です。

今回は、「参照型」の変数について書きたいと思います。

 

参照型はクラスや配列などといった、「データのかたまり」という概念をもつものが全て該当します

「プリミティブ型」以外は「参照型」といっていいかもしれませんね。

 

クラスと配列については別途詳しく書きますが、簡単な概要としては以下の通りです。

 

【クラスの特徴】

  • 任意のフィールド(変数)を任意の数だけ定義できる
  • フィールドにはプリミティブ型だけでなく、クラスや配列も定義できる
  • クラスにメソッドを持っている

 

基本的なクラスの記述は以下のようになります。

 

 
class TestCls{
  int a = 100;   // フィールド(変数)

  public void print1(){     // クラスメソッド
    System.out.println(a);
  }
}
	

 

クラスを利用する際の変数の定義は以下のようになります。

 
TestCls a = new TestCls();
	

 

 

【配列の特徴】

  • 同じ型のデータ型の配列を定義することが可能
  • プリミティブ型、参照型のどちらでも配列にすることは可能

 

配列の変数の定義は以下のようになります。

 

 
int a[] = new int[3];    // 要素数3のint型配列
	

 

 

クラスは、Javaが提供するライブラリが膨大な数あります。

また、自分で「実現したい挙動に合わせて」任意の変数を定義し、クラスを作成することもできますので、かなり汎用性の高い仕組みになっています。

 

配列については類似データや関連データの格納や繰り返し処理を行う際に良く使われ、クラスの配列といった、配列とクラスを組み合わせて使われることも多いです。

 

 

  • 参照型で注意すべきは、メモリの解放です。

前回の記事で、メモリの解放のお話はしていますので、今回はメモリの解放の方法を復習します。

 

メモリの解放については、以下のように使用が終わった変数にnullを設定します

これによって「a」の変数が参照している領域は解放されます。

 

 
TestCls a = new TestCls();
//何らかの処理
a = null;  //TestClsで確保されたメモリは解放される
	

 

 

ここでは、

  • 参照型はクラスと配列がある
  • 配列は、色々なデータ型で定義することができる
  • クラスは、色々なデータ型を組み合わせて定義することができる
  • 参照型はメモリの解放を意識する必要がある

ということを覚えておけば問題ありません。