Chapter 7 类和对象的特性(上篇)

目的:认识类,对面向对象产生认识

📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊

7.1 面向对象程序设计方法概述

1.C++并不是一种纯粹的面相对象语言,而是一种基于过程和面相对象的混合型的语言

2.基于过程和基于对象的对比:

a:程序:函数是构成程序的基本部分,程序面对的是一个个函数,每个函数都是独立存在于程序中,程序面对的是一个个的函数

b:对象:除主函数外,其他函数基本都是出现在类中,只有通过类才能调用类中函数

2.基于对象的程序:凡是以类对象为基本构成单位的程序都是基于对象的程序

3.面相对象程序设计有4个主要特点:封装、抽象、多态性和继承

a:C++的类对象体现了抽象和封装的特性,在此基础上再利用继承和多态性,就成为真正的面向对象的程序设计

b:往往把基于对象程序设计和面向对象程序设计统称为面向对象程序设计(基于+面向=面向)

4.对象和类

a:任何一个对象都应该具有两个要素:静态特征(别称:属性)+动态特征(别称:行为/方法),对象是由一组属性和一组行为构成的

b:在一个系统中的多个对象之间通过一定的渠道相互联系,要使某一个对象实现某一种行为(即操作),应当向它传送相应的消息

c:对象:描述客观事物的一个实体由数据(体现了属性)和函数/方法(即操作代码)组成

5.封装和信息隐蔽

a:封装:有两个含义

(1)将有关的数据和操作代码封装在一个对象中,形成一个基本单位,各个对象之间相对独立,互不干扰

(2)将对象中某些部分对外隐蔽,即隐蔽其内部细节,只留下少量接口,以便与外界联系,接受外界的信息

b:对外界隐蔽的做法称为信息隐蔽(imformation hiding)

6.抽象

a:作用:抽象的作用是表示同一类事物的本质

b:类是对象的抽象,而对象则是类的特例,即类的具体表现形式

7.继承与重用

a:基本特称就可以称为父类或称为基类,从基类继承过来的称为子类或派生类

8.多态性

a:多态现象:如果有几个相似而不完全相同的对象,有时人们要求在向他们发出同一个消息时,他们的反应各不相同,分别执行不同的操作,就是多态现象

b:多态性(polymorphism):由继承而产生不同的派生类,其对象对同一消息会做出不同的相应,多态性时面对对象程序设计的一个重要特征,能增加程序灵活性

8.其他

a:算法+数据结构=程序;(对象+对象+······)+消息=程序 或 对象s+消息=程序

b:消息的作用就是对对象的控制

9.面向对象的软件工程包括以下几部分:

面向对象分析(object oriented analysis,OOA)+面向对象设计(object oriented design,OOD)+面向对象编程(object oriented programming,OOP)+面向对象的测试(object oriented test,OOT)+面向对象软件维护(object oriented software maintenance,OOSM )

📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊📊

8.2 类的声明和对象的定义

1.类和对象的关系:类是对象的抽象,而对象是类的具体实例

2.声明类类型:

a:如果在类的定义即不指定private,也不指定public,则系统默认为私有的

b:成员访问限定符:protected、public、private

b:形式:class 类名

               {

                       private:

                                私有的数据和成员数据;

                       public: 

                                公用的数据和成员函数;

              };

c:private和public称为成员访问限定符,被声明为私有的成员只能被本类中的成员函数引用,类外不能调用,被声明为公用的成员,既可以被本类中的成员函数所引用,也可以被类的作用域内的其他函数引用

d:还有一种成员时protected,用protected声明的成员称为受保护成员,他不能被类外访问,但可以被派生类的成员函数访问

3.定义对象的方法

a:先声明类类型,然后在定义对象

形式:class  类名  对象名;或者 类名   对象名;(以下两种形式效果一样)

class Stu x1,x2;
Stu x1,x2;

b:在声明类的同时定义对象(但不提倡这种写法)

#include<iostream>
using namespace std;
class Student
{public:void display(){cout<<"num:"<<num<<endl;}private:int num;char name[20];char sex;
}x1,x2;

c:不出现类名,直接定义对象

class
{private:·····public:·····
}x1,x2;

共同学习,欢迎指正!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/621342.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Py/Java/C++三种语言详解】LeetCode每日一题240114【链表】LeetCode83、删除排序链表中的重复节点

文章目录 题目链接题目描述解题思路代码PythonJavaC时空复杂度 华为OD算法/大厂面试高频题算法练习冲刺训练 题目链接 LeetCode83、删除排序链表中的重复节点 题目描述 给定一个已排序的链表的头 head &#xff0c; 删除所有重复的元素&#xff0c;使每个元素只出现一次 。返…

Android json功能解析

1. 简介 JAVAScript Object Notation是一种轻量级的数据交换格式具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案&#xff08;有点类似于正则表达式 &#xff0c;获得了当今大部分语言的支持&#xff09;。  JSON采用兼容性很高的文本格式&#xf…

第 380 场周赛 解题报告 | 珂学家 | 数位DP 二分 + 字符串Hash

前言 整体评价 感觉T3更难些&#xff0c;T4太直接了&#xff0c;一般的KMP/StringHash基本就够用了。 上周T4出数位DP&#xff0c;估计是为T3打了一个铺垫。 A. 最大频率元素计数 思路: 模拟即可 class Solution {public int maxFrequencyElements(int[] nums) {Map<Int…

qt5.14.2配置opencv4.5.5

使用环境&#xff1a;windows&#xff0c;opencv4.5.5&#xff0c;qt5.14.2&#xff0c;msvc编译器 这里的opencv文件是已经编译好了&#xff0c;在qt工程中配置就可使用&#xff0c;编译器得是msvc才行&#xff0c;MinGW不管用。 资源地址&#xff1a;https://download.csdn.…

【深度学习每日小知识】Computer Vision 计算机视觉

计算机视觉是人工智能的一个领域&#xff0c;涉及算法和系统的开发&#xff0c;使计算机能够解释、理解和分析来自周围世界的视觉数据。这包括从静态图像到视频流甚至 3D 环境的一切。 使用对象检测和特征提取等方法&#xff0c;计算机视觉本质上需要从视觉输入中提取有用信息…

javascript,setTimeout定时器的精度可能不高,javascript引擎不是你想的那样

javascript引擎&#xff0c;它运行在宿主环境中&#xff0c;对前端来说&#xff0c;一般是web浏览器&#xff0c; 代码运行到浏览器。 专业术语: 事件循环&#xff1a;浏览器提供了一种机制来处理程序中多个块的执行&#xff0c;且执行每块时调用javascript引擎,这种机制被称为…

2023 IoTDB Summit:天谋科技高级开发工程师苏宇荣《汇其流:如何用 IoTDB 流处理框架玩转端边云融合》...

12 月 3 日&#xff0c;2023 IoTDB 用户大会在北京成功举行&#xff0c;收获强烈反响。本次峰会汇集了超 20 位大咖嘉宾带来工业互联网行业、技术、应用方向的精彩议题&#xff0c;多位学术泰斗、企业代表、开发者&#xff0c;深度分享了工业物联网时序数据库 IoTDB 的技术创新…

华为手机备份全过程(保姆级问题解决方案)

手机备份 前言主体信息备份一、关闭windows安全中心的内存完整性二、开启 USB 调试&#xff0c;尝试使用 ADB 连接三、开始备份 微信备份QQ备份写在最后遗留问题 前言 我的手机是荣耀 20&#xff0c;虽然不是华为&#xff0c;但系统还是鸿蒙的系统&#xff08;毕竟那阵荣耀还是…

.pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?

引言&#xff1a; 在网络安全领域&#xff0c;.pings勒索病毒一直是不断演变的威胁之一。其变种的不断出现使得对抗这一数字威胁变得更加复杂。本节将深入剖析.pings勒索病毒变种的出现&#xff0c;以更好地理解其威胁性质和对策。如果受感染的数据确实有恢复的价值与必要性&a…

reactNative0.71版本的使用

开发环境配置 参考reactNative 官网 版本选中0.71 打包配置 1. IOS 打开项目 -> 进入ios目录->执行命令 pod install ->项目名称.xcworkspace -> 使用xcode打开->配置证书 证书配置截图如下 &#x1f4a1;tips&#xff1a;TARGETS目录下会有多个文件&#x…

【ArcGIS Pro微课1000例】0057:未安装所需的Microsoft驱动程序

文章目录 一、错误提示二、解决办法1. Excel转表2. Excel转csv一、错误提示 ArcGIS Pro添加Excel数据时,提示未安装所需的Microsoft驱动程序,如下图所示: 二、解决办法 1. Excel转表 在选择输入表时,可能会提示未安装所需的 Microsoft 驱动程序。 这是因为要在 ArcGIS P…

为什么光刻要用黄光

光刻是集成电路&#xff08;IC或芯片&#xff09;制造中的重要工艺之一。简单来说&#xff0c;它是通过使用光掩膜和光刻胶在基板上复制电路图案的过程。 基板将涂覆硅二氧化层绝缘层和光刻胶。光刻胶在被紫外光照射后可以容易地用显影剂溶解&#xff0c;然后在腐蚀后&#xf…

js pop方法的使用

JavaScript的pop()方法是数组对象的方法之一&#xff0c;用于从数组的末尾删除并返回最后一个元素。它不接受任何参数。 以下是pop()方法的基本语法&#xff1a; var lastElement array.pop() 在上述语法中&#xff1a; array&#xff1a;要操作的原始数组。lastElement&…

控制网页的灰度显示

1.代码&#xff1a; 普通网页 <style>html {filter: grayscale(100%);}</style> 或是:webkit内核浏览器写法 <style>html {-webkit-filter: grayscale(100%)}</style> 2.说明&#xff1a; grayscale(amount) :进行灰度转换。 amount转换值的大小&…

Embeddings: What they are and why they matter

embeddings 是什么意思https://simonwillison.net/2023/Oct/23/embeddings/推荐原因&#xff1a;GPT 模型的基础是一种叫做 embeddings 的技术&#xff0c;用来将文本转换成向量&#xff0c;从而可以计算出文本之间的相似度。这篇文章详细地介绍了embeddings及应用 Embeddings…

Java多线程并发篇----第十三篇

系列文章目录 文章目录 系列文章目录前言一、Semaphore 信号量二、Semaphore 与 ReentrantLock 区别三、可重入锁(递归锁)四、公平锁与非公平锁前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,…

数据库与SQL

数据库与SQL 学习链接数据库关系型数据库管理系统&#xff08;RDBMS&#xff09; SQLSQL介绍SQL类型SQL 基础语言学习创建表&#xff08;create table&#xff09;语法 数据类型SQL最常用的数据类型 学习链接 基础篇&#xff1a;数据库 SQL 入门教程 数据库 用于存储数据 存放…

对接苹果CMS芒果影视APPV1.0(附安装教程+源码支持多端)内置采集脚本

目录 概述1. 演示效果1.1 视频演示1.2 图文演示1.2.1 首页1.2.2 专题页1.2.3 搜索1.2.4 观影 2. 支持功能3. 插件和框架4. 部署方法4.1 后端4.1.1 准备工具4.1.2创建站点4.1.3 上传后端代码到服务器4.1.4 导入数据库4.1.5 配置数据库信息4.1.6访问后台管理系统 4.2 前端4.2.1 准…

【开发日记】IDEA“找不到或无法加载主类”问题

记录一个研究了两个小时的“玄学”问题找不到或无法加载主类。 ​1、问题 使用IDEA启动SpringBoot项目显示找不到或无法加载主类。 2、解决经历 尝试了很多种解决方法都没有解决&#xff0c;下面是我网上查询后尝试的一些方法。这些方法我都没有解决问题&#xff0c;是因为…

css3背景与渐变

css3背景与渐变 前言背景颜色background-color基础知识背景图片background-image基础知识背景图片的重复模式 背景尺寸background-sizecontain和cover是两个特殊的background-size的值 背景裁切 background-clip背景固定 background-attachment背景图片位置 background-positio…