java面向对象和面向过程分析

简介: java面向对象和面向过程分析

1.通俗理解

面向过程

通俗的说法就是把问题分解成一个一个步骤,每个步骤用函数实现,进行依次调用。

在进行面向过程编程的时候,不需要考虑那么多,上来先定义一个函数,然后使用各种诸如if-else、for-each等方式进行代码执行。最典型的用法就是实现一个简单的算法,比如实现冒泡排序。

面向对象

通俗来说就是把问题分解成一个一个步骤,对每个步骤进行相应的抽象,形成对象,通过不同对象之间的调用,组合解决问题。

在进行面向对象进行编程的时候,要把属性、行为等封装成对象,然后基于这些对象及对象的能力进行业务逻辑的实现。

比如造一辆汽车,首先要把汽车的各种属性(品牌、发动机、轮胎、方向盘等)、各种行为(启动、刹车、开灯等)这些所有的汽车的共性抽象成一个Car类,造一辆汽车你就需要继承抽象类Car,去实现父类Car的一系列抽象方法,比如组装方法,指定轮胎为XX,发动机为XX等,同时轮胎、发动机又是一个抽象对象,分别由子类继承实现(比如对应安装方法),比如XX牌轮胎,XX牌发动机;通过调用汽车对象的组装方法(轮胎、发动机的安装方法)等一系列对象间的调用你的汽车就造好了;接着造出来的汽车具备哪些行为,就要去实现父类的启动方法、停车方法等。

比如司机开车这个业务,就只需要调用司机对象的开车方法,汽车对象的启动方法。通过两个对象的调用完成了这一业务。

2.专业理解

面向过程

是一种以过程为中心的编程方法。它将程序看作是一系列按照特定顺序执行的过程或函数的集合。面向过程的编程思想更加注重解决问题的步骤和流程,通过定义一系列的函数和数据结构来实现程序的功能。面向过程编程常常采用顺序、选择和循环等基本结构来组织代码逻辑。面向过程的编程方法简单直观,适用于较小规模的问题和对性能要求较高的场景。

面向对象

是一种以对象为中心的编程方法。它将数据和操作数据的方法封装在一起,形成一个对象。对象可以通过定义类来创建,类是对象的模板,描述了对象具有的属性和行为。面向对象的编程强调代码的组织性、可重用性和灵活性。它通过封装、继承和多态等机制来实现代码的模块化和复用,提高了代码的可维护性和扩展性。面向对象的编程更注重问题的分解和抽象,将复杂的问题分解为多个相互协作的对象,从而更符合现实世界的建模

3.面向对象的三大基本特征

三大基本特征:封装、继承、多态。

封装

封装就是把现实世界中的客观事物抽象成一个Java类,然后在类中存放属性和方法。

如封装一个汽车类,其中包含了发动机轮胎底盘等属性,并且有启动、刹车等方法。

继承

像现实世界中儿子可以继承父亲的财产、样貌、行为等一样,编程世界中也有继承,继承的主要目的就是为了复用。子类可以继承父类,这样就可以把父类的属性和方法继承过来。

如Dog类可以继承Animal类,继承过来嘴巴颜色等属性, 吃东西奔跑等行为。

多态

多态是指在父类中定义的方法被子类继承之后,可以通过重写,使得父类和子类具有不同的实现,这使得同一个方法在父类及其各个子类中具有不同含义。

如老年机,跟智能手机,它们都继承了手机类,但是同样的文字输入方法一个是按按键实现一个是触屏实现

继承和实现

在Java中,接口可以继承接口,抽象类可以实现接口,抽象类也可以继承具体类。普通类可以实现接口,普通类也可以继承抽象类和普通类。

Java支持多实现,但是只支持单继承。即一个类可以实现多个接口,但是不能继承多个类

4.面向对象的五大基本原则

五大基本原则:单一职责原则(Single-Responsibility Principle)、开放封闭原则(Open-Closed principle)、Liskov替换原则(Liskov-Substituion Principle)、依赖倒置原则(Dependency-Inversion Principle)和 接口隔离原则(Interface-Segregation Principle)。

单一职责原则:一个类最好只做一件事
开放封闭原则:对扩展开放、对修改封闭
里氏替换原则:子类必须能够替换其基类
依赖倒置原则:程序要依赖于抽象接口,而不是具体的实现
接口隔离原则:使用多个小的专门的接口,而不要使用一个大的总接口
目录
相关文章
|
2月前
|
存储 Java 开发者
【潜意识Java】深入详细理解分析Java中的toString()方法重写完整笔记总结,超级详细。
本文详细介绍了 Java 中 `toString()` 方法的重写技巧及其重要
64 10
【潜意识Java】深入详细理解分析Java中的toString()方法重写完整笔记总结,超级详细。
|
2月前
|
Java 应用服务中间件 API
【潜意识Java】javaee中的SpringBoot在Java 开发中的应用与详细分析
本文介绍了 Spring Boot 的核心概念和使用场景,并通过一个实战项目演示了如何构建一个简单的 RESTful API。
56 5
|
2月前
|
人工智能 自然语言处理 搜索推荐
【潜意识Java】了解并详细分析Java与AIGC的结合应用和使用方式
本文介绍了如何将Java与AIGC(人工智能生成内容)技术结合,实现智能文本生成。
233 5
|
2月前
|
SQL Java 数据库连接
【潜意识Java】Java中JDBC过时方法的替代方案以及JDBC为什么过时详细分析
本文介绍了JDBC中一些常见过时方法及其替代方案。
56 5
|
2月前
|
SQL Java API
|
2月前
|
Java 数据库连接 数据库
【潜意识Java】深度分析黑马项目《苍穹外卖》在Java学习中的重要性
《苍穹外卖》项目对Java学习至关重要。它涵盖了用户管理、商品查询、订单处理等模块,涉及Spring Boot、MyBatis、Redis等技术栈。
187 4
|
2月前
|
Java 数据库连接 数据库
【潜意识Java】使用 Ruoyi 框架开发企业级应用,从零开始的实践指南和分析问题
本文介绍了基于Spring Boot的开源企业级框架Ruoyi,涵盖环境搭建、项目初始化及用户管理模块的创建。
249 4
|
2月前
|
SQL Java 数据库连接
【潜意识Java】深入理解MyBatis的Mapper层,以及让数据访问更高效的详细分析
深入理解MyBatis的Mapper层,以及让数据访问更高效的详细分析
114 1
|
3月前
|
缓存 算法 搜索推荐
Java中的算法优化与复杂度分析
在Java开发中,理解和优化算法的时间复杂度和空间复杂度是提升程序性能的关键。通过合理选择数据结构、避免重复计算、应用分治法等策略,可以显著提高算法效率。在实际开发中,应该根据具体需求和场景,选择合适的优化方法,从而编写出高效、可靠的代码。
70 6
|
4月前
|
监控 算法 Java
jvm-48-java 变更导致压测应用性能下降,如何分析定位原因?
【11月更文挑战第17天】当JVM相关变更导致压测应用性能下降时,可通过检查变更内容(如JVM参数、Java版本、代码变更)、收集性能监控数据(使用JVM监控工具、应用性能监控工具、系统资源监控)、分析垃圾回收情况(GC日志分析、内存泄漏检查)、分析线程和锁(线程状态分析、锁竞争分析)及分析代码执行路径(使用代码性能分析工具、代码审查)等步骤来定位和解决问题。