• 什么是面向对象?

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

转载于:https://www.cnblogs.com/Bobby0322/p/4211476.html

【OOAD】OOAD概述相关推荐

  1. 面向对象分析与设计(OOAD)

    面向对象分析与设计(OOAD) 概述 人是怎么认识事物的 分类与分层的两种思维 问题域到解空间的映射 软件生命周期 要解决的问题 三个一致性 面向对象分析与设计过程 对象从哪里来 发现对象的方法 组织 ...

  2. starUML--面向对象的设计过程

    OOAD与UML 面向对象 面向对象(Object-Orientation, 简称OO)是一种系统建模技术面向对象编程简称OOP 通过分析系统内对象的交互来描述或建模的一个系统 交互的对象最终是以类的 ...

  3. 博客园培训OOAD的课程概要

    于众不弃,由我负责博客园培训中OOAD的课程.因涉及内容较多,所以我整理了一个课程概要式的内容提要,希望大家能够给予宝贵的意见和指导. OOAD课程大纲 概述 透视OOAD的背后-软件学习之道.术.器 ...

  4. OOAD(Object-Oriented Analysis and Design)介绍

    OOAD方法论的定义:      1) 面向对象是一种系统建模技术;    2) 将系统描述为许多相互作用的有关系对象;    3) 系统中相互作用的对象被组织成类;    4) OO方法论由以下三部 ...

  5. OOAD 面向对象分析与设计

    OOAD 面向对象分析与设计2007年06月16日 星期六 下午 04:38OOAD(Object Orient Analysis & Design,面向对象的分析和设计,面向对象分析与设计) ...

  6. OOAD理论知识小结

    软件工程基本概念 软件工程三要素: 方法:完成软件开发的各项任务的技术方法,为软件开发提供 "如何做" 的技术 工具:为运用方法而提供的自动的或半自动的软件工程的支撑环境 过程:为 ...

  7. Head FIrst OOAD 读书笔记

    Head FIrst OOAD & 期中project的反思 论如何优雅地在实验报告吹水- (大雾:明明实验报告基本都写完了-) project反思等稍微空闲一些再补充 伟大软件的三大步骤 确 ...

  8. ooad设计模式_OOAD-面向对象的分析与设计

    ooad设计模式 让我们分为以下几节来讨论OOAD: (Lets discuss OOAD by dividing into the below sections:) OOS操作系统 OOAOOA O ...

  9. 华农OOAD期末复习整理资料

    华农OOAD期末复习(个人整理结合老师发的资料) 课件的题目整理 填空 模型是对复杂事务的简化. 每对参与者/用况对应一个边界类. 一个控制类对应一个use case. use case对应的分析类包 ...

最新文章

  1. C语言关闭文件总是错误,C语言程序错误,不能正常读写文件,求解啊
  2. python null byte_如何以“正确”的方式处理带有nullbytes的Python unicode字符串?
  3. 用IP地址的用途理解Loopback接口
  4. “21天教你学会C++”
  5. 视频专辑:Hibernate 视频
  6. 蓝桥杯上Excel地址c语言,C语言求解Excel地址转换问题
  7. CCF201604-1 折点计数
  8. magento paypal付款实现前台切换货币付款
  9. 虚函数virtual
  10. HAOI2012高速公路bzoj2752 (线段树,数学)
  11. 计算机无法从usb启动不了,无法从u盘启动【设置思路】
  12. (转载)shell脚本中的 EOF 是什么意思?
  13. 前清秘史――努尔哈赤
  14. java.awt包_Java中awt包
  15. three、vue中使用three、three怎么加载obj模型和mtl文件、three自定义800*800大小怎么拾取/点击
  16. PostGIS 快速入门
  17. The 10 Most Important Linux Commands/10个最经常使用的命令行
  18. 2017阿里校招内推面试回忆
  19. 梁斌penny_Penny Pinching in the Cloud:如何以10美元的价格运行为期两天的虚拟会议
  20. Windows下使用HDFView了解ICESat-2的hdf5文件

热门文章

  1. python用pandas读取excel_使用Pandas或其他模块在Python中读取没有隐藏列的Excel文件...
  2. chiinv函数java_Excel统计函数:CHIINV函数实例-excel技巧-电脑技巧收藏家
  3. 图片 富文本 粘贴_用C++实现富文本控件(中): 撤销
  4. mysql組合主鍵_MySQL(二)
  5. linux分区压力测试,stress-Linux系统压力测试工具使用及系统负载很高的几种场景测试...
  6. 推送通知_谷歌宣布为安卓带来声音通知功能 可监测周围声音如婴儿哭声推送通知...
  7. html datatype自定义,$.ajax中dataType为html实现地区显示效果
  8. 使用JDBC把Java连接到数据库
  9. ubuntu下卸载cuda8.0,和安装cuda9.0,cudnn7.0,tensorflow-gpu=1.8
  10. Ubuntu16.04显卡驱动安装和Cuda安装