网站开发入门书籍推荐,做排名的网站哪个好,唐山网站建设方案策划,重庆网站seo教程上午题07-面向对象技术 1 类2 对象和消息2.1 对象2.2 消息 3 方法重载4 封装5 继承6 多态7 静态、动态绑定8 面向对象设计原则9 面向对象分析与设计9.1 面向对象分析9.2 面向对象设计9.3 面向对象测试 1 类
实体、接口、控制
类是在对象之上的抽象#xff0c;对象是类的具体… 上午题07-面向对象技术 1 类2 对象和消息2.1 对象2.2 消息 3 方法重载4 封装5 继承6 多态7 静态、动态绑定8 面向对象设计原则9 面向对象分析与设计9.1 面向对象分析9.2 面向对象设计9.3 面向对象测试 1 类
实体、接口、控制
类是在对象之上的抽象对象是类的具体化是类的实例(Instance)。 类可以分为三种:实体类、接口类(边界类)和控制类。
1实体类的对象表示现实世界中真实的实体如人、物等。 2接口类(边界类) 的对象为用户提供一种与系统合作交互的方式分为人和系统两大类其中人的接口可以是显示屏、窗口、Web 窗体、对话框、菜单、列表框、其他显示控制、条形码、二维码或者用户与系统交互的其他方法。 3控制类的对象用来控制活动流充当协调者。
2 对象和消息
2.1 对象
对象、属性、方法
在面向对象的系统中对象是基本的运行时的实体它既包括数据(属性)也包括作用于数据的操作(行为)。所以一个对象把属性和行为封装为一个整体。封装是一种信息隐蔽技术它的目的是使对象的使用者和生产者分离使对象的定义和实现分开。从程序设计者来看对象是一个程序模块;从用户来看对象为他们提供了所希望的行为。在对象内的操作通常称为方法。一个对象通常可由对象名、属性和方法 3个部分组成。 每个对象都有它的属性和操作如电视机有颜色、音量、亮度、灰度、频道等属性可以有切换频道、增大/减低音量等操作。 电视机的属性值表示了电视机所处的状态电视机是黑色、电视机的音量很大这些都是状态。 电视机的各组成部分如显像管、电路板和开关等都封装在电视机机箱中人们不知道也不关心电视机是如何实现这些操作的。
对象的状态标识了该对象的所有属性以及每个属性的当前值。 对象共享属性和行为。
2.2 消息
调用
对象之间进行通信的一种构造叫作消息。当一个消息发送给某个对象时包含要求接收对象去执行某些活动的信息。接收到信息的对象经过解释然后予以响应。这种通信机制称为消息传递。发送消息的对象不需要知道接收消息的对象如何对请求予以响应。
调用类的方法 ml.changeLevel(2)
3 方法重载
不同的参数去控制同一个方法。
方法同名但是方法参数个数不同或方法参数类型不同或方法参数类型顺序不同都是方法重载。指在同一个类中使用相同的方法名但是参数列表不同来实现不同的功能。
例如有一辆车我们为这辆车定义了一个 run 方法可以根据不同的参数来控制车辆的运行方式比如可以传入速度参数、方向参数等来实现不同的运行效果。
4 封装
封装就像是将一个物品放入一个包裹或容器中然后提供一个外部接口来与其交互而不需要了解包裹内部的具体细节。
在编程中封装是指将数据属性和操作方法封装在一个对象中并且只通过对象的公共接口方法来访问数据隐藏了对象内部实现的细节。
想象一辆汽车我们只需知道如何使用汽车的接口如方向盘、油门、刹车等而无需了解汽车的内部引擎或机制。
5 继承
狗类可以继承动物类的属性和方法如名称、种类、吃等同时可以在这基础上添加自己特有的行为或属性如“汪汪叫”和“看门”。
继承可以让一个类子类从另一个类父类那里继承属性和行为子类可以重用父类的属性和行为并且可以在此基础上添加新的属性和行为。
假设有一个动物类父类其中包含了共有的属性和行为如名称、种类、吃、睡等然后有一个狗类子类继承自动物类狗类可以继承动物类的属性和方法如名称、种类、吃等同时可以在这基础上添加自己特有的行为或属性如“汪汪叫”和“看门”。
6 多态
动物类中有一个叫声的方法 makeSound()而狗类和猫类继承自动物类并重写了这个方法。狗类中的 makeSound() 方法会发出汪汪的声音而猫类中的 makeSound() 方法会发出喵喵的声音。
多态指的是同一个方法可以以不同的形式参数类型、个数出现实现不同的功能。
参数多态是应用比较广泛的多态被称为最纯的多态。 包含多态在许多语言中都存在最常见的例子就是子类型化即一个类型是另一个类型的子类型。 过载(Overloading)多态是同一个名字在不同的上下文中所代表的含义不同。
7 静态、动态绑定
静态绑定在编译动态绑定在运行。
绑定是一个把过程调用和响应调用所需要执行的代码加以结合的过程。在一般的程序设计语言中绑定是在编译时进行的叫作静态绑定。动态绑定则是在运行时进行的因此一个给定的过程调用和代码的结合直到调用发生时才进行。 动态绑定是和类的继承以及多态相联系的。在继承关系中子类是父类的一个特例所以父类对象可以出现的地方子类对象也可以出现。因此在运行过程中当一个对象发送消息请求服务时要根据接收对象的具体情况将请求的操作与实现的方法进行连接即动态绑定。
8 面向对象设计原则
(1)单一责任原则(Single Responsibility PrincipleSRP)。就一个类而言应该仅有一个引起它变化的原因。即当需要修改某个类的时候原因有且只有一个让一个类只做一种类型责任。 (2)开放-封闭原则(Open Close PincipleOCP)。软件实体(类、模块、函数等)应该是可以扩展的即开放的但是不可修改的即封闭的。 (3)里氏替换原则(Liskov Substitution PrincipleLSP)。子类型必须能够替换掉他们的基类型。即在任何父类可以出现的地方都可以用子类的实例来赋值给父类型的引用。当一个子类的实例应该能够替换任何其超类的实例时它们之间才具有是一个(is-a)关系。 (4)依赖倒置原则(Dependence Inversion Principle, DIP)。抽象不应该依赖于细节细节应该依赖于抽象。即高层模块不应该依赖于低层模块二者都应该依赖于抽象。 依赖于抽象而不依赖于细节。 (5)接口分离原则(Interface Segregation PrincipleISP)。不应该强迫客户依赖于它们不用的方法。接口属于客户不属于它所在的类层次结构。即:依赖于抽象不要依赖于具体同时在抽象级别不应该有对于细节的依赖。这样做的好处就在于可以最大限度地应对可能的变化。 依赖于抽象而不依赖于具体。
上述(1)~(5)是面向对象方法中的五大原则。除了这五大原则之外Robert C.Martin提出的面向对象设计原则还包括以下几个。
(7)共同封闭原则(Common Closure PrincipleCCP)。包中的所有类对于同一类性质的变化应该是共同封闭的。**一个变化若对一个包产生影响则将对该包中的所有类产生影响**而对于其他的包不造成任何影响。 (8)共同重用原则(Common Reuse PrincipleCRP)。一个包中的所有类应该是共同重用的。如果重用了包中的一个类那么就要重用包中的所有类。
9 面向对象分析与设计
9.1 面向对象分析
认定 组织 描述 确定 定义 面向对象分析包含5个活动 1认定对象、 2组织对象、 3描述对象间的相互作用、 4确定对象的操作、 5定义对象的内部信息。
9.2 面向对象设计
3个识别 2个定义
其目标是定义系统构造蓝图。 1识别类及对象 2定义属性 3定义服务 4识别关系 5识别包
9.3 面向对象测试
1算法层 2类层 3模板层 4系统层