快捷导航
查看: 931|回复: 0

什么是面向对象?

[复制链接]

管理员

发表于 2020-6-29 22:42 | 显示全部楼层 |阅读模式
面向对象编程(OOP)是一种编程范例,其中围绕对象而不是函数或逻辑编写和构造程序。在这里,对象被定义为具有唯一属性和行为的数据字段,它们包含属性形式的数据和方法形式的过程,对象过程可以访问和修改对象中存在的数据。OOP语言有很多,其中最流行的是基于类的,其中对象将是类的实例。类是数据和过程的容器,也称为数据成员和成员函数。让我们考虑一个物体作为汽车的例子,汽车具有颜色,品牌名称,加油量等属性,并且具有表示汽车行为的方法,例如起步,加速,停车等。类是属性和方法的蓝图,并且不占用空间,直到并且除非为该类创建了对象。范例:class car{char name[20];  // name and colour are attributeschar colour[20];public void start(){}           //start is a method};void main(){car c1;         //c1 is an object}面向对象的编程目标是在编程中实现诸如继承,多态性,封装等现实世界中的实体,我们将对其进行详细介绍。OOP的主要目标是共同绑定数据和对其进行操作的功能,以使该数据只能由该功能访问。面向对象原则面向对象编程的四个主要原理是封装,抽象,继承和多态。1.封装将数据和方法绑定到一个单元中称为封装,当类中的每个对象保持其状态私有时,便完成了封装。外部对象无法访问本机内部的数据,只有本机内部的那些功能才能访问它。因此,对象通过其方法来管理其状态,并且要与此对象进行通信,我们将需要此类的公共方法的帮助。2.抽象抽象是封装的扩展,这意味着仅向外界提供必要的信息,同时隐藏实现的内部细节,它仅显示其他对象的适当操作。这样做的好处是我们可以在不影响类的情况下更改实现,因为方法接口保持不变。以一个计算器为例,它从我们那里得到输入,然后按一下按钮,就可以为我们提供所需的输出,同时为我们节省了如何得出答案的内部细节。3.继承对象通常在功能上相似,共享逻辑的一部分,但其余部分却有所不同。那么,我们如何重用公共逻辑并分离不同的逻辑呢?这可以通过继承来实现,在继承中,我们创建了一个称为子类的新类,该子类是从称为父类的现有类派生的,从而形成了类的层次结构。子类重用其从父类中需要的数据字段和方法,并自行实现其唯一功能。例如,车辆可以是父类,我们可以从中派生诸如Bike和Car之类的子类。它们具有能够依靠燃油行驶并运载乘客的共同特性,但是可以运载的乘客数量却有所不同,而且这些特性更多。4.多态性多态性是采取多种形式的能力,假设我们有一个父类和一些子类。现在我们要同时使用父类和子类的属性,那么如何实现呢?这可以使用多态来完成,在多态中,抽象实体以多种方式执行。它提供了一种完全像父类一样使用类的方法,这样就不会混淆混合类的类型,并且每个子类继续保持其方法不变。这可以通过重用父接口来完成,以便子类可以在其自己的版本中实现这些方法。面向对象编程的优势可以证明一个真实世界的想法,因为OOP中的所有内容都被视为一个对象。当我们使用封装的概念时,程序更易于测试和维护。随着我们并行而不是顺序开发类,可以更快地开发代码。由于数据抽象,OOP提供了更高的安全性。外界无法访问隐藏的数据。可重用性可以通过使用已经编写的类来实现。面向对象编程的缺点用OOP概念设计程序可能很棘手。程序员需要预先计划在OOP中开发程序。使用OOP开发的程序的规模要大于使用程序方法开发的程序的规模。由于OOP程序的大小较大,因此这些程序的执行时间也更长。结论面向对象的编程为我们简化了编程过程,它具有许多价值,如可重用性,效率和代码维护,尽管最初可能很难理解OOPs概念。相关文章推荐Class是什么意思?  在面向对象编程中,Class(类)用于描述一个或多个对象。它用作在程序中创建或实例化特定对象的模板,虽然每个对 […]...NPC是什么?  NPC全称“Non-Player Character”是非玩家角色的缩写。它是游戏中的一种角色类型,即非玩家角 […]...SQLite和MySQL有什么区别?  数据库是任何网站或开发设计的核心部分, SQLite和MySQL都是主流的开源数据库。在本文中,我们将分析这两 […]...什么是在线营销?  在线营销是利用基于网络的渠道向公司的潜在客户传播有关公司品牌,产品或服务的信息的做法。 用于在线营销的方法和技 […]...互动营销是什么意思?  互动营销是一对一的营销流程,可根据个人客户和潜在客户的行为做出反应和变化。这种对客户和潜在客户行为作出反应的能 […]...
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

966SEO学习网

GMT+8, 2024-4-19 22:48

Powered by SEO学习网  本站采用创作共用版权 CC BY-NC-SA 3.0 CN 许可协议,转载或复制请注明出处

© 2014-2019 投诉建议及友链申请联系邮箱:[email protected]

快速回复 返回顶部 返回列表