はじめてのクラス
このページではJavaの主要な構成要素であるクラスの概念とその役割について説明します。また、Javaで混同されがちな、クラス、インスタンス、オブジェクトの違いについても説明します。
クラスとは
Javaを含むオブジェクト指向プログラミングでは、この世にある様々なものをオブジェクトと見なしています。例えば、現在使用しているコンピュータはオブジェクトであり、身近にある鉛筆・消しゴムなどもオブジェクトです。それらオブジェクトは"状態(メンバ変数)"と"振る舞い(メソッド)"を持つとされています。コンピュータオブジェクトはメモリ容量・HDD容量といった"状態"と、演算処理・I/O処理といった"振る舞い"を持っています。また、鉛筆・消しゴムも長さ・大きさという"状態"と書く・消すといった"振る舞い"を持っています。
オブジェクト指向プログラミングは、プログラムを"状態"と"振る舞い"を持つ一塊の物に整理し、世の中にあるオブジェクトと同様のものとして、プログラムを開発者が理解しやすい単位で進める方法です。
その中でクラスは、同様な"状態"・"振る舞い"を持つオブジェクトの共通部分を集め、1つの型を構成する役割を持っています。

プログラムを作成する際、存在するオブジェクト毎にプログラムを作成すると煩雑で整理しずらいものになります。例えばAコンピュータ、Bコンピュータといったオブジェクト毎にプログラムを作成し管理するのではなく、共通部分のひとまとまりの型であるクラスを作成し、そこから具体的なオブジェクトを生成したほうがプログラムの作成工数も削減でき、また管理もしやすくなります。
Javaでは、クラス単位でプログラムを作成し、クラスからオブジェクト(インスタンス)を生成、生成されたオブジェクト(インスタンス)に対し様々な処理を実行していきます。

Javaでは、クラスから生成されたオブジェクトをインスタンスといいます。クラス、インスタンス、オブジェクトは混同されがちです。詳細は、下記を参照してください。
クラス、インスタンス、オブジェクトの違い
Javaプログラムで混同されがちな、クラス、インスタンス、オブジェクトの違いについて説明します。Javaを含むオブジェクト指向プログラミングでは、この世にある様々なものをオブジェクトとみなし、それらオブジェクトは状態(メンバ変数)と振る舞い(メソッド)を持つとしています。クラスは、そのオブジェクトの共通の"状態"と"振る舞い"を集め、一つの型としたものです。
インスタンスは、クラスから生成される実態を持ったオブジェクトです。クラスが、オブジェクトの共通の状態と振る舞いを定義した設計書とすると、インスタンスは設計書から生成される実態といえます。Javaではインスタンスに対し様々な処理を実行していきます。まとめると、以下のようになります。
- オブジェクト:世の中にある状態と振る舞いを持つひとまとまりもの。クラスもオブジェクトであり、インスタンスもオブジェクト。
- クラス:オブジェクトの共通の状態と振る舞いを集めた一つの型。設計書。
- インスタンス:クラスから生成される実態。設計書から生成される実態。
1はじめてのクラス