• 什么是面向对象?

OOP:面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。
OOA:面向对象分析( Object-Oriented Analysis ,OOA)是确定需求或者业务的角度,按照面向对象的思想来分析业务。
OOD:面向对象设计(Object-Oriented Design,OOD)方法是OO方法中一个中间过渡环节。其主要作用是对OOA分析的结果作进一步的规范化整理,以便能够被OOP直接接受。

如果说传统的过程式编程语言是以过程为中心,以算法为驱动的话,面向对象的编程语言则是以对象为中心,以消息为驱动。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。
面向对象不是取代面向过程的。

  • 为什么要面向对象?

与人类习惯的思维方法一致;
稳定性好;
可重用性好;
较易开发大型软件产品;
可维护性好。

  • 什么是面向对象思维方法?

1、 首先确定谁来做,其次确定怎么做;
2、 首先考虑整体,其次考虑局部;
3、 首先考虑抽象,其次考虑具体;

  • 应该如何学习面向对象?

1、 掌握一门面向对象语言的语法;
2、 掌握面向对象的思维方式;
3、 熟悉面向对象设计原则;
4、 掌握面向对象设计模式

  • 对象

对象三要素:对象标志、属性和服务。
对象标志(object identifier),也就是对象的名字,供系统内部唯一地识别对象。
属性(attribute),也称状态(state)或数据(data),用来描述对象的静态特征。
服务(service),也称操作(operation)、行为(behavior)或方法(method)等,用来描述对象的动态特征。
对象是什么?
从概念层面讲,对象是某种拥有责任的抽象。
从规格层面讲,对象是一系列可以被其他对象使用的公共接口。
从语言实现层面讲,对象封装了代码和数据。

对象包含三个基本要素,分别是对象标识、对象状态和对象行为。
每一个对象必须有一个名字以区别其他对象,这就是对象标识;状态用来描述对象的某些特征;对象行为用来封装对象所拥有的业务操作。
举例说明,对于老师Bobby而言,包括性别、年龄、职位等个人状态信息,同时还具有授课的行为特征,那么Bobby就是封装后的一个典型对象。

  • 类与实例

类就是具有相同的属性和功能的对象的抽象的集合。
实例化:实例,就是一个真实的对象
实例化就是创建对象的过程,使用new关键字来创建。

类是对象的抽象,对象是类的具体实例。
类和对象的关系可以总结为:
1) 每一个对象都是某一个类的实例。
2) 每一个类在某一时刻都有零或更多的实例。
3) 类是静态的,它们的存在、语义和关系在程序执行前就已经定义好了,对象是动态的,它们在程序执行时可以被创建和删除。
4) 类是生成对象的模板。

类不占内存,对象才占内存。
格式:类名 对象名 = new 类名();
类:栈内存
对象:堆内存(引用数据类型)
类是抽象的概念,仅仅是模板,比如说:“人”
对象是一个你能够看得到、摸得着的具体实体,比如:“小布什”、“奥巴马”

  • OOAD

OOAD是根据OO的方法学,对软件系统进行分析和设计的过程
OOA 分析阶段
OOD 设计阶段

定义OOD阶段
设计阶段主要解决以下问题
 如何解决具体的业务问题
 引入系统工作所需的支持元素
 定义系统的实现策略
此阶段要解决的核心问题是“How to do?”

在学习OOAD和开发的项目的过程中有一些感悟和想法,整理和编写了一些学习资料,文章的最后给出《OOAD与UML那点儿事》目录索引链接以及示例代码下载,限于能力有限,某些不经意的错误在所难免,这里的朋友们,如果发现任何错误与不当,烦请及时反馈给我,这是最大的支持和鼓励。
《OOAD与UML那点儿事》目录索引
http://www.cnblogs.com/Bobby0322/p/4178333.html

【OOAD】OOAD概述的更多相关文章

  1. OOAD基本概念

    学习目标: 1.理解与掌握面向对象的概念与方法. 2.使用UML. 3.完成面向对象的分析与设计工作. 4.了解OO的设计原则及一些典型的设计模式 什么是面向对象? 面向对象(Object-Orien ...

  2. OOAD与UML笔记

         UML基础介绍 1.UML的定义 统一建模语言(UML)是一种图形化的语言,它可以帮助我们在OOAD过程中标识元素.构建模块.分析过程并可通过文档说明系统中的重要细节 2.OOAD OO ...

  3. OOAD与UML

    UML基础介绍 1.UML的定义 统一建模语言(UML)是一种图形化的语言,它可以帮助我们在OOAD过程中标识元素.构建模块.分析过程并可通过文档说明系统中的重要细节 2.OOAD OOAD是根据OO ...

  4. 【OOAD】设计模式概述

    模式的诞生与定义 模式起源于建筑业而非软件业模式(Pattern)之父——美国加利佛尼亚大学环境结构中心研究所所长Christopher Alexander博士<A Pattern Langua ...

  5. 【OOAD】面向对象设计原则概述

    软件的可维护性和可复用性 知名软件大师Robert C.Martin认为一个可维护性(Maintainability) 较低的软件设计,通常由于如下4个原因造成: 过于僵硬(Rigidity)  ...

  6. 第一章 面向对象软件工程与UML

    这个OOAD讲的都是很抽象的东西!老师说这个在现在的学习中用到的不是很多,但是以后出去工作的时候就会常用到的. 首先来了解OOAD是讲什么的. OOAD:Object Oriented Analysi ...

  7. 《OOAD与UML那点儿事》目录索引

    关键字:OOAD.UML.设计模式 各位园友,大家好,我是Bobby,在学习OOAD和开发的项目的过程中有一些感悟和想法,整理和编写了一些学习资料 [内容简介]掌握某种开发语言,让你实现了由零到一的脱 ...

  8. 笔记一:OOAD与UML

    一.面向对象的概念与方法 1.  面向对象 1.1. 面向对象是一种系统建模技术 1.2. 面向对象编程是按照OO的方法学来开发程序的过程 1.3. 通过分析系统内对象的交互来描述或建模一个系统 1. ...

  9. OOAD(面向对象分析和设计)GRASP之创建者模式(Creator)又称生成器模式学习笔记

    说OOAD是一门玄学,一点都不为过.又或许是因为我之前一直没有很好的建立面向对象的思想,更有可能是因为练得不够多...总之,一直没能很好理解,哪怕把一本叫做<UML和模式应用>的书翻来覆去 ...

随机推荐

  1. 解决Windows下运行php Composer出现SSL报错的问题

    解决Windows下运行php Composer出现SSL报错的问题 2015-01-14 20:05   在windows下运行composer却出现SSL报错: E:\www>php -f  ...

  2. 简单的cc攻击防御

    简单的cc攻击防御cckiller 一.下载#wget wget --no-check-certificate https://zhangge.net/wp-content/uploads/files ...

  3. [转]MongoDB学习 C#驱动操作MongoDB

    下载驱动 驱动的下载有两种方式:一种是在C#项目中通过NuGet进行安装,另一种是通过下面的链接:https://github.com/mongodb/mongo-csharp-driver/rele ...

  4. win7 iis7 发布asp.net mvc4.0+EF6.0站点记录

    1.处理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模块列表中有一个错误模块“ManagedPipelineHandler” 解决方法: 原因: 1.iis ...

  5. 如何真正抓住微信小程序的红利? 阿禅知乎live总结

    微信App定义 为满足用户某种开发需求.完全基于微信的消息或网页应用,入口是公众号,用户无需离开微信即可完成所有操作,所有需求都在公众号里被满足 微信App的优势 1. 顾客在哪里,就让顾客在哪里看到 ...

  6. Intelligencia.UrlRewriter在IIS 7.0下的完全配置攻略

    在项目中,之前公司是使用IIS 7.0官方的URL重写模块,官方的使用说明请参见官方URLRewrite  ,添加伪静态支持,后来经理问我有没有涉及伪静态,我说之前项目中我一直是用Intelligen ...

  7. javascript实现有向无环图中任意两点最短路径的dijistra算法

    有向无环图 一个无环的有向图称做有向无环图(directed acycline praph).简称DAG 图.DAG 图是一类较有向树更一般的特殊有向图, dijistra算法 摘自 http://w ...

  8. startup.c

    在Startup.s文件中包含一个startup的入口函数,该函数为EBOOT的最开始的入口.在系统上电或者冷启动的时候,这是第一个被执行的函数.该函数都是由汇编语言编写的,完成基于硬件平台的最初的初 ...

  9. Java基础之扩展GUI——添加状态栏(Sketcher 1 with a status bar)

    控制台程序. 为了显示各个应用程序参数的状态,并且将各个参数显示在各自的面板中,在应用程序窗口的底部添加状态栏是常见且非常方便的方式. 定义状态栏时没有Swing类可用,所以必须自己建立StatusB ...

  10. csuoj 1503: 点到圆弧的距离

    http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1503 1503: 点到圆弧的距离 时间限制: 1 Sec  内存限制: 128 MB  Speci ...