面向对象的语言的基本概念

面向对象的语言

一.结构化程序设计和面向对象方法的区别

1.结构化程序设计方法

  • 软件的结构化分析、设计方法
  • 工程化概念的方法
  • 但无法很好地支持越来越复杂、庞大的系统需求

2. 面向对象方法

  • 直接将问题的求解映射到问题本身上
  • 将问题分解为一系列的实体(对象)
  • 方便设计,可维护性、可扩充性好

二.面向对象方法的特性

  • 程序由对象组成
  • 对象之间通过相互协作来完成功能
  • 大多数对象的定义以数据为中心
  • 函数与相关的数据紧密结合
  • 数据可以被隐藏
  • 很容易扩充新的数据和函数

三.设计步骤

  1. 分析实际问题,分辨并抽取其中的实体(对象)
  2. 为对象设计类(新的类型),程序使用这些类创建各种对象
  3. 协调这些对象完成程序功能(消息)

四.类(抽象)和对象(具体)

类=属性(数据)+方法(函数)

1.万物皆对象

  • 每个学生、每个班级、每个学校、每个国家、每棵树、每本书、 每部汽车——具体的实体
  • “张三” 、 “李四”都是对象,但“人”不是
  • “人”不是具体的实体,是类,是抽象概念

2.类是某些对象共同特征的表示

  • 类是创建对象的模板,对象是类的实例

3.格式

  • 定义:关键字 class <类名>
  • 花括号的部分是类的体
  • 定义以分号为结尾
//定义洗衣机类CWashingMachine
class CWashingMachine {
public:
	CWashingMachine(int v = 1, int m = 1); //构造函数
	void setVolume(int v); //设置进水量
	void setMode(int m); //设置洗衣模式
	void washing(); //洗衣
private:
	int waterVolume; //进水量
	int mode; //洗衣模式
};

4.内容说明

  • 类中包含数据和函数

  • 关键字public:公有成员

  • 关键字private:私有成员

  • class 类名 
    {
        public:
        // 公有成员变量和函数(公共成员可以在类的内部和外部进行访问。这意味着,任何一个函数都可以访问公共成员,而不需要进行任何特殊的访问限制)
        
        private:
        // 私有成员变量和函数(私有成员只能在类的内部进行访问。这意味着,除了类本身以外,没有任何其他函数或类可以访问私有成员)
        
        protected// 保护成员变量和函数(保护成员可以在类的内部和派生类中进行访问,但不能在类的外部进行访问。这意味着,只有在派生类中,才能访问保护成员,但在其他任何地方都无法访问)
    
    };
    
  • 自定义类是一种新的自定义类型,可以声明变量、指针、 数组等

  • 对象各自拥有自己的数据空间,互不干扰

CWashingMachine no1; //声明CWashingMachine类的对象no1
CWashingMachine wm[1000]; //声明CWashingMachine类的数组
CWashingMachine *wptr = &no1; //声明CWashingMachine类型的指针
CWashingMachine &ref = no1; //声明CWashingMachine类型的引用

五.消息

  • 对象可以响应消息
  • C++将“向对象发消息”处理成“调用对象的某个成员函数”
  • 调用对象no1的成员函数washing的方法
no1.washing();
wptr->washing();
ref.washing();

六.设计特点

1.抽象和封装

  • 抽象——提取和表现事物的核心特性,不描述背景细节
  • 封装——把数据及与数据相关的操作组织在一个单独的程序单元(对象)中

2.数据隐藏和访问机制

  • 对象对内部数据提供了不同级别的保护
  • 外界程序不能直接访问对象的私有成员(包括私有成员函数和私 有数据成员)
  • 外界程序只能通过公有成员函数和对象交互
  • 有效地保护数据,提高程序的可维护性

3.继承

  • 继承允许基于现有的类(基类)建立新类(派生类)
  • 派生类继承基类的属性(数据)和行为(函数)
  • 派生类可以修改(重定义)继承来的行为
  • 派生类可以增加新的数据成员和成员函数

4.多态性

  • 程序设计中很多类可以通过继承的关系构成树形结构

  • 多态性使程序员可以通过统一的接口操作具有继承关系的这些类 的对象

  • 对于同一条函数调用语句不同的对象会执行不同的操作

定义)继承来的行为

  • 派生类可以增加新的数据成员和成员函数

4.多态性

  • 程序设计中很多类可以通过继承的关系构成树形结构

  • 多态性使程序员可以通过统一的接口操作具有继承关系的这些类 的对象

  • 对于同一条函数调用语句不同的对象会执行不同的操作

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值