zoukankan      html  css  js  c++  java
  • 面向对象分析与设计(C++)课堂笔记

    第一次课:

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

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

    三三制原则

    继承:英文语义”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;留一个位置

    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、动态联编

  • 相关阅读:
    VMware Tools的安装
    XmlSerializer
    string[][]和string[,] 以及 int[][]和int[,]
    Get Length 使用dynamic关键字
    Cocos2d-x 3.0final 终结者系列教程01-无论是从cocos2d-x2.x升级到版本cocos2d-x3.x
    Hosting WCF Service
    A*算法进入
    OpenCV面、人眼检测
    JAVA学习篇--JAVA两种编程模式控制
    采用Java语言如何实现高速文件复制?
  • 原文地址:https://www.cnblogs.com/xiangyangzhu/p/OOAOOD.html
Copyright © 2011-2022 走看看