一类事物中的某一个 我们 称为 个体(主流书籍中 称为 实例,但是 我个人 认为 个体这个词 更加 贴切)。对某个个体做出的事情 我们 称为 措施(同样 主流的说法 是 “方法”,但是 无法体现出 这个词的本意)。在一些情况下,我们 可以对 一类事物中的某个个体 采取 某种措施;也可以对 这类事物本身 采取 这种措施。比如,你 可以对 你的汽车 采取 清洗这项措施。同时 你 也可以对 汽车这类事物 采取 调查品牌数量这项措施。
对 一个物件 采取 措施 会改变 这个物件的状态。比如 对 你的汽车 采取 加油这个措施,那么 你汽车的油箱 就会变 满。于是 加油这项措施 就会改变 你的汽车这个物件的状态。这里的关键思想 是 每个物件 都是 一类事物中 独特的一个。每个物件 都拥有 一些信息。而 每个物件所拥有的信息 都只属于 每个物件自己。我们 可以采取 措施 读取 或者 改变 某个物件的信息。
在objective-c当中,我们 可以用 一种特别的格式 对某个物件 或者 某类事物 采取 某个措施,就像 这样:
在这种格式当中 左边的方括号 紧接着 某个物件 或者 这类事物的名称。这个物件 或者 这类事物的名称 又紧接着 一个 或者 多个空格。空格后面 紧接着 你要采取的措施。最后 用 右方括号 和 分号 结尾。
如果 你 需要 某类事物 或者 这类事物中的某个个体 采取 某项措施,你 可以 向这类事物 或者 这个个体 发送 消息。接收消息的这类事物 或者 个体 被称为 收件人。我们 可以用 相同的格式 来表达:
我 用 cars 表示 汽车这类事物 或者 汽车工厂,用 new 表示 需要生产或者购买一辆新车 这个消息,用 my_car 来表示 我的汽车,那么:
这个语句 就是 将 生产 或者 购买 一辆新车这个消息 传递 给汽车这类事物 或者 汽车工厂,再 把 生产出来 或者 买到的 属于我的汽车 保存 在变量my_car当中。于是 my_car 就成了 汽车这类事物中属于我的那一辆了。接着 我 就可以 我的汽车这个物件 采取 各种措施了。比如:
表示 将 我的车 准备好。
表示 驾驶 我的车。
表示 对 我的车 进行保养。
这个语句 则表示 对 我的车 采取 读取当前里程表的措施,并且 将 当前的里程 存储 在变量current_mileage当中。
我们 可以对 不同的物件 采取 相同的措施。如果 我的妹妹Julie 也拥有 一辆车,那么
这个语句 就表示 驾驶 我妹妹Julie的汽车。而
则表示 对 我妹妹Julie的车 进行保养。
对 不同的物件 采取 同样的措施 是 面向物件(又称 面向对象)编程的又一个关键思想。
在编程的时候 我们 不大可能 使用 汽车这样的物件,而 很可能会 使用 窗口、按钮、菜单、文本、计算器 或者 歌曲列表这类的物件。