seegongsik
我的单词本
编程

把好几个名牌装进一个盒子:对象

键和值,是一个名牌配一个值(第11课)。 可「一个人」, 光靠一条是装不全的。 有名字、有年龄、还有住的地方。 把这好几个名牌装进一个盒子,就是对象。

01

一个盒子里好几个名牌

第11课的键和值,
是「苹果 → 水果」这样的一对。
可要写一个人,
光一条还不够。
名字、年龄、住处……需要好几对。
把它们装进一个盒子,就是对象。

把名牌一个个放进去。这些对聚成一个「人」盒子。

每一个名牌,还是键和值。
变的是,把散开的对,
装进了一个叫「人」的盒子。
那么,整个盒子会变成什么呢?

02

盒子,就是「一个东西」

把名字、年龄、住处分开拿着,
很快就乱了。
可一旦装进一个盒子,
那盒子本身,就成了「小民」这一个人。
你能把一整个人,整个地传来传去。

名字 Mina年龄 12住处 首尔

比比散开的对,和装成一盒的「人」。一装好,就当作一个来用。

现在「小民」不是一堆名牌,
而是一个带着属性的东西。
那么,从这盒子里,
只把「年龄」单独取出来,该怎么做呢?

03

用一个点,看进盒里

要取盒里的值时,
把盒子的名字和名牌一起叫。
像「小民的年龄」「小民的住处」。
常用一个点连起来写:小民.年龄 → 12。
指着盒子,点一下,再写想要的名牌。

mina
点个名牌

点一个名牌。「盒子.名牌」就把那个值精准取出。

现在,整个盒子,或里面任一个值,
你都能自由地用了。
可人不止小民一个啊。
要做出好多个同样形状的人,怎么办?

04

同样的模子,不同的内容

一旦定好「人」里有哪些名牌
(名字、年龄、住处),
就能用那个模子做出好多人。
小民、小拉、汤姆都有同样的项,
但里面装的值各不相同。

用模子做出好几个人。项一样,只有值不同。

用一个模子不断做出同样的形状,
方便,也少出错,
因为名牌的名字都统一了。
这简单的一包,其实就是程序的大半。

05

盛装真实世界的容器,以及更远处

游戏角色(名字·体力·等级)、
商品(名称·价格·库存)、用户(账号·邮箱)。
程序处理的,大多是这样的对象。
把世界上的「东西」装进盒子来对待。
下一课,我们看相似的对象之间,怎么继承共同之处。

名字 Mina
体力 80

角色、商品、用户。点着看。全是同样的「装进盒子的东西」。

用键和值(第11课)学了对,
如今把那些对,打包成了「一个东西」。
散开的信息,成了有意义的事物。
下一课,我们看相似的东西,
怎么把相似的部分传下去:继承。

一句话总结对象把好几个「名牌 → 值」的对,装进一个盒子,并把整个盒子当作「一个东西」来用。盒里的值用「盒子.名牌」取出,还能用同一个模子做出好多个。
编程
如果有帮助,请支持我们