広告
  サイト内検索:
<Let's create a game!> Introduction of programming for absolute beginners English

クラス
クラス

クラスって何?:クラスはオブジェクトの設計図
 
クラス

言わば「オブジェクトの設計図」。
 

  クラス設計

そして、オブジェクトは、
捉え方によって様々な設計が出来る。

例えば、「時計」。

出来合いの部品を集めて組み立てる
だけなら、1つの設計図で十分かもしれない。


そんな時は、
「時計」を1つの「物(システム)」として
捉えて、1つのクラスで設計すればいい。
 
クラス設計とは:オブジェクトは捉え方によって多様な設計ができる


自前で時計の部品も作って組み立てるなら、
部品ごとに細かく設計図を分けた方が
いいかもしれない。

そんな時は、「時計」を複数の「物(部品)」の
集合体の「物(システム)」として捉えて、
複数のクラスで設計すればいい。

 
1つのオブジェクトを複数のオブジェクトに分けて設計することも出来る:クラスを使うことで柔軟な設計ができる 



クラスは物を作る単位



「時計」をいろいろな単位に分けて考える
単位 クラス
種類 時計
目的 時間を計る
部品 ・時計組立(全体設計)
・風防
・ムーブメント
・フレーム
機能 ・時間表示
・アラーム
・ライト
・・・ ・・・

同じ物でもいろいろな捉え方、分け方ができる

作る物の目的や種類、機能など
必要に応じてクラスを分けて設計する
 
つまり、
クラスは見方を変えると「物」を作る単位とも言える。

物の「種類」や「目的」、「部品」や「機能」などの単位で
クラスを分けて設計する。

そうすることで、オブジェクトごとに役割を分担したり、
他に影響を与えずに交換や追加・変更をしやすくなる。
 


クラス設計

設計には、利点と欠点、長所と短所を伴う。


作る物に応じて、いろいろ考えてクラスを設計
していく必要がある。

そして、これはプログラムの場合も同じ。
これからは、プログラムを「物」として捉えて、
クラスを使って設計していく。

これからのプログラム設計の中心になる。

  クラスの構成

クラスの構成の概要

主な構成はフィールドメソッド

これらのクラスを構成する項目を
クラスメンバ
と言う。
 
クラスの構成(概要):クラス名(設計図の名前):フィールド(物の状態):メソッド(物の機能) 

  クラスの決まり

クラスを作る時の決まり

基本的に、1つのクラスで
1種類のオブジェクトの設計を行う。

プログラムでは、
通常、1つのクラスで1つのファイルを使う

1つの設計図で1種類の物を作るイメージ。


クラスもフィールドもメソッドも数の制限は無い。
(今回は説明上、フィールドとメソッドは基本3つにした。)

プログラムの場合はメモリ容量とか環境によって制限される。

  フィールド

別項目になっています。こちらからご覧下さい。

メソッド

別項目になっています。こちらからご覧下さい。

  クラスの使い方の流れ


クラスの概要
 
項目 内容
3、クラスの使い方の基本
1、オブジェクトの内容を考える
2、クラスを設計する
3、インスタンスを生成する
4、インスタンスを設定する
5、インスタンスを使う
6、インスタンスを削除する
 

  1、オブジェクトの内容を考える

最初に、作る物がどんな「物」か考えてみる。

作る物の目的機能構成を考える。
まずは、大まかな内容

例:一般的な「自動車」を作る

「自動車」がどんな物か考えてみる。

自動車の目的・・・
自動車の機能・・・
自動車の構成・・・

自動車はどんな「物」か?
 
クラスの使い方(基本)1、オブジェクトの内容を考える:どんなオブジェクトを作るか、目的や機能、構成を考える

  作るオブジェクトのイメージ:自動車

自動車ってどんなもの?主な目的:人や物を運ぶ
 
自動車の機能:アクセル、ブレーキ、クラッチ
自動車の機能:走る
自動車の機能:止まる
自動車の機能:動力を制御する
 
設計するには、
作る物がどんなものかよく理解してないとできない。


日頃からいろいろなことを「オブジェクト」として捉えて
考えてみること。


目的や必要な機能を考えるトレーニングになる。
もちろん、プログラミングにも役に立つ。
 

  2、クラスを設計する

次にクラスを設計する。

検討したオブジェクトの内容を設計図として書いていく。
   
 
2、クラスを設計する:オブジェクトの設計図を作る。オブジェクトの内容を考えて設計する。


完成した設計図
   
 
クラスカード:クラスの設計(自動車の例)

  3、インスタンスを生成する

次に、完成したクラスからオブジェクトを作る。

設計図のままでは物は使えない。
実体化させないといけない。

クラスからオブジェクトを作ることをインスタンス化
作られたオブジェクトを
インスタンスと言う。
   
 
3、インスタンスを生成する:クラスを元にオブジェクトを作る。インスタンスはクラスを使って生成したオブジェクトのこと。


オブジェクトとインスタンスの違い

オブジェクトは、「物」全般のこと。

なので、「物」は何でもオブジェクト。

インスタンスは、クラスを使って作られた「物」。
なので、インスタンスもオブジェクト。
 
 
オブジェクトとインスタンスの違い
 
オブジェクト いわゆる「物」全般のこと。
事象を抽象化した概念。

objectは英語の物や目的などのこと。
インスタンス クラスを使って生成された「物」のこと。
実体化したデータ。
インスタンスもオブジェクト。

instanceは英語の事象や事例、実体などのこと。
 

今後セッションでは「物」の事を
オブジェクトまたはインスタンスと言います。


  4、インスタンスを設定する

次はインスタンスの設定。

インスタンスを作ったらまず初期化する。

作った直後、フィールドの値は設計図の初期値のまま。
必要に応じて、そのオブジェクトに「固有」の設定をする。

例えば、自動車なら、
納車する前に「お客さんごと」に必要な設定にあたる。
車体の色や燃料など、自動車の使う前の状態を設定する。
 
4、インスタンスを設定する:インスタンス毎に固有の設定をする。

  5、インスタンスを使う

完成したオブジェクトを使う。

これで、別のインスタンスから使うことができるようになった。

例では、運転手オブジェクトが自動車オブジェクトを使った。
つまり、物と物が関われるようになった。
 
5、インスタンスを使う:オブジェクトとオブジェクトが関わりあった。

  6、インスタンスを削除する

インスタンスは使わなくなったら削除する。

これ以降、そのインスタンスは使えなくなる。

例では、自動車を廃車にしたイメージ。
 
 
6、インスタンスを削除する:使い終わったインスタンスは削除する。 


クラスを使う流れの基本

オブジェクトは、
「設計して」、「作って」、「設定して」、「使う」。

必要なくなったら「廃棄」。

普通に自動車を使うのと同じ流れ。

  クラスでインスタンスを複数生成する

この流れを繰り返すことで
クラスで、複数のインスタンスを作ることが出来る。


設計図から同じ製品をどんどん作るイメージ。

作り出したインスタンスはそれぞれ別の物なので別々の動作ができる。

この自動車クラスのインスタンスをレースゲームの自動車に例えると
プレイヤーごとにフィールドの値を設定してデータの管理がするイメージ。
 
インスタンスを複数生成する:クラスを使って同じオブジェクトを複数生成できる。それぞれが個別の設定を持つことが出来る。


ポイント

つまり、インスタンスの持っているフィールドやメソッドは
インスタンスごとのもの

インスタンスを削除した場合は、
そのインスタンスが持っていたフィールドも、
その値もメソッドもいっしょに消えて使えなくなる。


同じクラスを使って、また新しくインスタンスを作った場合は、
フィールドもメソッドも全く別の新しいものになる

当たり前のことですが重要なので押さえておくこと。

  クラスの概要のまとめ


クラスの決まり(概要)
基本的に、1つのクラスで1種類のオブジェクトの設計を行う。
プログラムでは一般的に、1つのクラスで1つのファイルを使う
クラスもフィールドもメソッドも作る数に制限は無い。
 
 
 
オブジェクト指向の構成
名称 内容 特徴
オブジェクト 物、物体。 フィールド、メソッドなどを持つ。
クラス オブジェクトの設計図。 基本的に1つのオブジェクトに
つき1つ。
設計図
インスタンス クラスから作った物。
クラスを実体化した物。
クラスから同じインスタンスを
複数作れる。
自動車
 
 
 
クラスの構成(概要)
名称 内容 特徴
クラス名 クラスの名前 同一名のクラスは同じ名前空間
では複数作れない。
(今後のセッションで説明)
設計図
フィールド オブジェクトの持つ状態値 データ。数に制限は無い。 物の状態値、
能力値
メソッド オブジェクトの持つ
機能、能力。
振舞い、処理。
メソッドに値を渡すことも可能。
数に制限は無い。
物の機能
 
 
 
クラスの使い方の流れ
1、オブジェクトの内容を考える
2、クラスを設計する
3、実体化(インスタンス化)する
4、インスタンスを初期化する
5、インスタンスを使用する
6、インスタンスを削除する
 


クラスの連携など、より詳しい内容や使い方はセッション本編をご覧下さい。

このページはセッションで使用したプログラミング用語やIT用語の要約です。復習に利用して下さい。

漫画形式の本編はこちら 
<ゲームを作ろう!>超初心者のためのプログラミング入門
 

広告
home もくじ
  サイト内検索:
広告
お勧めの姉妹サイト
leafdays - リーフデイズ 超初心者のための園芸入門 - 楽しい趣味のガーデニング -