【愚公系列】软考高级-架构设计师 084-面向对象开发
🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。
🏆《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏
🚀前言
面向对象开发(Object-Oriented Development,OO开发)是一种软件开发方法,它将问题视为一系列对象的集合,每个对象都有自己的属性和方法。在面向对象开发中,程序的主要构建单位是对象,而不是函数或过程。
面向对象开发的核心概念包括:
-
对象:对象是程序的基本单元,它封装了数据(属性)和行为(方法)。
-
类:类是用来创建对象的蓝图或模板,它定义了对象的属性和方法。
-
封装:封装是将数据和操作数据的方法捆绑在一起的概念,对象的内部细节对外部是隐藏的。
-
继承:继承允许一个类(子类)基于另一个类(父类)创建新类,并且可以重用父类的属性和方法。
-
多态:多态性允许不同类的对象对同一个消息作出响应,即同一个方法针对不同对象可以有不同的实现。
通过面向对象开发,程序员可以更好地组织和管理代码,提高代码的复用性、可维护性和可扩展性。常见的面向对象编程语言包括Java、C++、Python等。
🚀一、面向对象开发
🔎1.概念
🦋1.1 对象
对象是由数据及其操作构成的封装体,是系统中用于描述客观事务的一个实体,是构成系统的基本单位。一个对象通常由以下三个部分组成:
- 对象名:对象的名称。
- 属性:对象的特征和状态数据。
- 方法:对象能够执行的操作和功能。
🦋1.2 类
类是现实世界中实体的形式化描述,将该实体的属性(数据)和操作(函数)封装在一起。类是对象的模板,而对象是类的实例。
🦋1.3 类的分类
类可以分为三种:实体类、接口类和控制类。
-
实体类
- 定义:表示现实世界中真实的实体。
- 用途:描述具体的人、物等实际存在的事物。
- 例子:人、物等。
-
接口类
- 定义:为用户提供一种与系统合作交互的方式。
- 分类:
- 人的接口:包括显示屏、窗口、Web窗体、对话框、菜单、列表框、其他显示控制、条形码、二维码或其他用户与系统交互的方法。
- 系统接口:涉及将数据发送到其他系统,或从其他系统接收数据。
-
控制类
- 定义:用于控制活动流,充当协调者。
- 用途:管理系统中各个部分的交互和流程,确保活动按预期进行。
对象是系统中基本的封装单位,包含对象名、属性和方法。类是对象的模板,封装了属性和操作。类可以分为实体类、接口类和控制类,分别用于描述现实中的实体、提供用户与系统的交互方式以及控制系统活动流。
🦋1.4 抽象
抽象是通过特定的实例抽取共同特征以后形成概念的过程。它强调主要特征,忽略次要特征。在面向对象开发中,一个对象是现实世界中一个实体的抽象,而一个类是一组对象的抽象。抽象是一种单一化的描述,它强调给出与应用相关的特性,同时抛弃不相关的特性。
总结抽象的关键点:
- 抽象是将实例中的共同特征提炼出来形成概念的过程。
- 它强调主要特征,忽略次要特征,有助于简化问题。
- 对象是现实世界中实体的抽象表示,类是一组对象的抽象描述。
- 抽象化是为了突出与应用相关的特性,舍弃不相关的特性。
🦋1.5 封装
封装是一种信息隐蔽技术,它将相关的概念组成一个单元模块,并通过一个名称来引用。在面向对象编程中,封装是将数据和基于数据的操作封装成一个整体对象的过程。
要点总结:
- 封装是信息隐蔽技术,将相关的概念组合成一个单元模块。
- 通过封装,可以隐藏对象的内部细节,只暴露必要的接口供外部使用。
- 面向对象封装将数据和基于数据的操作封装成一个整体对象,提高了代码的安全性和可维护性。
- 封装性有助于简化复杂性,使代码更易于理解和维护。
🦋1.6 继承
继承是面向对象编程中表示类之间层次关系(父类与子类)的概念,使得一个类可以继承另一个类的特性。
关键要点总结如下:
- 继承是面向对象编程中非常重要的概念,它允许一个类(子类)基于另一个类(父类)创建新类。
- 子类继承了父类的属性和方法,可以在不重复编写代码的情况下重用父类的功能。
- 继承建立了类之间的层次关系,子类可以拥有父类的所有特征,并且可以在此基础上添加新的特征或行为。
- 通过继承,可以实现代码的重用和扩展,提高代码的可维护性和可扩展性。
- 继承的概念符合现实生活中的分类和组织方式,使得面向对象程序设计更加灵活和高效。
🦋1.7 多态
多态是面向对象编程中的一个重要概念,它指的是不同的对象接收相同的消息时可以产生完全不同的结果。多态性包括参数多态、过载多态、包含多态和强制多态这四种类型。
以下是关于多态的要点总结:
- 参数多态:参数多态指的是在一个函数或方法的参数中可以接受不同类型的参数,并且根据参数的类型执行不同的操作。
- 过载多态:过载多态类似于函数重载,即同一个函数名可以有不同的含义或参数列表。
- 包含多态:包含多态是指父类的引用可以指向子类的对象,通过这种方式实现对不同类型对象的通用操作。
- 强制多态:强制多态指的是通过强制类型转换将一个对象当作另一个类型的对象来处理,以实现特定的操作。
多态性由继承机制支持,通常将通用的消息放在抽象层,而具体不同的功能实现放在具体类的低层。这种设计可以提高代码的灵活性和可扩展性,使得程序能够更好地适应变化和扩展。
🦋1.8 其他概念
-
接口:描述对操作规范的说明,只说明操作应该做什么,而没有定义操作如何做。接口定义了一组方法的名称、参数和返回类型,由类来实现这些方法以满足接口的规范。
-
消息:体现对象间的交互,通过它向目标对象发送操作请求。在面向对象编程中,对象之间通过消息传递来进行通信和交互。
-
覆盖:子类在原有父类接口的基础上,用适合于自己要求的实现去替换父类中的相应实现。即在子类中重定义一个与父类同名同参数的方法,实现子类对父类方法的覆盖。
-
函数重载:函数重载是指同一个类中可以有多个同名方法,它们的参数列表或参数类型不同。与覆盖不同,函数重载与子类父类无关,主要是为了提供多种不同参数的方法。
-
绑定:是一个把过程调用和响应调用所需要执行的代码结合的过程。在一般的程序设计语言中,绑定可以是静态绑定(在编译时进行)或动态绑定(在运行时进行)。静态绑定在编译时确定调用的具体代码,而动态绑定则在运行时根据对象的实际类型确定调用的代码。
🚀二、练习
🔎1.题目一
🔎2.题目二
🔎3.题目三
🔎4.题目四
🔎4.题目五
🚀感谢:给读者的一封信
亲爱的读者,
我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。
如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。
我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。
如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。
再次感谢您的阅读和支持!
最诚挚的问候, “愚公搬代码”
- 点赞
- 收藏
- 关注作者
评论(0)