【Java入門】オブジェクト指向とは?オブジェクトとインスタンスの関係
- ツイート
-
- 2018/02/21
Javaは「オブジェクト指向言語」に分類されます。プログラミング初心者の方がつまずきやすいポイントの1つに、このオブジェクト指向と呼ばれる概念があります。オブジェクト指向の意味を理解できず、お困りの方も多いのではないでしょうか。
オブジェクト指向は、拡張性や保守性の高いプログラムを書くために不可欠な考え方です。そこで今回は、オブジェクト指向の概要、オブジェクトとインスタンスの関係についてご紹介します。
IT業界まるわかりガイドは、日本初Web専門スクールのインターネット・アカデミーが運営する業界情報メディアです。最新の業界情報を、初心者にも分かりやすくご紹介しています。
目次
オブジェクト指向とは?
「オブジェクト」という言葉には、「モノ」という意味があります。オブジェクト指向プログラミングでは、プログラムの機能や役割を区別し、それぞれを部品(オブジェクト)として組み合わせることで1つのプログラムを作ります。
オブジェクト指向のメリットは、既存プログラムを活用できることです。新規でプログラムを書く際、過去に作成したプログラムをそのまま、もしくは修正を加えて再利用すれば、プログラムを一から書く手間を省けます。
小規模なプログラムを開発する場合は、オブジェクト指向のメリットを感じられる機会は少ないかもしれませんが、膨大な量のコーディングを必要とする場面では欠かせない考え方です。
クラス、インスタンスとは?
オブジェクト指向で重要なキーワードが「クラス」と「インスタンス」です。実際のプログラムを見る前に、具体的なイメージをつかんでおきましょう。
クラスとは
クラスはオブジェクトの設計図です。オブジェクトの属性(プロパティ)や振る舞い(メソッド)を記述し、オブジェクトのひな形としての役割を果たします。プロパティはオブジェクトが持つデータ、メソッドはオブジェクトが持つ機能を指します。
分かりづらいという方は、オブジェクトを自動車、クラスを自動車の設計図と考えると良いでしょう。この場合、自動車の走る・曲がる・止まるといった機能がメソッド、車体サイズや色、排気量といったスペックがプロパティに対応します。
インスタンスとは
クラス(設計図)を実体化したものがインスタンスです。自動車の例で考えれば、設計図をもとにして製造された自動車がインスタンスにあたります。また、クラスからオブジェクトを生成することをインスタンス化と呼びます。
ただし、インスタンス(およびインスタンス化)はオブジェクト(オブジェクト化)と呼ばれることもあるため、注意しましょう。
オブジェクトとインスタンスの関係
自動車(オブジェクト)に乗りたいのに、自動車の設計図(クラス)を渡されても困ってしまいます。欲しいのは設計図ではなく、実体のある自動車(インスタンス)だからです。プログラムの中でオブジェクトを利用するためには、クラスの記述だけではなく、インスタンス化を行う必要があります。
インスタンス化の構文は以下のように記述します。
クラス名 変数名 = new クラス名();
【プログラム例】
IDcard a = new IDcard(); a.number = 0001; a.name = 鈴木和子; System.out.println("社員番号:" + a.number +" 氏名" + a.name);
最初の行で、new IDcard() という記述によってIDcardクラスのインスタンスを生成し、変数aに代入しています。変数aはIDcard型の変数となります。そして次の行で、変数aにインスタンス変数numberとnameを持たせて値を代入しています。
おわりに
Javaを学び始めた方にとって、クラスやインスタンス、オブジェクトは理解しづらい概念です。オブジェクト指向プログラミングでは、オブジェクトの設計図であるクラスにプロパティとメソッドを記述し、そこから実体としてインスタンスを生成するということを、しっかりと頭に入れておきましょう。
インターネット・アカデミーのJava講座では、「オブジェクト指向」などJavaの基本的な考え方から実践的なスキルまで無理なく学ぶことができます。現場で活かせる知識を身に付けたい方は、毎日開催されている無料体験レッスンにお越しください。