首页 > 编程语言 >面向对象编程(Object-Oriented Programming,OOP)

面向对象编程(Object-Oriented Programming,OOP)

时间:2023-07-16 20:34:58浏览次数:43  
标签:一步 对象 Object Programming 多态 Oriented 面向对象编程

面向对象编程(Object-Oriented Programming,OOP)是一种编程思维方式和编码架构,是一种 对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。

什么是对象:对象是客观存在的事物,可以说任何客观存在的都是可以成为对象,一台电脑,一直钢笔,一个人,一辆轿车等等,都可以称为对象

面向对象的基本特点:

  • 抽象:对同一类型的对象的共同属性和行为进行概括,形成类(class) 。类是构造对象的模板或蓝图。由类构造(construct) 对象的过程称为创建类的实例 (instance ).
  • 封装:将抽象出的数据、代码封装在一起,隐藏对象的属性和实现细节,仅对外提供公共访问方式,将变化隔离,便于使用,提高复用性和安全性
  • 继承:在已有类的基础上,进行扩展形成新的类,提高代码复用性。继承是多态的前提
  • 多态:所谓多态就是同一函数名具有不同的功能实现方式

在面向对象之前,比如 C 语言就是面向过程编程(Procedure-Oriented Programming,POP)的,这两者的区别就在于:

  • 面向过程是具体化的,流程化的,解决一个问题,你需要一步一步的分析,一步一步的实现。

  • 面向对象是模型化的,你只需抽象出一个类,这是一个封闭的盒子,拥有数据也拥有解决问题的方法。需要什么功能直接使用就可以了,不必去一步一步的实现。

   

标签:一步,对象,Object,Programming,多态,Oriented,面向对象编程
From: https://www.cnblogs.com/wangprince2017/p/17558467.html

相关文章

  • Prism-BindableObject
    Prism提供BindableObject作为ViewModel的基类。个人认为Prism的BindableObject不如CommunityToolkit的ObservableObject功能丰富和强大。如:SetProperty只支持back-fieldmemoryProperty,不支持non-back-fieldcalculateProperty。SetProperty不支持自定义判等器。不支持Ta......
  • python ValueError: No JSON object could be decoded
    解决“pythonValueError:NoJSONobjectcouldbedecoded”问题概述在Python开发中,我们经常会遇到处理JSON数据的情况。然而,在处理JSON数据时,有时会遇到ValueError:NoJSONobjectcouldbedecoded的错误。这个错误通常发生在尝试将字符串解析为JSON对象时,但字符串无效或无......
  • python怎么获取object名字
    使用Python获取对象名称的方法在Python中,我们可以通过多种方式获取对象的名称。无论是函数、类、模块还是变量,都可以使用这些方法来获取其名称。使用__name__属性在Python中,每个对象都有一个特殊的属性__name__,可以用来获取对象的名称。下面是一些示例代码:获取函数名称def......
  • 110.Object.defineProperty介绍
    110.Object.defineProperty介绍?Object.defineProperty函数一共有三个参数,第一个参数是需要定义属性的对象,第二个参数是需要定义的属性,第三个是该属性描述符。一个属性的描述符有四个属性,分别是value属性的值,writable属性是否可写,enumerable属性是否可枚举,configurable......
  • RestKit学习5:Loading Remote Objects
    本系列的前面几篇:RestKit学习1:引用RestKit项目RestKit学习2:使用RestKit发送和接受请求 RestKit学习3:CoreData从模型到实体RestKit学习4:DatabaseSeeding(生成数据库文件)这篇是从服务器的一个json接口直接获得数据,并把数据解析成对象。需要解析的json字符串:{"error":0,"message":"......
  • Qt信号槽信号函数重载问题 error: C2664: “QMetaObject::Connection const”
    //connect(spinFontSize,&QSpinBox::valueChanged,this,&MainWindow::spinFontSize_valueChanged);//由于信号函数存在重载,发送者找不到正确信号函数。//改用A.Qt4带形参方式//connect(spinFontSize,SIGNAL(valueChanged(int)),this,SLOT(spinFontSize_valueChang......
  • Delta Lake_ High-Performance ACID Table Storage over Cloud Object Stores
    论文发表于2020年,研究数据湖产品的很好的学习资料.概要开篇很明确的表明了为什么要做Deltalake这样一个产品.Databricks尝试将数据仓库直接架在云上对象存储之上,这种尝试的过程中遇到了对象存储的一些问题,为了解决这些问题,提出了Deltalake这套技术方案.对象存储的......
  • QJsonObject
    QJsonObject #include<QJsonObject> PublicTypesclassconst_iteratorclassiteratortypedefConstIteratortypedefIteratortypedefkey_typetypedefmapped_typetypedefsize_typePublicFunctions QJsonObject() QJsonO......
  • 在Unity3D中使用ScriptableObject进行序列化
    ScriptableObject类型经常用于存储一些unity3d本身不可以打包的一些object,比如字符串,一些类对象等。用这个类型的子类型,则可以用BuildPipeline打包成assetbundle包供后续使用,非常方便。这样除了playerpref和c#文件读取外,另外的一种存取一些数据对象的方法1.usingUnityEngine;......
  • 如何解决返回[object Promise]标准答案
    constmyPromise=newPromise((resolve,reject)=>{//执行异步操作//当操作完成时调用resolve()或reject()});myPromise.then(result=>{//在Promise被解析时执行的回调函数console.log(result);//输出Promise的值}).catch(error=>{//在Promise被拒绝时执......