第一次课:

对象是程序设计最基本的单元

对象:对象标识、属性、操作(对象标识又分为内部标识、外部标识)

三三制原则

继承:英文语义”is a kind of” 自动的拥有或隐含的复制

虚基类:解决多继承问题virtual class

聚合关系:整体——部分结构。语义:”has a” OR “is a part of”

关联:类与类中的一个关系

消息:消息是面向对象发出的服务请求。

消息组成:对象标志、服务标志、输入标志、输出标志。

第二次课

复习:

类、对象、继承、封装、ddl、消息

结构:一般——特殊、部分——组成

新内容

多态:指同一命名可具有不同的语义。实现的机制:重写(override)、动态绑定(dynamic binding)、类属(gennic)

九菜单原则

五个层次:主题层、类和对象、结构层、属性层、服务层。

第三次课

用例——>基本模型(类、属性、操作、结构、主题或者包)

四种关系:一般特殊(空三角)、整体部分(菱形)、关联关系(n:n)、消息关系(箭头)

面向对象设计

人机交互界面的设计准则:有层次、步骤相对简单、减少人的记忆、不能哑播放、要有Undo的功能、一类菜单可采用7+-2准则、下拉菜单可采用三三制

第四次课

1、常量:常量变量、常量参数、常量函数

2、参数缺省函数:int fun(int a ,int b=1;float c=0.5)

3、引用(reference):在引用上的操作等同于对原目标对象的操作。

引用VS指针:不可多次赋值、需要初始化。引用是别名,不需要分配内存区域。

4、内联(嵌)函数:

5、Protect针对继承

6、类的定义和实现分离:类的定义student.h;类的实现student.cpp(可以做成动态链接库,为的是隐藏代码的实现)

7、条件编译

例:student.h

#ifndef STUDENT_H //条件编译

#define STUDENT_H

Class student{}//定义student类

#endif

文件student.cpp

#include<iostream.h>

#include “student.h”

Void student::input(int n,char *na,float s)

{

Number=n;score=s;

name=new char[strlen(na)+1];//zhu\0;给\0留一个位置

Strcpy(name,na);

}

8、三个文件:student.h,student.cpp,main.cpp

类的成员函数实现方法用::引导,如:

Void student::display(){……}

类的开头用#ifndef student.h 防止记性二次定义

9、构造函数和析构函数

定义:构造:类名(参数名)

析构:~类型()

拷贝构造函数和赋值构造函数

例:student s1(9902,’xu’,88);

Student s2=s1;   //赋值构造函数

Student s3(s2);   //拷贝构造函数

实现:

Point(float x,float y);

Point(const Point &p);   //拷贝构造函数

构造函数初始化列表

第五次课

1、属性服务

a) 私有----友元、自己

b) 保护----继承、友元

c) 公有

2、构造函数析构函数成对出现

3、Malloc---free

New---delete

4、Time.cpp

#include<iostream.h>

#include “time.h”

Time::time(int h,int m,int s){;}

Void time::print(){;}

Void time:nSecond(){;}

5、友元的类或者函数可以访问类中的私有数据(保护数据等)(一定程度上解决烂继承问题)

友元:不传递、不可逆

友元类: friend class 类名(友元)

友元成员函数:friend 函数  (一部分成员函数)

友元函数: friend 返回值类型 类名:函数名  (将C代码嵌入C++)

6、模板Template

#Include<iostream.h>

Template<class Type> //声明

Void sort(Typex[],int size){;}

调用;

Void main()

{

Int a={1,3,4,2};

Sort(a,a.length);

}

7、派生和继承

a) 派生类具有父类的全部的成员(服务和属性)

b) 派生类重新定义父类的函数

自己的print可打印所以属性,基类只能是打印基类的。

c) 继承方式有3种:私有、保护、公有

d) 基类的构造函数先执行

8、虚基类——解决拷贝数据冗余

多态性——虚函数:父类的引用调用子类的实体

多态指同一个多种解释。即P可父可子。默认是父,虚函数是子

9、动态联编

面向对象分析与设计(C++)课堂笔记的更多相关文章

  1. UML和模式应用学习笔记-1(面向对象分析和设计)

    UML和模式应用学习笔记-1(面向对象分析和设计) 而只是对情节的记录:此处的用例场景为:游戏者请求掷骰子.系统展示结果:如果骰子的总点数是7,则游戏者赢得游戏,否则为输 (2)定义领域模型:在领域模 ...

  2. 《UML和模式应用》读书笔记(一)面向对象分析和设计简单示例

    在开始进行对象分析和设计之前,先通过“扔骰子”这个软件(游戏者扔两个骰子,如果总是是7,则赢,否则输),来简单分析下这个过程. 1:用例 需求分析,可能包括人们如何应用的场景或情节,这些都可以被编写成 ...

  3. 解析UML的面向对象分析与设计

    经常听到有朋友抱怨,说学了UML不知该怎么用,或者画了UML却觉得没什么作用.其实,就UML本身来说,它只是一种交流工具,它作为一种标准化交流符号,在OOA&D过程中开发人员间甚至开发人员与客 ...

  4. .NET应用架构设计—面向对象分析与设计四色原型模式(彩色建模、领域无关模型)(概念版)

    阅读目录: 1.背景介绍 2.问自己,UML对你来说有意义吗?它帮助过你对系统进行分析.建模吗? 3.一直以来其实我们被一个缝隙隔开了,使我们对OOAD遥不可及 4.四色原型模式填补这个历史缝隙,让我 ...

  5. 面向对象分析与设计—OOD部分

    第三部分 面向对象设计 3.1 面向对象设计(OOD)的定义? 在面向对象分析阶段,已经针对用户需求建立起用面向对象概念描述的系统分析模型.在设计阶段,要考虑为实现系统而采用的计算机设备.操作系统.网 ...

  6. 面向对象分析与设计—OOA部分

    第二部分 面向对象分析 2.1 面向对象分析(OOA)的定义? OOA——面向对象的分析,就是运用面向对象方法进行系统分析,对问题域(问题所涉及的范围)和系统责任(所开发的系统应具备的职能)进行分析与 ...

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

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

  8. 深入浅出面向对象分析与设计读书笔记一&吉他搜索案例&吉他特性锚点集中&委托&重用&业务阶段&需求列表&用例

    案例:吉他搜索Guitar Inventory GuitarSpec需求变化:增加吉他弦数特性原始程序需要的变化: 1.修改GuitarSpec,构造,成员,getter 2.修改Guitar,构造, ...

  9. 读书笔记--Head First 面向对象分析与设计 目录

    1.良好应用程序的基石 2.收集需求 3.需求变更 4.分析 5.良好的设计=灵活的软件 6.解决大问题 7.架构 8.设计原则 9.迭代与测试 10.OOA&D 的生命周期 附录1 附录2

随机推荐

  1. 定制一个类似地址选择器的view

    代码地址如下:http://www.demodashi.com/demo/12832.html 前言: 这几天也是闲来无事,看看有什么和Scroller相关的控件需要巩固下,原因很简单,前几天看到相关 ...

  2. ios侧滑返回:完美解决 interactivePopGestureRecognizer 卡住的问题

    interactivePopGestureRecognizer是iOS7推出的解决VeiwController滑动后退的新功能,虽然很实用,但是坑也很多啊(比如在rootViewcontroller下 ...

  3. oc 经常用到弹出view的方法

    #pragma mark 弹出view -(void)exChangeOut:(UIView *)changeOutView dur:(CFTimeInterval)dur { CAKeyframeA ...

  4. WebLogicSSL解决苹果IOS itms下载问题

    前提: 安装好openssl工具. 通过windows cmd 命令进入 openssl工作文件夹 如解压文件夹为:E:\ openssl-1.0.2-beta1 则工作文件夹为E:\openssl- ...

  5. java.lang.UnsupportedOperationException解决方法!!!

    在项目中对List进行操作时报错java.lang.UnsupportedOperationException,后来发现操作的List是由数组转换而成的,通过看源码发现问题,并写测试程序如下. 代码块 ...

  6. 我佩服-WPF(2)

    简单的学学WPF,我们知道他就是拖拉控件,一点也不难.假设公司真的使用WPF搞开发,你去面试,直接说WPF就是拖拉控件,那就慘了. 有些公司非常喜欢使用WPF.不不过比較简单.更重要的是全然做到了分离 ...

  7. Arcgis:什么是栅格数据类型

    栅格数据单元大小 栅格所表示的内容的详细程度(要素现象)通常取决于栅格的单元(像素)大小或空间分辨率. 单元必须足够小,这样才可以捕获到所需的详细信息: 而单元又必须足够大,这样才可以提高计算机存储和 ...

  8. 使用Percona监控插件监控MySQL

    1.使用Percona监控插件监控MySQL yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/per ...

  9. 第四篇: Ansible 常用模块使用

    一. command | shell 模块 该模块为:执行命令模块 (由于命令模块较为强大,可根据自身对操作系统的熟练程度而增加.所以这里不再介绍类似可以实现同功能模块,比如service模块,需要重 ...

  10. eclipse配置jp.gr.java_conf.ussiy.app.propedit_5.3.3

    配置PropertiesEditor插件 jp.gr.java_conf.ussiy.app.propedit_5.3.3   1.下载PropertiesEditor插件 http://pan.ba ...