わかりやすく オブジェクト とは
キーと値は、名札一つに値一つでした(第11回)。でも、人一人は名前一つでは表しきれません。名前もあれば、年齢も、住んでいる所もあります。こうした名札をいくつも一つの箱にまとめたものがオブジェクトです。
一つの箱に名札をいくつも
第11回のキーと値は、「りんご → 果物」のような一組でした。
でも人一人を書き表すには、名前、年齢、住んでいる所のように、いくつもの組が必要です。
それらを一つの箱に集めて入れたものが、オブジェクトです。
名札を一つずつ入れると、組が集まって「人」の箱が一つできあがります。
名札の一つひとつは、キーと値そのままです。
変わったのは、ばらばらだった組を「人」という一つの箱にまとめたことです。
では、この箱全体は何になるのでしょうか。
箱がそのまま一つの「もの」
名前、年齢、住んでいる所を別々に持ち歩くと、すぐにこんがらがります。
一つの箱にまとめれば、その箱自体が「ミナ」という一人の人になります。
人一人をまるごとやりとりできるようになるのです。
ばらばらの組と、一つの箱にまとめた「人」を比べます。まとめると、一つとして扱えます。
これでミナは名札の山ではなく、属性を持つ一つのものです。
では、この箱の中から「年齢」だけをつまみ出すには、どうすればよいでしょうか。
点一つで中をのぞく
箱の中の値を取り出すときは、箱の名前と名札をいっしょに呼びます。「ミナの年齢」「ミナの住んでいる所」のように。
ふつうは点でつないで、mina.年齢 → 12 と書きます。
箱を指し、点を打ち、ほしい名札を書くのです。
名札を押すと、「箱.名札」がその値だけをつまみ出します。
これで、箱全体としても、中の値一つとしても、自由に扱えるようになりました。
でも、人はミナ一人だけではありません。
同じ形の人をいくつも作るには、どうすればよいでしょうか。
同じ型、違う中身
「人」にどんな名札が入るのかを一度決めておけば(名前・年齢・住む所)、その型から何人もの人を作り出せます。
ミナ、ソラ、トムはみな同じ項目を持ちますが、中に入っている値はそれぞれ違います。
「人を作る」を押すたびに、型から人が一人ずつ作られます。項目は同じで、値だけが違います。
一つの型で同じ形をどんどん作れるので、楽ですし、間違いも減ります。
名札の名前がそろっているからです。
この単純なまとまりが、じつはプログラムのほとんどすべてなのです。
本物の世界を入れる器、そしてその先
ゲームのキャラクター(名前・体力)、商品(名前・値段)、ユーザー(ID・レベル)。
プログラムが扱うものの多くは、こうしたオブジェクトです。世の中の「もの」を箱に入れて扱っているわけです。
次のレッスンでは、似たオブジェクトどうしが共通の部分を受け継ぐ方法へ進みます。
キャラクター、商品、ユーザーのタブを押すと、三つとも同じ「箱に入れたもの」だとわかります。
キーと値(第11回)で組を学び、今度はその組をまとめて「一つのもの」を作りました。
ばらばらの情報が、意味のある物になったのです。
次は、似たものどうしが似ている部分を受け継ぐ、継承です。