类和对象01 简单认识类和对象

接下来我们就开始学习C++的部分

首先 我们要搞清楚C++语言是一门面向对象的编程语言

 

问: 首先什么是编程思想?

答: 所谓的编程思想 就是人们用计算机来解决实际问题的时候的一种思维方式 或者说是一种基本的策略

常见的编程思想有面向过程(例如c语言)和面向对象(例如c++),很多语言的语法各不相同 但是基本的编程思想却是差不多的

 

举个简单的例子:大家去学校“报名上学”这件事,可以分成哪些步骤?

首先来看面向过程的编程思想:其实就是分析好以下这些步骤 然后依次执行即可

                        

再来看看面向对象的编程思想 所谓的面向对象 就是在编程的时候尽可能的去模拟现实世界

 

现实世界中,任何一个操作(动作)或者是任何一个业务逻辑的实现都需要一个实体去完成,实体就是操作(动作)的支配者 没有实体就没有动作发生

 

接下来我们来思考一个问题:上述报名的每一个步骤都有哪些动词?

答:提出 提供 缴 分配 增加

有动词就一定有实现这个动词的实体

 

所谓的模拟现实世界,就是使计算机的编程语言与解决相关的业务逻辑的时候,与真实的现实世界中的业务逻辑的发生保持一致 需要使某个动作都是依赖于一个实体的“动作/操作/行动”,可以看做是一个一个的实体在发挥其各自的“能力”并在内部进行协调有序的调用过程

如果采用面向对象的思想,解决上面的报名的问题应该如下:

1,分析哪些动作是由哪些实体发出的!

提出 提供 缴 分配 增加

学生提出报名; 学生缴费; 学校收费; 老师分配教室; 班级增加学生信息

于是在整个的报名过程中,一共出现了四个实体:学生、x学校、老师、班级

在现实中的一个具体的实体,就是计算机编程中的一个具体的对象

2,定义这些实体,为其增加相应的属性和功能(功能就是能完成的动作,在面向对象的专业术语中叫作方法,其实也就是函数)

1,让实体,去执行相应的功能或动作

学生提出报名

学生缴费

机构收费

教师分配教室

班级增加学生信息

班级管理学生信息

所以说,面向过程主要是针对功能,但是面向对象主要是针对能够实现这些功能的主体(实体)

所以我们要从面向过程到面向对象有一个编程思想的转变:以前写代码,首先想到的是需要实现什么功能——可以调用系统函数,也可以自己定义函数,或者按部就班的执行步骤,然而以后写代码,首先想到的是应该有什么样的实体(主体)去完成什么样的功能,再把这些实体的属性和功能进行封装,最后才去实现这些实体的功能

面向对象不是一种技术,而是一种思想,是一个解决问题的最根本的思维方式

所以,面向对象的核心思想是:不仅仅是简单的将某些功能进行封装,而是对调用该功能的主体进行封装,如果一个实体拥有多个功能的话,在使用的过程中,先得到相关的对象,再使用对象去调用其相关的功能

 

接下来我们用一张图来表示:

oop(面向对象的思想):模拟现实

 

那么什么是类?什么是对象呢?

 

类:对某一类对象的统称。比如:花类、鸟类、人类、动物类、汽车类。泛指一大群有相同特质的东西。

对象:对类的具体实例化出来的东西。比如 鸟类中的具体一个对象 鹦鹉,比如自己家养的猫等。就是对类的具体实例化。

 

实体转换成描述为抽象的过程;

类(class)实例化一个对象;

 

成员变量对对象来说是独享的(好比一个房子的长宽高对每个房子来说都是不同的)

属性对实体来说是独享的(名字对每一个人来说都是独享的)

 

成员方法对对象来说是共享的;

行为对实体来说是共享的(人都要吃饭)

 

因此可以让每个对象开辟不同的存在空间放自己成员变量的空间

从而实现共享行为 独享属性

 

总结来说:类是事物的抽象。类的对象就是类的具体化,实际化。

 

C++的三大特征:封装 继承 多态

 

首先来简单了解一下这三种特征

 

封装:根据实际情况对类进行属性、方法的包装。对外隐藏信息。把实际的过程在类外面不能看到,只给一个接口给外界。

 

继承:减少冗余,如果有几个类中有相同的属性或方法,可以通过继承获取到。子类可以继承父类的所有属性和方法。

 

多态:多态一词最初来源于希腊语,意思是具有多种形式或形态的情形,在C++中是指同样的消息被不同类型的对象接收时导致不同的行为,这里讲的消息就是指对象的成员函数的调用,而不同的行为是指不同的实现。也就是调用了不同的函数。

 

到此我们对C++有一个初步的了解了

猜你喜欢

转载自blog.csdn.net/xiaobaibai915/article/details/84557494