• 什么是面向对象?

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. 我的web框架设计

    做了很久的web开发,学了webform和mvc自己总结了,觉得当下的构架还是有改进的可能的. 其实首先说下我的一些认识(个人认知,欢迎讨论,谢绝砸砖). 我觉得对计算机和数据的操作,本身就是一个单向 ...

  2. 奥迪--A4L

    -型号:A4L -价格:30-41W -动力:2T -变速箱:7挡双离合 -长宽高:4.81,1.84,1.43 -油箱:54L -发动机:EA888 -大灯:氙气(选装LED)

  3. cookbook学习第一弹

    1.1现在有一个包含N个元素的元组或者是序列,怎样将它里面的值解压后同时赋值给N个变量 代码: >>>p = (4,5) >>>x,y = p >>&g ...

  4. 【五子棋AI循序渐进】——开局库

    首先,对前面几篇当中未修复的BUG致歉,在使用代码时请万分小心…………尤其是前面关于VCF\VCT的一些代码和思考,有一些错误.虽然现在基本都修正了,但是我的程序还没有经过非常大量的对局,在这之前,不 ...

  5. javascript 隐性类型转换步骤

    这里说的隐性类型转换,是==引起的转换. 如果存在NaN,一律返回false 再看有没有布尔,有布尔就将布尔转换为数字 接着看有没有字符串, 有三种情况,对方是对象,对象使用toString进行转换: ...

  6. android.util.Base64结尾加\n的问题

    测试代码,String data,String key. SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(), HMAC_SHA1_ ...

  7. HTML其他基本格式说明

    1.<!DOCTYPE>说明页面中使用的HTML版本,只是信息声明 2.元信息元素<meta>,通过属性定义文件信息的名称.内容.文档的关键字.作者及描述等..content内 ...

  8. Java学习-041-颜色工具类(RGB,HEX)

    在日常的网页开发中,经常需要进行颜色数值获取.转换,例如获取红色,获取蓝色,获取绿色,RGB转十六进制颜色,十六进制颜色转RGB等,因而在学习过程中,写了一个小工具类,仅供各位小主参考! 多不闲言,直 ...

  9. Rstudio使用记录

    2016/11/1 目前新建两个project:project1(有两个变量x,y)&&project2(无变量)

  10. Unity3D 装备系统学习Inventory Pro 2.1.2 总结

    前言 写在最前面,本文未必适合纯新手,但有一些C#开发经验的还是可以看懂的,虽然本人也是一位Unity3D新人,但是本文只是自己在学习Inventory Pro的学习总结,而不是教程,本人觉得要读懂理 ...