封装 封装的用意,是避免数据成员被不正当的存取,以达 到信息隐藏的效果,避免错误的存取发生。封装相关 变量及万法到一个软件包里,是一个简单但却很有 能力的理念,此法对软件开发者提供了两个主要的好 处 1.模块化:一个对象的原始文件可以独立地被撰写及 维护而不影响其他对象。而且对象可以轻易地在系统 中来回地传递使用。就好像你借车给朋友,而它仍能 正常地运作一样 ■2信息隐藏:一个对象有一个公开的接口可供其他的 对象与之沟通,但对象仍然维持私有的信息及方法, 这些信息及方法可以在任何时间被修改,而不影响那 些依赖此对象的其他对象
封装 ◼ 封装的用意,是避免数据成员被不正当的存取,以达 到信息隐藏的效果,避免错误的存取发生。封装相关 的变量及方法到一个软件包里,是一个简单但却很有 能力的理念,此法对软件开发者提供了两个主要的好 处: ◼ 1.模块化:一个对象的原始文件可以独立地被撰写及 维护而不影响其他对象。而且对象可以轻易地在系统 中来回地传递使用。就好像你借车给朋友,而它仍能 正常地运作一样 。 ◼ 2.信息隐藏:一个对象有一个公开的接口可供其他的 对象与之沟通,但对象仍然维持私有的信息及方法, 这些信息及方法可以在任何时间被修改,而不影响那 些依赖此对象的其他对象
消息( message) 单一对象本身并不是很有用处。而通常是成为一个 包含许多对象的较大型程序的一个组件时,通过程 序中这些对象的交互,程序可以达成更高级的功能 以及更复杂的行为,就如汽车自己本身并不会产生 行为,而是当你(另一个对象)发动汽车,踩油 (交互)后,汽车内部就发生一连串复杂的行为 软件对象是通过传送消息给其他对象来达到交互及 沟通的作用。如下图所示 消息 对象A 对象B
消息 (message) ◼ 单一对象本身并不是很有用处。而通常是成为一个 包含许多对象的较大型程序的一个组件时,通过程 序中这些对象的交互,程序可以达成更高级的功能 以及更复杂的行为,就如汽车自己本身并不会产生 行为,而是当你(另一个对象)发动汽车,踩油门 (交互)后,汽车内部就发生一连串复杂的行为。 ◼ 软件对象是通过传送消息给其他对象来达到交互及 沟通的作用。如下图所示: data field 1 data field n method n method 1 对象A 对象B 消息
消息( message) ■有时候接受消息的对象需要更多的信息,以正确地 知道要做什么事,例如开车换档时要指明是要换低 速或高速档 个信息是由3个元素所组成 ■1信息目标对象(你的汽车) 2执行方法的名字(换档) 3执行方法所需用的参数( parameters)(低、高速 档) ■信息的好处 1.一个对象的行为是通过它的方法来表达,所以(除 了直接的变量存取外)信息传递已支持所有对象间 可能的交互 2对象不需要在相同的程序中,或者相同的机器上送 出或接受与其他对象间的信息
◼ 有时候接受消息的对象需要更多的信息,以正确地 知道要做什么事,例如开车换档时要指明是要换低 速或高速档: ◼ 一个信息是由3个元素所组成: ◼ 1.信息目标对象(你的汽车)。 ◼ 2.执行方法的名字(换档)。 ◼ 3.执行方法所需用的参数(parameters)(低、高速 档)。 ◼ 信息的好处 ◼ 1.一个对象的行为是通过它的方法来表达,所以(除 了直接的变量存取外)信息传递已支持所有对象间 可能的交互。 ◼ 2.对象不需要在相同的程序中,或者相同的机器上送 出或接受与其他对象间的信息。 消息 (message)
类( class) ■在真实世界里,有许多同“种类”的对 象。而这些同“种类”的对象可被归类 为一个“类”。例如我们可将世界上所 有的汽车归类为汽车类,所有的动物归 为动物类
类 (class) ◼ 在真实世界里,有许多同“种类”的对 象。而这些同“种类”的对象可被归类 为一个“类”。例如我们可将世界上所 有的汽车归类为汽车类,所有的动物归 为动物类
实例( instance) 汽车类有些共同的状态 (汽缸排气量,排档数, 颜色,轮胎数..)和 行为(换档,开灯,开 冷气.),但每一台 汽车个别的状态及方法 可不同于且独立于其他 汽车。 某个人的汽车只是这世 界中许多汽车中的一个 我们就称此汽车对象是 汽车类中的一个实例 (instance)
实例 (instance) ◼ 汽车类有些共同的状态 (汽缸排气量,排档数, 颜色,轮胎数……)和 行为(换档,开灯,开 冷气……),但每一台 汽车个别的状态及方法 可不同于且独立于其他 汽车 。 ◼ 某个人的汽车只是这世 界中许多汽车中的一个。 我们就称此汽车对象是 汽车类中的一个实例 (instance)