オブジェクトとは

広告

オブジェクト指向では、クラスを用意しただけではプログラムは動作しません。クラスは設計図であり、その設計図をもとに実体であるオブジェクトを作成する必要があります。同じクラスから複数のオブジェクトを作成することもでき、プログラムはそれらのオブジェクトが互いに協力しながら処理を進めていきます。ここでは、オブジェクト指向におけるオブジェクトとはどのようなものかを解説します。

オブジェクトとは

クラスがオブジェクトを作成するための設計図であるのに対し、クラスをもとに作成される実体がオブジェクトです。クラスでは、オブジェクトがどのようなデータを持ち、どのような操作を行うのかを定義します。そしてそのクラスをもとに実際に作成されるものがオブジェクトです。

前のページで自動車を表す Car クラスを次のように作成しました。

class Car {
  String name;
  double price;

  void showPrice() {
    System.out.println(price);
  }

  String getName() {
    return name;
  }
}

Car クラスを元に複数の自動車オブジェクトを作成することができます。それぞれのオブジェクトは同じクラスから作られますが、持っているデータは同じ場合もありますし、まったく異なる場合もあります。例えば工場で製造した同じ車をあらわすオブジェクトを作成したのであれば、それぞれの車は同じ名前と価格を持ちます。車の販売所にある複数の車を表すオブジェクトを作成したのであれば、それぞれの車と名前や販売価格は異なるのが普通です。

オブジェクトの作成

Java では、クラスからオブジェクトを作成する場合に new 演算子を使用します。

クラス名 変数 = new クラス名();

例えば Car クラスのオブジェクトを作成する場合は次のように記述します。

Car myCar = new Car();

この例では Car クラスをもとに myCar という名前のオブジェクトを作成しています。 new を使用することで、クラスをもとに新しいオブジェクトが作成されます。

作成したオブジェクトを変数に代入していますが、 Java ではオブジェクトそのものが変数に入るわけではなく、オブジェクトの参照が変数に格納されます。参照とは、オブジェクトが存在している場所を示す情報のことです。

オブジェクトの作成(1)

そのため次のような代入を行うと、オブジェクトがコピーされるのではなく参照がコピーされます。結果として 2 つの変数は同じオブジェクトを参照します。

Car car1 = new Car();
Car car2 = car1;

オブジェクトの作成(2)

同じクラスから複数のオブジェクトを作成することもできます。

Car myCar = new Car();
Car friendsCar = new Car();

この場合、myCar と friendsCar はどちらも Car クラスから作成されたオブジェクトですが、それぞれ別のオブジェクトとして扱われます。このとき 2 つの変数には別々のオブジェクトの場所が入っています。

オブジェクトの作成(3)

オブジェクトを使う

作成したオブジェクトは、クラスで定義されたデータやメソッドを使うことができます。

Car myCar = new Car();

myCar.name = "アクエリアス";
myCar.price = 3200;

myCar.showPrice();

このようにオブジェクトを作成すると、クラスで定義されたデータやメソッドを利用することができます。オブジェクト指向では、このようなオブジェクト同士が互いに処理を行いながらプログラムが動作していきます。

-- --

オブジェクト指向におけるオブジェクトとはどのようなものかを解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。