22.oop-strust与class

OOP是什么:oop 是面向对象编程,面向对象编程是一种计算机编程架构,
OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或
对象组、合而成。
OOP有什么特性:
1、封装性:也称为信息隐藏,就是将一个类的使用和实现分开,只保留
部分接口和方法与外部联系,或者说只公开了一些供开发人员使用的方法
。于是开发人员只 需要关注这个类如何使用,而不用去关心其具体的实
现过程,这样就能实现 MVC 分工合作,也能有效避免程序间相互依赖,
实现代码模块间松藕合。
2、继承性:就是子类自动继承其父级类中的属性和方法,并可以添加新
的属性和方法或者对部分属性和方法进行重写。继承增加了代码的可重用
性。PHP 只支持单继承,也就是说一个子类只能有一个父类。
3、多态性:子类继承了来自父级类中的属性和方法,并对其中部分方法
进行重写。于是多个子类中虽然都具有同一个方法,但是这些子类实例化
的对象调用这些相同的方法后却可以获得完全不同的结果,这种技术就是
多态性。多态性增强了软件的灵活性。
使用OOP用什么好处:
1、易维护
采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变
需求,那么维护也只是在局部模块,所以维护起来是非常方便和较低成本
的。
2、质量高
在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系
统满足业务需求并具有较高的质量。
3、效率高
在软件开发时,根据设计的需要对现实世界的事物进行抽象,产生类。
使用这样的方法解决问题,接近于日常生活和自然的思考方式,势必提高
软件开发的效率和质量。
4、易扩展
由于继承、封装、多态的特性,自然设计出高内聚、低耦合的系统结构
,使得系统更灵活、更容易扩展,而且成本较低。

#include <iostream>
//结构体
//人的属性
//人的方法
struct Ren
{int HP;int MP;float x;float y;int DAGUAI() {return 1;}int ZOULU(int x,int y) {return 1;}
};int main()
{Ren xiaoli;xiaoli.HP = 100;xiaoli.MP = 99;xiaoli.x = 101;xiaoli.y = 200;xiaoli.DAGUAI();xiaoli.ZOULU(2000,5555);
}

类的创建:

在这里插入图片描述

在这里插入图片描述

//main.cpp
#include <iostream>
#include "Guaiwu.h"
//类 class 成员变量
//方法就是成员函数int main()
{Guaiwu xiaoli;xiaoli.HP = 100;xiaoli.MP = 99;xiaoli.x = 101;xiaoli.y = 200;xiaoli.DAGUAI();xiaoli.ZOULU(2000,5555);
}
//Guaiwu.h
#pragma once
class Guaiwu
{
public:    // 公共的   private:私有的int HP;int MP;float x;float y;int DAGUAI();int ZOULU(int x, int y);
};
//Guaiwu.cpp
#include "Guaiwu.h"
int Guaiwu::DAGUAI()
{return 1;
}int Guaiwu::ZOULU(int x, int y)
{return 0;
}

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

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

相关文章

【Linux】ubuntu安装图形化界面步骤

一、ubuntu 安装桌面环境 1、更新软件包列表&#xff08;命令↓&#xff09; sudo apt update 2、安装桌面环境GNOME&#xff08;命令↓&#xff09; sudo apt install ubuntu-desktop 3、安装完成后需要重启服务器&#xff08;服务器重启命令↓&#xff09; sudo reboot 二、…

【Android】轮播图——Banner

引言 Banner轮播图是一种在网页和移动应用界面设计中常见的元素&#xff0c;主要用于在一个固定的区域内自动或手动切换一系列图片&#xff0c;以展示不同的内容或信息。这个控件在软件当中经常看到&#xff0c;商品促销、热门歌单、头像新闻等等。它不同于ViewPgaer在于无需手…

Vue2 doc、excel、pdf、ppt、txt、图片以及视频等在线预览

Vue2 doc、excel、pdf、ppt、txt、图片等在线预览 安装使用目录结构直接上代码src\components\FileView\doc\index.vuesrc\components\FileView\excel\index.vuesrc\components\FileView\img\index.vuesrc\components\FileView\pdf\index.vuesrc\components\FileView\ppt\index…

网站主机介绍

网站主机介绍 1. 网站主机的定义和作用 网站主机,也常被称为网络主机或虚拟主机,是指一种互联网服务,它允许个人或企业将他们的网站内容放置在互联网上,使其可以被全球范围内的用户访问。网站主机的作用类似于实体店铺的租赁空间,只不过它是虚拟的,提供的是服务器空间和…

python os模块学习

文件&#xff1a; 文件操作&#xff1a;open(path,filename)path:绝对路径和相对路径 mode:读&#xff1a;rb,r写&#xff1a;wb w具体搞法&#xff1a; stream.open(file,mode)stream.read()stread.write()stream.close()为了节省时间可以写做with open(file,mode)as stream具…

PostgreSQL 性能优化全方位指南:深度提升数据库效率

PostgreSQL 性能优化全方位指南&#xff1a;深度提升数据库效率 别忘了请点个赞收藏关注支持一下博主喵&#xff01;&#xff01;&#xff01; 在现代互联网应用中&#xff0c;数据库性能优化是系统优化中至关重要的一环&#xff0c;尤其对于数据密集型和高并发的应用而言&am…

Vue 3 中Pinia状态管理库的使用方法总结

Pinia 是 Vue 3 的状态管理库&#xff0c;旨在替代 Vuex&#xff0c;提供更简洁和更灵活的 API。以下是如何在 Vue 3 项目中使用 Pinia 的详细步骤。 1. 安装 Pinia 首先&#xff0c;你需要在你的 Vue 3 项目中安装 Pinia。你可以使用 npm 或 yarn 进行安装&#xff1a; npm…

JVM 中的完整 GC 流程

一、引言 在 Java 应用程序的运行过程中&#xff0c;垃圾回收是一个至关重要的环节。它负责自动管理内存&#xff0c;回收不再被使用的对象&#xff0c;以确保应用程序的稳定运行。了解 JVM 中一次完整的 GC 流程对于优化 Java 应用的性能、减少内存占用以及避免内存泄漏至关重…

密码学的基本原理

密码学是研究编制密码和破译密码的技术科学&#xff0c;以实现信息的保密性、完整性、可用性及抗抵赖性。以下是基本的密码学原理的详细解释&#xff1a; 一、密码学的基本概念明文&#xff1a;原始的、未加密的信息。密文&#xff1a;经过加密处理后的信息&#xff0c;只有持有…

illustrator(AI)-去掉文字有底色

AI去除文字底色教程&#xff1a; 1、打开AI软件&#xff0c;点击“文件”>“新建”&#xff0c;新建一个空白文档&#xff1b; 2、接着将其它版本的AI文件导入当前软件中&#xff0c;此时可以发现文字是有底色的&#xff0c;接下来小编教大家去除文字底色的方法&#xff1…

[OpenGL]使用OpenGL实现硬阴影效果

一、简介 本文介绍了如何使用OpenGL实现硬阴影效果&#xff0c;并在最后给出了全部的代码。本文基于[OpenGL]渲染Shadow Map&#xff0c;实现硬阴影的流程如下&#xff1a; 首先&#xff0c;以光源为视角&#xff0c;渲染场景的深度图&#xff0c;将light space中的深度图存储…

微服务是什么 SpringCloud是什么

微服务是什么 SpringCloud是什么 一、微服务概述二、微服务架构三、单体架构四、分布式架构五、SpringCloud概述六、SpringBoot和 SpringCloud的区别与联系七、SpringCloud版本选择 一、微服务概述 微服务&#xff08;MicroServices&#xff09;最初是由 Martin Fowler 于 2014…

K8S node节点没有相应的pod镜像运行故障处理办法

查看从节点状态 kubectl describe node k8s-node1以下是报错提示 解决办法 需要处理node1节点上的磁盘空间&#xff0c;磁盘空间需要在85%内 处理后的状态 处理正常

CSS教程(四)- 字体

1、尺寸单位 px 像素单位% 百分比&#xff0c;参照父元素对应属性的值进行计算em 字体尺寸单位&#xff0c;参照父元素的字体大小计算&#xff0c;1em16pxrem字体尺寸单位,参照根元素的字体大小计算&#xff0c;1rem16px 2、字体属性 介绍 CSS Fonts (字体)属性用于定义字体…

Redisson分布式锁全解析

Redisson分布式锁全解析&#xff1a;从基础到红锁&#xff0c;锁定高并发解决方案_redisson 红锁-CSDN博客

使用storcli工具配置RAID,收藏这一篇就够了

正文共&#xff1a;1888 字 28 图&#xff0c;预估阅读时间&#xff1a;2 分钟 前文&#xff08;怎么把银河麒麟系统装进U盘&#xff1f;&#xff09;提到&#xff0c;因为国产服务器固件暂不支持直接配置RAID&#xff0c;所以需要使用storcli这个工具来操作。今天就从RAID配置…

Three.js 搭建3D隧道监测

Three.js 搭建3D隧道监测 Three.js 基础元素场景scene相机carema网络模型Mesh光源light渲染器renderer控制器controls 实现3d隧道监测基础实现道路实现隧道实现多个摄像头点击模型进行属性操作实现点击模型发光效果 性能监视器stats引入使用 总结完整代码 我们将通过three.js技…

漫谈分布式唯一ID

文章目录 本系列前言UUIDDB自增主键Redis incr命令号段模式雪花算法 本系列 漫谈分布式唯一ID&#xff08;本文&#xff09;分布式唯一ID生成&#xff08;二&#xff09;&#xff1a;leaf分布式唯一ID生成&#xff08;三&#xff09;&#xff1a;uid-generator分布式唯一ID生成…

CSS教程(七)- 背景

介绍 背景属性可以设置背景颜色、背景图片、背景平铺、背景图片位置、背景图像固定等。 1 背景颜色 属性名&#xff1a;background-color 作用&#xff1a;指定HTML元素的背景色。 取值&#xff1a;英文颜色、16进制、rgb、rgba、transparent&#xff08;一般为透明&#…

如何使用ffmpeg命令行进行录屏

录屏软件&#xff0c;我们去网上下载&#xff0c;发现有很多软件都是要收费的&#xff01;但是录屏功能很难做吗&#xff1f;为啥都需要收费呢&#xff1f; 于是我整了个小demo&#xff0c;用于实现基础的屏幕录制功能。 思路很简单&#xff0c;考虑到 FFMpeg.exe是一个非常成…