メンバ変数とは

広告

ここではメンバ変数について見ておきましょう。メンバ変数とはクラス定義の中で下記の部分です。

class Television{
  int channelNo;

  void setChannel(int newChannelNo){
    channelNo = newChannelNo;
  }

  void dispChannel(){
    System.out.println("現在のチャンネルは " + channelNo + " です");
  }
}

クラス定義をしている"{"と"}"の中に記述され、そしてメソッドの外に記述されている変数のことです。

変数は、変数の定義が記述されている箇所を含んでいる一番近くの"{"と"}"の中でだけ使う事が出来ます。例えば下記の場合で考えてみます。

class Television{
  void setChannel(int newChannelNo){
    int no = 10;

    if (no == 10){
      String str = "チャンネルは";
      System.out.println(str + no + " です");
    }
  }
}

少し変なサンプルですが気にしないで下さい。上記で変数「no」が定義されて部分を含んでいる一番近くの"{"と"}"はsetChannelメソッドを定義している"{"と"}"ですので、この変数はsetChannelメソッド内で自由に使うことが出来ます。また変数「str」はif文の"{"と"}"の中に記述されていますので、この変数はif文の中では自由に使えますが、if文の外ではこの変数を使うことは出来ません。

ここで最初に記述したクラス定義をもう一度見てください。

class Television{
  int channelNo;

  void setChannel(int newChannelNo){
    channelNo = newChannelNo;
  }

  void dispChannel(){
    System.out.println("現在のチャンネルは " + channelNo + " です");
  }
}

変数「channelNo」の定義されている部分を含んでいる一番近くの"{"と"}"はクラス定義の"{"と"}"ですので、この変数はクラス内であれば自由に使うことが出来ます。このような変数をメンバ変数と言います。

このクラスからオブジェクトを作成した時にメンバ変数は作成され、オブジェクトが破棄されるまで変数に格納されている値は保存されています。また変数の値を格納する領域はオブジェクト毎に別々になっていますので、オブジェクト毎にオブジェクトが破棄されるまで変数に値を保存しておくことができます。

その為、メンバ変数はオブジェクトの性質や状態などを保存しておく時に利用します。上記のクラスの場合で言えば、テレビを表すクラスの中で、そのクラスから作成されたオブジェクトが現在表示しているチャンネルを保存しているために使われています。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)