这是我参与11月更文挑战的第9天,活动详情查看:2021最后一次更文挑战
前言
面向对象是Java、C++等等许多热门语言的重要特性,那么什么是面向对象呢?今天我们来简单的理解一下
什么是面向对象
在面向对象的思想中所有的事物都为对象,那么什么是对象呢?
对象是一个自包含的实体,用一组可识别的特性和行为来标识
面向对象编程,英文名叫做Object-Oriented Programming(OOP)
之前我们在学习C语言的时候,老师会说C语言是面向过程编程,那什么是面向过程,什么是面向对象呢?
简单来说,面向过程就像是一个木匠在制作家具的时候,专注的怎么来制作家具,也就是制作家具的过程;而面向对象,则是木匠专注于家具本身。
同时也引出了一个新的概念---类
类
类是具有相同属性和功能的对象的集合,需要由class关键字定义
类的命名规范
类的命名规范使用的是大驼峰命名法,及单词首字母大写
面向对象的三大特性
面向对象的三大特性:封装、继承、多态
一、封装:
-
对象是属性和方法的整体;
-
类的属性是私有的,方法一般是公开的,数据是封装的,处理数据的方法公开使用。
二、继承(is_a)
依赖关系(关联关系):A类调用B类的方法完成一种功能,称A类依赖于B类
聚合关系:A类由B类的对象组成的 如:(公司、职工) ||( 人、心脏)
组合关系:是一种强聚合,A类由B类对象组成,并且A类对象的生命周期和B类对象的生命周期是一样的
OOD:面向对象设计
OOA:面向对象分析方法
子类继承父类中的所有的属性和方法
访问修饰符:
public:公有继承 private:私有继承 protected:保护继承
调用格式:
1、调用父类的构造函数:自动调用
2、显式调用父类的构造函数(需要传参)
子类构造函数(形参表):父类构造函数名(实参表)
3、 继承具有传递性
三、多态:(要想实现多态的思想,需要使用声明父类对象)
如果出现 父类对象=子类对象 //意义是将子类的各个属性值赋值给对应的父类对象属性值
多态的应用:开闭原则:对扩展开发,对修改封闭,即出现新问题时,不去修改原来已经写好的源码,而是创建新的子类,扩展新的功能。