浅谈OO思想
2016-01-26 09:47
295 查看
最近看到公司评级中,大量提到了OO思想,特别是开发,虽对我们运维并未要求,但看到这篇文章不错,就自己理解下。
object oriented(面向,面对)(针对分析,需求分析,功能实现)(面向对象的三大要素:封装,继承,多态)
先说什么是OO(Object oriented)翻译过来就是面向对象,它包括有OOA面向对象的分析,OOD面向对象的设计,OOP面向对象的实现这几个方面,这几方面包含追MM的所有问题,大家是不是看着好象很专业,不用怕今天简单说说在追MM的过程中的OO思想。
OOA:面向对象分析方法(Object-Oriented Analysis,OOA),是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。OOA与结构化分析有较大的区别。OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。
OOA(面向对象的分析)模型由5个层次(主题层、对象类层、结构层、属性层和服务层)和5个活动(标识对象类、标识结构、定义主题、定义属性和定义服务)组成。在这种方法中定义了两种对象类之间的结构,一种称为分类结构,一种称为组装结构。分类结构就是所谓的一般与特殊的关系。组装结构则反映了对象之间的整体与部分的关系。
OOA在定义属性的同时,要识别实例连接。实例连接是一个实例与另一个实例的映射关系。
OOD:面向对象设计(Object-Oriented Design,OOD)方法是OO方法中一个中间过渡环节。其主要作用是对OOA分析的结果作进一步的规范化整理,以便能够被OOP直接接受。
面向对象设计(OOD)是一种软件设计方法,是一种工程化规范。这是毫无疑问的。按照Bjarne Stroustrup的说法,面向对象的编程范式(paradigm)是:
决定你要的类;
给每个类提供完整的一组操作;
明确地使用继承来表现共同点。
由这个定义,我们可以看出:OOD就是“根据需求决定所需的类、类的操作以及类之间关联的过程”。
OOP:面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。
OO还有一个最重要概念就是类,(重用性)类是笔法的一个抽象。可以用于不同的MM哦。
第一日,神说,万物皆对象(object),对象有标识、状态与行为;
第二日,神说,有相同特征和行为的对象抽象为类(class);对象即为类的一实例;
第三日,神说,对象的相同特征抽象为属性,相同的行为处理抽象为方法;
第四日,神说,类要封装;于是DotNet程序员在类标识、属性和方法前都分别加上public、private、protected。
第五日,神说,类可以继承和合成;于是DotNet程序员把Login.aspx定义成Login的派生类,在Login.aspx开头加上如下声明语句:
<%@ Page Inherits="WebApplication1.Login" %>
第六日,神说,类有多态。
public:表明所有对象都可以访问;
protected internal:表明同一个程序集内的对象,或者该类对象以及其子类可以访问;
internal:表明只有同一个程序集的对象可以访问;
protected:表明只有该类对象及其子类对象可以访问;(关于继承,会在以后介绍)
private:表明只有对象本身在对象内部可以访问;
b继承a b是a的子类,这时 a有a 的属性,和事件,
b同时有a的属性和事件,同时有它自己的属性和事件,这时,b 这种状态(能力)就叫多态性
object oriented(面向,面对)(针对分析,需求分析,功能实现)(面向对象的三大要素:封装,继承,多态)
先说什么是OO(Object oriented)翻译过来就是面向对象,它包括有OOA面向对象的分析,OOD面向对象的设计,OOP面向对象的实现这几个方面,这几方面包含追MM的所有问题,大家是不是看着好象很专业,不用怕今天简单说说在追MM的过程中的OO思想。
1,OOA(面向对象分析方法)
OOA中的A是指Analysis分析,当你看见一个MM感觉很好,初步接触了一下,MM对你也不错,这时你就要针对她这个对象进行分析了,MM对你的感觉怎么样,MM的个人爱好是什么,MM的喜欢的动物是什么等等,说专业一点这叫需求分析。OOA:面向对象分析方法(Object-Oriented Analysis,OOA),是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。OOA与结构化分析有较大的区别。OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。
OOA(面向对象的分析)模型由5个层次(主题层、对象类层、结构层、属性层和服务层)和5个活动(标识对象类、标识结构、定义主题、定义属性和定义服务)组成。在这种方法中定义了两种对象类之间的结构,一种称为分类结构,一种称为组装结构。分类结构就是所谓的一般与特殊的关系。组装结构则反映了对象之间的整体与部分的关系。
OOA在定义属性的同时,要识别实例连接。实例连接是一个实例与另一个实例的映射关系。
2, OOD(object oriented Design(设计))
当你分析了MM的性格,兴趣,爱好等等,这一步就是要根据你分析出来的数据进行具体行动计划了,找一部MM爱看的电影,请MM吃一顿她爱吃的饭,送一份她喜欢的礼物。这个计划是越详细越好,如何做到详细并足够好,就要回来就看你的OOA的做的怎么样了。OOD:面向对象设计(Object-Oriented Design,OOD)方法是OO方法中一个中间过渡环节。其主要作用是对OOA分析的结果作进一步的规范化整理,以便能够被OOP直接接受。
面向对象设计(OOD)是一种软件设计方法,是一种工程化规范。这是毫无疑问的。按照Bjarne Stroustrup的说法,面向对象的编程范式(paradigm)是:
决定你要的类;
给每个类提供完整的一组操作;
明确地使用继承来表现共同点。
由这个定义,我们可以看出:OOD就是“根据需求决定所需的类、类的操作以及类之间关联的过程”。
3, OOP(Object Oriented Programming 面向对象编程(实现)) 面向对象的实现
这个最重要了,你前面做的所有的分析,设计都要在这上步进行实现。分析的再好,设计的再完善这一步没做好那就“一江春水向东流了”。OOP:面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。
OO还有一个最重要概念就是类,(重用性)类是笔法的一个抽象。可以用于不同的MM哦。
第一日,神说,万物皆对象(object),对象有标识、状态与行为;
第二日,神说,有相同特征和行为的对象抽象为类(class);对象即为类的一实例;
第三日,神说,对象的相同特征抽象为属性,相同的行为处理抽象为方法;
第四日,神说,类要封装;于是DotNet程序员在类标识、属性和方法前都分别加上public、private、protected。
第五日,神说,类可以继承和合成;于是DotNet程序员把Login.aspx定义成Login的派生类,在Login.aspx开头加上如下声明语句:
<%@ Page Inherits="WebApplication1.Login" %>
第六日,神说,类有多态。
面向对象的三大要素:封装,继承,多态:
1.封装对象:
并非是将整个对象完全包裹起来,而是根据具体的需要,设置使用者访问的权限。在C#中,分别用修饰符public,internal,protected,private设定,分别修饰类的字段、属性和方法,甚至于类对象本身:public:表明所有对象都可以访问;
protected internal:表明同一个程序集内的对象,或者该类对象以及其子类可以访问;
internal:表明只有同一个程序集的对象可以访问;
protected:表明只有该类对象及其子类对象可以访问;(关于继承,会在以后介绍)
private:表明只有对象本身在对象内部可以访问;
2.“继承”:
继承是面向对象软件技术当中的一个概念。如果一个类A继承自另一个类B,就把这个A称为"B的子类",而把B称为"A的父类"。继承可以使得子类具有父类的各种属性和方法,而不需要再次编写相同的代码。在令子类继承父类的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类的原有属性和方法,使其获得与父类不同的功能。3. 多态(性):
对象可以表示多个类型【如果A类(新类,也叫派生类)继承了B类(父类,也叫基类),那个A 类就有两个有效类型:新类(自己)的类型和它继承的类(父类)的类型】的能力称为多态性。对象根据所接收的消息而做出动作。同一消息为不同的对象接受时可产生完全不同的行动,这种现象称为多态性。b继承a b是a的子类,这时 a有a 的属性,和事件,
b同时有a的属性和事件,同时有它自己的属性和事件,这时,b 这种状态(能力)就叫多态性
相关文章推荐
- JS正则表达式比较常见用法
- appium1.3.7的坑-Original error: Could not initialize ideviceinstaller; make sure it is installed
- iOS开发笔记--UIImageView的属性之animationImages详解
- GetLogicalDriveStrings
- Linux查看CPU和内存使用情况
- OpenGL官方教程——着色器语言概述
- mysql常用操作
- 2016太原UI设计师郭文军图标的制作原则,面试必考
- Spring Boot+Spring Data JPA+Spring Cache
- 深入了解LayoutInflater
- 两种方式获取Thrift调用的客户端IP地址
- iOS开发笔记--UILabel显示不同的字体和颜色
- WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
- Xcode 插件优缺点对比(推荐 20 款插件)
- JDK中的URLConnection参数详解(转)
- Linux常用命令大全
- Java上传资源excel文件并进行解析
- 读懂山寨乐视LePar店,才能够真正的读懂彩电市场
- iOS开发笔记--UIView中的坐标转换
- iOS开发笔记--CGAffineTransformMakeRotation 实现旋转