【C++学习笔记】面向对象基本概念

0x00 前言

文章中的文字可能存在语法错误以及标点错误,请谅解;

如果在文章中发现代码错误或其它问题请告知,感谢!

本文档为个人边学习边记录的C++笔记,非教程,笔记中会存在引用他人文章内容的部分,被引用的原文不会被特殊标记出来,但会在参考文档中给出原文链接。

0x01 面向对象方法

1.面向对象方法由来

面向对象方法出现以前,设计程序的方法采用的是面向过程的程序设计方法。因为随着计算机的硬件和性能越来越强大,用途也更加广泛,程序也就也来越复杂和庞大,所以为了使用程序很好的解决复杂问题,20世纪60年代产生结构化程序设计思想,该思想是面向过程的程序设计方法,结构化程序设计的思路是
·自顶向下、逐步求精;
·其程序结构是按功能划分为若干个基本模块,这些模块形成一个树状结构;
·各模块之间的关系尽可能简单,在功能上相对独立;
·每一模块内部均是由顺序、选择和循环3中基本结构组成;
·其模块化实现的具体方法是使用子程序。

结构化程序设计(面向过程设计)把数据和处理数据的过程分离成相互独立的实体,当数据结构改变时,所有相关的处理过程都要进行相应的修改,每一种相对于老问题的新方法都要带来额外的开销,程序的可重用性差。

一个好软件可以随时响应用户的任何操作,而不是按照既定的步骤来使用,比如一个好的文字处理软件可以随心所欲的使用,软件功能很难用过程来描述和实现,如果用面向过程的方法,开发和维护都很困难。

所以提出面向对象设计方法。面向对象设计方法可以将数据以及对数据操作的方法放在一起,作为一个相互依存、不可分离的整体——对象。对同类型的对象抽出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。这样,程序模块间的关系,更为简单,程序模块的独立性、数据的安全性就有了良好的保证。

2.面向对象的基本概念

1)对象
面向对象方法的对象,是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位。对象由一组属性和一组行为构成。属性是静态特征,可以用某种数据来描述;行为是动态特征,表示对象所表现的行为或具有的功能。

2) 类
类是具有相同属性和服务的一组对象的合集。分类所依据的原则是抽象,即忽略事物的非本质特征,只注意那些与当前目标有关的本质特征,从而找出事物的共性,把具有共同性质的事物划分为一类,得出一个抽象的概念。

3)封装
封装是一个面向对象方法的一个重要原则,就是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。这里有两个含义:对象的全部属性和服务结合在一起,形成一个不可割裂的独立单位;尽可能隐蔽对象的内部细节,对外形成一个边界(屏障),只保留有限的对外接口使之与外部发生联系。

4)继承
特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。继承类对于软件复用有着重要的意义,使特殊类继承一般类,本身就是软件复用。不仅与此,如果将开发好的类作为构件放到构件库中,在开发新系统时便可以直接使用或继承使用。

5)多态性
多态性是指在一般类中定义的属性或行为,被特殊类继承后,可以具有不同的数据类型或表现出不同的行为。

《C++语言程序设计(第4版)》书上所有章节出现的示例源代码随着学习的深入会陆续上传至github,代码为个人手动输入并通过编译,有的示例代码可能没有注释:https://github.com/fyw4/C-plus-plus-learning-example
以上。

参考文档:
郑莉 董渊 何江舟.《C++语言程序设计(第4版)》[M].北京:清华大学出版社。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值