Java核心技术之面向对象

简介: 本讲介绍什么是面向对象,面向对象是java特有的吗?为什么我们在开发代码的时候要面向对象编程

image.png

前言:📫 作者简介:小明java问道之路,专注于研究计算机底层,就职于金融公司后端高级工程师,擅长交易领域的高安全/可用/并发/性能的设计和架构📫

🏆 Java领域优质创作者、阿里云专家博主、华为云享专家🏆

🔥 如果此文还不错的话,还请👍关注点赞收藏三连支持👍一下博主哦

本文导读

本讲介绍什么是面向对象,面向对象是java特有的吗?为什么我们在开发代码的时候要面向对象编程

第一节:什么是面向对象?

面向对象八股文:面向对象是一种程序设计范型,其基本思想是使用对象、类、继承、封装、聚合、关联、多态性等概念进行程序设计;面向对象是一种软件开发中的策略,是一套关于如何看待软件系统和现实生活的关系,研究问题并进行问题求解,以及如何系统构建软件方法。

通过计算机的工作模型(冯诺依曼体系结构)找面向对象编程的启发

中央处理器cpu:用于执行计算机指令以及完成计算任务,包括控制器、运算器、以及寄存器等

内部存储器和主存储器:内存,用于存储计算机指令和数据,由许存储单元组成,每个存储单元都有一个地址(储存器)

外围设备:外设,提供了计算机与外界的接口(输入输出设备、外部存储)

image.pngimage.gif


我们看到冯·诺依曼体系结构中,程序从外存装入内存,cpu从内存逐条解析指令,程序所需要的数据从内存或外存获取,程序执行中间结果保存在内存中,最终结果通过外设输出结果。

可以总结为,计算机由 CPU - 内存 - 外设 组成,同时数据通过 外存 -> 内存 -> 运算  (产生结果) -> 储存 -> 显示,程序的流转 大致为:存储 和 执行

那么,将存储理解为数据结构,执行理解为算法,就是我们常说的面向过程设计。

面向过程是以功能为中心,基于功能分解的程序设计模型,一个过程是程序是由一些子程序构成,子程序描述的一系列操作,每个子程序对应一个子功能,实现了功能抽象。

当我们之关心数据(对象)的流转,比如数据:“我要处理然后显示,别的我不管”,程序:“emmm,好吧” 于是面向对象诞生了,可以看出,面向对象不关心过程是如何的

两者做个对比

面向过程处理数据:运算 -> 储存 -> 显示(关注数据和过程)

面向对象处理数据:存储类(里面可以存储,存储之前可以运算)、显示类、运算类、主流程(分离关注点)

面向对象的程序,通过由单个能够起到子程序作用的单元或对象组合而成,使主流程的责任分散

第二节:为什么要面向对象?

面向对象可以降低复杂度,把一个个流程,抽象成系统中的对象,作为系统中的基本构成单位,充分利用现实思维解决问题,运用抽象、分配、继承、聚合、封装、关联等原则,使开发者有效思考问题,并建立对象关系和交流。

封装(encapsulation):把对象的属性和操作结合成⼀个独立的系统单位,并尽可能隐蔽对象的内部细节,使对象能够集中⽽完整地描述并对应⼀个具体的事物,体现了事物的相对独立性,使对象外部不能随意存取对象的内部数据,避免了外部错误对它的“交叉感染”,对象的内部的修改对外部的影响很小,减少了修改引起的“波动效应”

封装的缺陷:编程繁琐,执行效率降低

抽象(abstract):只关注与当前目标有关的本质特征,从而找出事物的共性,叫做抽象,并且抽象是形成概念的基本手段(忽略事物之间的差别)

分类(classification):把具有共性的事物划分为一类叫做分类(注意事物之间的差别)

继承(inheritance):子类可以拥有其父类的全部属性与操作,称作特殊类对父类的继承,具有自动的拥有、高复用的特点

聚合(aggregation):聚合刻画了现实事物之间的构成关系或拥有关系(通俗来说就是当前类具有其他类的对象)

多态(polymorphism):

重写(override):在子类中对继承来的属性或操作重新定义其实现

重载(Overload):方法重载是让类以统一的方式处理不同类型数据的一种手段。(重载(Overload)的方法是用静态绑定完成,而重写(Override)的方法则使用动态绑定完成。)

泛型(generic):操作参量的类型可以是参数化的

两种绑定方式:静态绑定和动态绑定,重载(Overload)的方法是用静态绑定完成,重写(Override)的方法则使用动态绑定完成。

目录
打赏
0
0
0
0
85
分享
相关文章
单位网络监控软件:Java 技术驱动的高效网络监管体系构建
在数字化办公时代,构建基于Java技术的单位网络监控软件至关重要。该软件能精准监管单位网络活动,保障信息安全,提升工作效率。通过网络流量监测、访问控制及连接状态监控等模块,实现高效网络监管,确保网络稳定、安全、高效运行。
91 11
Java注解的底层源码剖析与技术认识
Java注解(Annotation)是Java 5引入的一种新特性,它提供了一种在代码中添加元数据(Metadata)的方式。注解本身并不是代码的一部分,它们不会直接影响代码的执行,但可以在编译、类加载和运行时被读取和处理。注解为开发者提供了一种以非侵入性的方式为代码提供额外信息的手段,这些信息可以用于生成文档、编译时检查、运行时处理等。
93 7
智慧产科一体化管理平台源码,基于Java,Vue,ElementUI技术开发,二开快捷
智慧产科一体化管理平台覆盖从备孕到产后42天的全流程管理,构建科室协同、医患沟通及智能设备互联平台。通过移动端扫码建卡、自助报道、智能采集数据等手段优化就诊流程,提升孕妇就诊体验,并实现高危孕产妇五色管理和孕妇学校三位一体化管理,全面提升妇幼健康宣教质量。
47 12
SaaS云计算技术的智慧工地源码,基于Java+Spring Cloud框架开发
智慧工地源码基于微服务+Java+Spring Cloud +UniApp +MySql架构,利用传感器、监控摄像头、AI、大数据等技术,实现施工现场的实时监测、数据分析与智能决策。平台涵盖人员、车辆、视频监控、施工质量、设备、环境和能耗管理七大维度,提供可视化管理、智能化报警、移动智能办公及分布计算存储等功能,全面提升工地的安全性、效率和质量。
CRaC技术助力ACS上的Java应用启动加速
容器计算服务借助ACS的柔性算力特性并搭配CRaC技术极致地提升Java类应用的启动速度。
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
2496 2
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
建筑施工一体化信息管理平台源码,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
智慧工地云平台是专为建筑施工领域打造的一体化信息管理平台,利用大数据、云计算、物联网等技术,实现施工区域各系统数据汇总与可视化管理。平台涵盖人员、设备、物料、环境等关键因素的实时监控与数据分析,提供远程指挥、决策支持等功能,提升工作效率,促进产业信息化发展。系统由PC端、APP移动端及项目、监管、数据屏三大平台组成,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
113 7
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
192 1
|
3月前
|
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
44 1
【技术开发】接口管理平台要用什么技术栈?推荐:Java+Vue3+Docker+MySQL
该文档介绍了基于Java后端和Vue3前端构建的管理系统的技术栈及功能模块,涵盖管理后台的访问、登录、首页概览、API接口管理、接口权限设置、接口监控、计费管理、账号管理、应用管理、数据库配置、站点配置及管理员个人设置等内容,并提供了访问地址及操作指南。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等