クラスを利用してみる

広告

では試しに複数のクラスを使ったプログラムを試してみましょう。

Javaプログラム入門で色々試していたサンプルプログラムは基本的に下記のような構成をしていました。

class ctest1{
  public static void main(String args[]){
    /* ここに色々プログラムを記述する */
  }
}

場合によっては、他にメソッドなども定義していましたが、登場するクラスは1つだけでした。

では新しく「Television」というクラスを作成してみます。

class ctest1{
  public static void main(String args[]){
    /* ここに色々プログラムを記述する */
  }
}

class Television{
  int channelNo;

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

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

新しいクラスは同じファイル内に記述されています。またTelevisonクラスには変数の「channelNo」と、メソッドとして「setChannel」メソッドと「dispChannel」メソッドが定義されています。

クラスとは何かを実行する設計図のようなものだと前に書いていますが、このTelevisionというクラスはテレビを受信して写しだすためのクラスです。このクラスには「チャンネルを合わせる」動作と、「現在のチャンネルを表示する」動作の2つの動作を表すメソッドが記述されています。またこのクラスから作成されるオブジェクトが現在のチャンネルを覚えておく為の変数が1つ用意されています。

このようにテレビを表す設計図であるTelevisonクラスを定義しましたので、今度はその設計図を元に実際の物体を作成します。

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

class Television{
  int channelNo;

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

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

これでTelevisionクラスを元にして1つの物体(オブジェクト)が作成されました。これは強いて言うならテレビが1台製造されたようなものです。では作成したテレビのチャンネルを「1」に設定し、それから現在設定されているチャンネルを表示させて見ましょう。

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

    tv1.setChannel(1);
    tv1.dispChannel();
  }
}

class Television{
  int channelNo;

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

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

作成したオブジェクトに対して、その元になっているクラスで定義されているメソッドを実行させるには下記のように記述します。

オブジェクト名.メソッド名(引数);

先ほどの場合であれば、下記の部分がそれに該当します。

tv1.setChannel(1);
tv1.dispChannel();

これは作成した物体に対してメソッドの形で記述された動作をさせているということになります。

また同じクラスを元に複数のオブジェクトを作成することも出来ます。それぞれは全然別のものになりますので、それぞれのオブジェクトが保存している値なども完全に独立しています。

ここで2つのテレビを作成してそれぞれチャンネルを表示させるサンプルを試して見ましょう。

ctest1.java

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

    tv1.setPlace("居間");
    tv2.setPlace("寝室");

    tv1.setChannel(1);
    tv2.setChannel(8);

    tv1.dispChannel();
    tv2.dispChannel();
  }
}

class Television{
  int channelNo;
  String place;

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

  void setPlace(String newPlace){
    place = newPlace;
  }

  void dispChannel(){
    System.out.println(place + "にあるテレビの現在のチャンネルは " +  channelNo + " です");
  }
}

上記のサンプルでは、それぞれのオブジェクトを識別するために、テレビが設置されている場所も内部で保存できるようにしてあります。実際に実行した結果は下記のようになります。

p1

クラスを使ったプログラムの記述は以上のようになります。細かい点はよく分からなくても現時点では構いませんので、こんなものなんだなと思っておいて下さい。

( Written by Tatsuo Ikura )

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