プログラミングでいうクラスは、一般的に使われるクラスとは意味が違います。
クラスとは設計書
クラスとは、プログラミングでいうと「設計書」になります。クラス自体は実体がなくそれ自身が動いて何か処理をするわけではありません。処理を書くためにあらかじめ定義しておくものです。
例えば、車で考えてみます。タイヤを4つ使うとか、エンジンを配置するとか、座席や燃料タンクだとかを設計して自動車はどう作られるかを定義しておくものです。
インスタンスは設計書に基づき作ったモノ
インスタンスとは、クラスを用いて実体を作成したモノです。設計書から出来上がったものです。プログラムでここが実際に動く処理です。
この設計書からモノにすることを「インスタンス化」といいます。「〇〇クラスからインスタンスを生成する」といいます。それにより、モノが実際に生まれます。
例の車で考えてみます。この車クラスをもとにすれば、セダンやトラックなどといったいろいろな種類の車を作ることが出来ます。この出来上がったセダンやトラックが「インスタンス」です。
インスタンス化するときには何をするのかというと、どれくらいの大きさのタイヤを使うか、燃料は何を使うか、座席はいくつ必要かなどを指定するのです。その指定された通りにモノが出来上がります。
実際にやってみます。javaでNew演算子というものを使用します。New演算子を使用して生成することを「Newする」と呼びます。
クラス
class kuruma{
(このなかにタイヤを使うとか燃料を使うとかを定義します)
}
このクラスをNew演算子でインスタンス化するには下記のように書きます。
kuruma sedan = new kuruma();
こうすることによりkurumaの設計書を使ってsedanというモノを作ることが出来ます。このsedanに対してタイヤの大きさや燃料はレギュラーを使うだのを指定します。
オブジェクトはモノの範囲をひろげた呼び方
オブジェクトとは、モノとモノが使用するデータやその操作方法などをひっくるめたモノといったイメージです。
例の車でまた考えてみます。インスタンスは車そのものだけでした。しかしオブジェクトとなると燃料であるガソリンや、車検証や車を動かしたり使うことに必要なものも含めた範囲のものです。
とは書いてみたものの、オブジェクトの持つ意味はかなり広範囲になります。今回のクラスについての記事だと上記の意味合いですが、別のところではまた意味が違うように見えることもあります。ひとまずは「モノ」であればオブジェクトと呼んでいいかと思います。
コメント