c++是基于面向对象的语言,并不是纯面向对象的语言,因为它包含c的部分,c是面向过程的语言。
1.类和对象的概念
类:类是现实世界在计算机中的反应,它将数据和对下、这些数据的操作封装在一起(并没有开空间);
类的五大属性:抽象、封装、继承、重载、多态;
抽象:要求我们集中于事物的本质特征(内部状态和运动规律),而非具体细节或具体实现。
封装:封装防止了程序相互依赖性而带来的变动影响。对象间的相互联系和相互作用过程主要通过消息机制得以实现.。
继承:继承是类不同抽象级别之间的关系。类的定义主要有2种办法:归纳和演绎。
重载:重载指类的同名方法在给其传递不同的参数是可以有不同的运动规律。
多态(覆盖):多态性是指同名的方法可在不同的类中具有不同的运动规律。
1.通用的
a.参数的。最纯的多态。采用参数化模板,通过给出不同的类型参数,使得 一个结构有多种类型。
b.包含的。同样的操作可用于一个类型及其子类型。
2.特定的
a.过载的。(重载)
b.强制的。
类的三个访问限定符:public公有、protected保护、private私有
1.public公有的,类的成员可以从类的外部直接访问
2. protected/private :类成员不能从类的外面直接访问
3.类的每个访问限定符可以多次子啊类中使用,作用域为从该限定符开始到下一个限定符之前/类结束。
4.类中如果没有定义限定符,则默认为私有的private
5.类的访问限定符体现了类的封装性
对象:对象标识+属性+操作
-
对象是现实世界中某个实际存在的事物
-
它可以是有形的(比如一辆自行车),也可以是无形的(比如一项计划)
-
对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位
-
一个对象由一组属性和对这组属性进行操作的一组操作构成
2.类与对象的关系
类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。
调用类的过程称之为类的实例化,调用类的返回值称之为类的一个对象/实例。
3.面向对象
面向对象程序设计(OOP)是一种程序设计的泛型,同时也是一种程序开发的方法,它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。
面向对象体验感:
1)JS是一门基于对象的多泛式语言,可以使用面向过程进行开发,比如:获取元素,绑定事件,设置样式,动画等
2)可以使用面向对象的方式进行开发
面向过程:基于函数,封装函数;面向对象:关注点变成了对象;对象的概念:数据集,功能集
咱们来剥个栗子尝尝:
var work = {
toWork = function(){console.log('安排一个任务给老师')};
}
var work2 = {
toWork2 = function(){console.log('安排一个任务给班长')};
}
var work3 = {
toWork3 = function(){console.log('安排一个任务给组长')};
}
var work4 = {
toWork4 = function(){console.log('同学去完成这个任务')};
}
//完成一个任务
function workAll(){
work.toWork(); work2.toWork2();
work3.toWork3();
work4.toWork4();
}
再剥个栗子尝一尝:面向对象
“将大象放进冰箱里”
面向过程思想:强调的是一个过程:打开冰箱,存储大象,关闭冰箱
面向对象思想:强调的是这个冰箱对象:冰箱打开,冰箱存储大象,冰箱关闭我们把(打开,存储,关闭)的功能存储在冰箱这个对象中。
嘿嘿,看到这里是不是感觉理解的更深刻了呢🐷