クラスってなに?
クラスは、日本語で言うと分類/種類のことです
ポチは犬で、たまはネコ
みんなそれぞれ何かの種類に入っています
例えば、ポチのクラスは犬で、たまのクラスはネコです
クイズ
- クラスは日本語で言うと何のこと
- カレーライスのクラスは何かな?考えてみよう
1のこたえ。種類。2のこたえ。たべもの。ばんごはん。からいもの。おいしいもの。すきなもの。など。いろいろ考えられるね。
インスタンスってなに?
インスタンスは、日本語で言うと同じ種類の仲間のことです
たまはネコだし、みけもネコ、ニャースもネコ
たまも、みけも、ニャースも、みんなネコの仲間です
それを、格好良く言うと、ネコのインスタンスと言います
クイズ
- インスタンスは日本語で言うと何のこと
- いきもののインスタンスは、どんなものがあるかな?考えてみよう
1のこたえ。同じ種類の仲間のこと。2のこたえ。バッタ。カマキリ。ひと。クジラ。タコ。など。いろいろ考えられるね。
クラス変数ってなに?
クラス変数は、どんなクラスかを書くための項目のこと
例えば、りんごも、みかんも、ぶどうも、メロンも、みんなフルーツの仲間
だけど、みんな結構違う
- 味が違う
- 香りが違う
- 色が違う
- 名前も違う
「○○が違う」とたくさん書きました
この○○を全部、クラス変数と呼んでいます
味も香りも色も名前も、みんなフルーツのクラス変数です
プログラミングには沢山の種類があるけど、あるプログラミングでは、クラス変数じゃなくて、フィールドって呼んだり、プロパティって呼んだりすることもあります
結局おなじことです
クイズ
- クラス変数は日本語で言うと何のこと
- お菓子のクラス変数は何があるだろう?考えてみよう
1のこたえ。どんなクラスかを書くための項目のこと。○○が違う、の○○全部のこと。2のこたえ。色。かたち。味。香り。など。いろいろ考えられるね。
実際のプログラムを見てみよう!
class アニメ {
// アニメクラスのプロパティ・クラス変数・フィールドです(プロパティは、どんなアニメかを記述するための項目のことです)
放送開始日: Date
タイトル: string
制作会社: string
ジャンル: Genre
エピソード: Chapter[]
// これはコンストラクタです。日本語で言うと、アニメ作成くんです。アニメを作ります。
constructor(タイトル: string, ジャンル: Genre, 制作会社: string) {
this.タイトル = タイトル
this.ジャンル = ジャンル
this.制作会社 = 制作会社
}
}
function アニメを作る関数() {
// 日常を作ります。アニメを作るときは、new アニメ() を呼びます。
const 日常 = new アニメ(
'日常',
Genre.コメディ,
'京都アニメーション'
)
// new アニメ() は、constructor のことです。アニメを作るので、アニメを作る人を呼んでいます。
// const 日常 が、アニメ クラスのinstanceです。
// クラスとインスタンスの関係が分かりましたか?
// クラスは、日本語で言うと分類のことです。種類のことです。世の中にはいっぱいアニメがありますが、ジョジョも君に届けも、分類としては、同じアニメクラスのインスタンスです。
}
あとがき
研修担当のみなさまに捧げます
クラスとインスタンスの違いが分からなかったら、このリンクを貼っとけば大丈夫!
やったね!