什么是面向对象?


Java语言最大的特点在于面向对象的编程设计。Java也是从面向过程逐渐传向面向对象。

上一节我们脑海中已经有了对象的概念,这节课我们来从以下几个方面全方位修习面向对象这一部分。(这节属于八股文内容,需要熟知,很枯燥,但是很重要)

在修习面向对象之前,我们要知道,在面向对象还未出世之前,存在于这个世界上的是什么?相信学过C语言的人有个大概了解 面向过程

什么是面向过程?

面向过程是指自顶而下的编程模式,其意思就是把问题分解为步骤,每一个步骤使用函数按顺序实现。更多的情况下是不会做出重用的设计模式为模块化设计,并且可以进行重用配置。

举个砍树的例子:

对于面向过程来说:拿起斧头-->砍树-->判断树有没有倒(没倒)-->砍树-->判断(倒了)-->停止砍树

面向过程相当于是用许多的动作(函数、方法)结合起来的编码形式。代码体系比较庞大,因为要不断的进行动作的创造。

我们来看看面向对象有什么不一样的地方

什么是面向对象?

在面向对象的设计里面更多情况下考虑的是标准,在使用的时候跟据标准进行拼装。
面向对象是指**高度抽象化事物的编程模式 **,其意义是我通过定义对象,所有的动作不在单独出现,而是依附于具体对象,通过对象及其动作(方法、函数)来实现某事件。

还是用砍树来举例子:

创建斧头的对象负责砍树
创建树的对象负责判断树有没有倒地
砍树的流程还是一样,但是他们只创建一次,并且可以重复使用!!!

从上面对两种编程模式的对比学习,你应该心里对而者有个底。目前来说,面向对象的编程模式使用较多,但是这并不能说明面向过程不好,各有各的好处,应根据需求去选择编码模式。
资料上对于二者的对比如下:
面向过程:占用资源相对低,速度相对快。
面向对象:占用资源相对高,速度相对慢。

面向对象的主要特征

一.封装性

封装性就是内部的属性和方法在外部不可见,是对象和类的主要特征,在一个对象内部,有些属性和方法是私有的(private),指内部可见外部不可见。

举例说明:你买了一台电视机,一般情况下你并不需要去知道电视机内部构造组成(私有属性),电视机内部电路怎么运行的(私有方法),你只需要了解电视机上面有什么按钮(公有属性),哪个按钮是用来打开电视?(公有方法)

封装性大大提高了运行代码的安全性

二.继承性

继承性是指在原有结构的基础上进行扩充,使它可以使用原有功能,还有新功能。

还是电视机举例:最近"双人成行"这个游戏非常火!你觉得在电脑上玩屏幕较小,而且键盘手感较差。于是你购买了PS5和手柄连接到电视上和小女朋友一起玩。这里的PS5和手柄相当于是对电视功能的扩展,电视还能看电视,也可以玩游戏。

三.多态性

多态性是在继承性的基础上扩充而来的概念,指的是类型的转换处理。在继承性的基础上扩充而来的概念,指的是类型的转换处理。

就好比我电视上双人成行通关后,我换另一个游戏“艾尔登法环”来玩。

以上就是面向对象的主要内容,博主主要是以便于理解为主,通过理解让大家在自己脑中形成概念。(八股文内容确实枯燥,但是许多HR会考)

posted @ 2023-10-04 11:24  Melo70000  阅读(58)  评论(0编辑  收藏  举报