什么是对象
键和值是一个标签对一个值(第11课)。可一个人,光靠一个名字可装不下。有名字,有年龄,还有住在哪里。把这好几个标签装进一个盒子,就是对象。
一个盒子里装好几个标签
第11课的键和值,是“苹果 → 水果”这样的一对。
可是要描述一个人,就需要名字、年龄、住址这样好几对。
把它们集中装进一个盒子,就是对象。
把标签一个个放进去,这些对子就会凑成一个“人”的盒子。
每个标签还是原来的键和值。
不同的是,零散的对子被打包进了一个叫“人”的盒子。
那么,这整个盒子会变成什么呢?
盒子本身就是一个“东西”
把名字、年龄、住址分开带着走,很快就会弄混。
装进一个盒子,这个盒子本身就成了一个人:美娜。
这样就能把一个人整个交来交去了。
比较零散的对子和装进一个盒子的“人”。装好以后,就能当作一个整体来处理。
现在,美娜不再是一堆标签,而是一个带有属性的东西。
那么,要从这个盒子里只挑出“年龄”,该怎么做?
用一个点往里看
从盒子里取值时,要把盒子的名字和标签一起叫出来,比如“美娜的年龄”“美娜的住址”。
通常用点连起来写:mina.年龄 → 12。
先指着盒子,点一个点,再写上想要的标签。
点一个标签,“盒子.标签”就会把那个值单独取出来。
现在,整个盒子也好,里面的一个值也好,都能自由处理了。
可是人不只美娜一个。
想做出好几个同样格式的人,该怎么办?
同一个模子,不同的内容
只要先定好“人”里要装哪些标签(名字·年龄·住址),就能用这个模子做出好多人。
美娜、苏拉、汤姆都有同样的项目,里面的值却各不相同。
每按一次“做一个人”,就从模子里做出一个人。项目相同,只是值不同。
用一个模子不断做出同样的格式,既方便又少出错。
因为标签的名字都是统一的。
这种简单的打包,其实就是程序的几乎全部。
装下真实世界的容器,以及更远处
游戏角色(名字·体力)、商品(名字·价格)、用户(账号·等级)。
程序处理的东西,大多是这样的对象,也就是把世界上的“东西”装进盒子来处理。
下一课我们去看,相似的对象之间怎样继承共同的部分。
点一点角色、商品、用户这几个标签页,就会发现三者都是同样的“装进盒子的东西”。
我们用键和值(第11课)学会了配对,现在又把这些对子打包成了“一个东西”。
零散的信息变成了有意义的事物。
下一课是继承:相似的东西把相同的部分互相传下去。