メンバ変数に値を格納する

広告

ここではクラスの中に定義したメンバ変数へ値を格納する方法について見ていきます。

まずメンバ変数が定義されている同じクラスの中で値を格納する場合です。下記の例を見てください。

class Television{
  int channelNo;

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

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

上記のsetChannelメソッド内で、メンバ変数に値を格納しています。この場合は、メンバ変数に他の変数の値を格納していますが、メンバ変数に直接値を格納する場合でも同じです。このように同じクラスの中であれば、普通の変数と同じように扱うことが出来ます。

またより丁寧に書く場合には、「自分自身のクラス」にあるメンバ変数という意味を込めて、「this.メンバ変数 = 値」と言う記述もします。「this」と言うのは自分自身という意味をもつ定義済みの値で、thisを付けた記述方法の方が正式なのですが通常は省略しています。

次にこのクラスからオブジェクトを作成し、そのオブジェクトを使って値を格納する方法です。下記の例を見てください。

class ctest{
  public static void main(String args[]){
    Television tv1 = new Television();

    tv1.channelNo = 1;
  }
}

class Television{
  int channelNo;

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

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

上記の例では、クラスを元にオブジェクトを作成してから、そのオブジェクトを使ってメンバ変数に値を格納しています。この場合の記述方法は下記のようになります。

オブジェクト名.メンバ変数名 = 値;

普通の変数の場合は、「変数名 = 値」と言う形で値を格納できますが、メンバ変数の場合は作成されたオブジェクト毎に変数の格納する場所が異なりますので、「オブジェクト名.メンバ変数名 = 値」という形で、どのオブジェクトのメンバ変数かを指定して値を格納します。

最後にメンバ変数が定義されているクラスのメソッドを使って値を格納する方法です。下記の例を見てください。

class ctest{
  public static void main(String args[]){
    Television tv1 = new Television();

    tv1.setChannel(1);
  }
}

class Television{
  int channelNo;

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

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

上記の場合、作成されたオブジェクトを使ってクラスの中に定義されたメソッドを呼び出しています。そのメソッドの中で、メンバ変数に値を格納しています。「オブジェクト変数.メンバ変数=値」の記述方法でメンバ変数に値を格納できるのに、何故このような一度メソッドを呼び出す手間をかける場合があるのかについては次のページで見ていきます。

( Written by Tatsuo Ikura )

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