面向对象编程(OOP)

简介: 面向对象编程(OOP)

1.理解面向对象

   (1)结构化程序设计(面向过程程序设计)

       程序 = 算法 + 数据结构


       算法第一位,数据结构第二位

   (2)面向对象程序设计

       程序 = 对象 + 对象 + ~~~


       数据第一位,算法第二位


       关键:让每一个对象负责执行一组相关任务


   (3)面向对象编程的特性

       万物皆对象,程序是一组对象彼此之间在发送消息,每个对象都有自己的内存占用,可以组装成更大的对象。每个对象都有类型,特定类型的所有对象可以接收相同的消息。


2.面向对象的优点

(1.)便于程序模拟现实世界中的实体


   用"类"封装建模实体对象的状态和行为


(2.)隐藏细节


   对象的行为和状态被封装在类中,外界通过公开的接口调用类的方法来获得状态信息,不需要关注内部细节如何实现。


(3.)可重用


   可以通过类模板,创建多个对象实例,重用类的定义代码。


3.类和对象的概念、区别和联系

   (1)概念:

       ①类:类是创建对象的模板和蓝图,类是一组类似对象的共同抽象定义(它是一个抽象的概念)


       ②对象:对象是类的实例化的结果(对象是通过类构造出来的),是具体的,是实实在在存在的,代表现实世界的某一事物。


       ③对象的两个关键特性:


           行为:对象能干什么


           状态:对象的属性,行为的结果(一个对象的行为有可能改变一个对象的状态或者属性)


   (2)区别

       ①类是静态定义


       ②对象是动态实例


       ③程序代码操作的是对象而非类


       ④建模得到的是类而非对象


   (3)联系

       ①类是对象的定义(也可以理解为类是对象的数据类型)


       ②对象的产生离不开类这个模板


       ③类存在的目的是实例化得到对象


4.类的建模是一个抽象和封装的过程

       ①抽象:去掉不关注的,次要的信息而保留重要的信息


       ②封装:信息打包,简单来说:将抽象出来的属性和方法包装在一个类中


相关文章
|
数据可视化 测试技术 PyTorch
智谱ChatGLM3魔搭最佳实践教程来了!
ChatGLM3-6B 是 ChatGLM 系列最新一代的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上
|
监控 安全 前端开发
Onvif开发笔记(二): 使用gSOAP编译Onvif协议之编译Onvif代码框架
Onvif开发笔记(二): 使用gSOAP编译Onvif协议之编译Onvif代码框架
Onvif开发笔记(二): 使用gSOAP编译Onvif协议之编译Onvif代码框架
|
消息中间件 存储 监控
自顶向下学习 RocketMQ(十):消息重投和消息重试
生产者在发送消息时,同步消息失败会重投,异步消息有重试,oneway 没有任何保证。消息重投保证消息尽可能发送成功、不丢失,但可能会造成消息重复,消息重复在 RocketMQ 中是无法避免的问题。消息重复在一般情况下不会发生,当出现消息量大、网络抖动,消息重复就会是大概率事件。另外,生产者主动重发、consumer 负载变化也会导致重复消息。
自顶向下学习 RocketMQ(十):消息重投和消息重试
|
2月前
|
机器学习/深度学习 人工智能 JSON
AI编程时代,对应的软件需求文档(SRS、SRD、PRD)要怎么写
对于AI编程来说,需要使用全新的面向提示词的需求文档来和AI+人类沟通,构建共同的单一事实来源文档知识库是重中之重。
443 7
|
Ubuntu Linux 网络安全
在Ubuntu上离线升级OpenSSH
本文介绍了在Ubuntu系统上离线升级OpenSSH的详细步骤,包括移除旧版本、解压新版本、编译安装、解决依赖问题、替换相关命令、重启SSHD服务以及验证升级结果。
2659 1
|
资源调度 前端开发 JavaScript
Tailwind CSS如何在vue项目中使用
Tailwind CSS如何在vue项目中使用
937 8
西门子S7-300开关量模块和模拟量模块通道地址如何分配?
根据机架上模块的类型,地址可以设定为输入I或输出O。数字量I/O模块每个槽占4个字节地址,也就是32个I/O点,1个字节8个位所以4个字节32个位。
西门子S7-300开关量模块和模拟量模块通道地址如何分配?
|
Kubernetes 负载均衡 Cloud Native
全面进入云原生时代,拥抱Kubernetes,再见了Spring Cloud
相信很多开发者在熟悉微服务工作后,才发现: 以为用 Spring Cloud 已经成功打造了微服务架构帝国,殊不知引入了 k8s 后,却和云原生的生态发展脱轨
25920 8
全面进入云原生时代,拥抱Kubernetes,再见了Spring Cloud
几种常见的通信系统抗衰落技术
几种常见的通信系统抗衰落技术
815 0
几种常见的通信系统抗衰落技术
|
Windows
win10没有telnet客户端怎么办
telnet客户端对网络工程师来说是个很有用的服务,可以通过它直接远程登录网络设备,进行管理和配置操作等,不过有用户升级win10系统后却遇到没有telnet客户端的情况,这要怎么办呢,如果你也遇到一样的问题,随小编的步伐一起来看看windows10中没有telnet客户端的详细处理步骤
win10没有telnet客户端怎么办