首页 > 其他分享 >什么是面向对象?

什么是面向对象?

时间:2023-10-04 11:33:48浏览次数:30  
标签:-- 什么 面向对象 对象 砍树 面向 继承性

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

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

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

什么是面向过程?

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

举个砍树的例子:

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

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

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

什么是面向对象?

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

还是用砍树来举例子:

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

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

面向对象的主要特征

一.封装性

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

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

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

二.继承性

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

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

三.多态性

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

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

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

标签:--,什么,面向对象,对象,砍树,面向,继承性
From: https://www.cnblogs.com/meloo/p/17742060.html

相关文章

  • DMA是什么?结构和例程详解?
    DMA(DirectMemoryAccess)是一种技术,它的主要功能是允许数据直接在内存和外部设备之间传输,而不需要通过CPU或其它芯片外设的干预。这使得CPU可以继续处理其它任务,而不需要等待数据传输完成。DMA控制器通常由硬件实现,它包括多个通道,每个通道都可以被配置为从不同的源地址传输到不同的......
  • 为什么懒汉式单例模式要加volatile修饰符
    publicclassLazySingleton{privateLazySingleton(){}privatevolatilestaticLazySingletoninstance;publicsynchronizedstaticLazySingletongetInstance(){if(instance==null){instance=newLazySi......
  • 铺先生:门店选址要观察什么?都清楚更方便经营
    关于门店选址要观察什么这个问题,一直都是困扰着很多想创业的朋友们的一个问题,但是只要大家多留意那些新门店选择的位置,大家就会发现,其实他们选址观察的因素也都大差不差。其实门店选址是一个需要考虑细节方面的问题,在选址上其实大方向都是一致的。下面就让小编来跟大家说一下那些门......
  • coreldraw是什么软件?2023有哪些功能特色呢?
    很多人都听过CorelDraw的名字,但不知道CorelDraw是什么样的软件。下面就让小编为大家详细介绍一下。coreldraw是什么软件CorelDraw2023是一款专业的图形设计软件。它的主要功能包括矢量图形和位图的编辑。用户可以利用其矢量图形编辑能力,设计各种图标、Logo等精细图形。同时,它也......
  • 线性混合模型为什么是多元高斯分布
    如何建立高斯模型,可以看图根据每类数据做一个高斯函数,然后做一个混合高斯密度函数。如果提取目标的话得把目标的概率函数提取出来。 ......
  • 什么企业适合建设数据中台?
    1前言2018年粗放企业管理模式和经营模式,如采购商品时,凭经验做出采购哪个商品的决策,已没法继续支撑企业高速增长,企业开始数字化转型,强调数据是企业增长新动力,应深入企业经营各环。数据需求爆发式增长,促进数据产品发展,在每个业务过程中,都有大量数据产品辅助运营完成日常工作。电商......
  • 什么是 Accessibility 设计领域的 Auto Focus
    AutoFocus技术深度解析在现代软件设计领域,Accessibility(可访问性)是一个不容忽视的重要方面。用户体验的提升以及对各种用户的需求都需要考虑到可访问性问题。在这个背景下,AutoFocus(自动聚焦)技术应运而生,成为提升用户体验的一个关键要素。本文将深入探讨AutoFocus技术的细节,并......
  • 什么是 Accessibility 设计领域的 Trap Focus
    TrapFocus是指在用户界面中焦点被限制在特定区域或元素内,用户不能通过键盘或其他输入设备将焦点移出这个区域。这是辅助功能和可访问性领域的一个关键概念,旨在确保用户可以轻松地与应用程序或网站的特定部分进行交互,而无需不断重新定位焦点。本文将详细解释TrapFocus的概念以......
  • 什么是 Accessibility 设计领域的 Escape Focus
    EscapeFocus是指在用户界面中的一种功能或设计模式,允许用户通过按下特定的键或进行特定的操作来将焦点从当前元素或区域移出。这是可访问性领域的一个重要概念,它为用户提供了在需要时自由导航和控制焦点的能力。在本文中,我将详细解释EscapeFocus的定义、重要性以及示例,以说明......
  • 什么是 Accessibility 设计领域的 Persist Focus
    PersistFocus:提供焦点状态的持久性在Web应用程序开发中,提供良好的可访问性是至关重要的。无障碍设计不仅使应用程序更易于使用,还可以确保广泛的用户群体都能够无障碍地访问您的内容。在这方面,"PersistFocus"(持久焦点)是一项非常有用的技术,它通过保持焦点状态来提高用户体验,尤......