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)。

单一职责原则:一个类最好只做一件事
开放封闭原则:对扩展开放、对修改封闭
里氏替换原则:子类必须能够替换其基类
依赖倒置原则:程序要依赖于抽象接口,而不是具体的实现
接口隔离原则:使用多个小的专门的接口,而不要使用一个大的总接口
目录
相关文章
|
1月前
|
存储 Java
【编程基础知识】 分析学生成绩:用Java二维数组存储与输出
本文介绍如何使用Java二维数组存储和处理多个学生的各科成绩,包括成绩的输入、存储及格式化输出,适合初学者实践Java基础知识。
72 1
|
22天前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
40 2
|
23天前
|
Java 关系型数据库 数据库
面向对象设计原则在Java中的实现与案例分析
【10月更文挑战第25天】本文通过Java语言的具体实现和案例分析,详细介绍了面向对象设计的五大核心原则:单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则帮助开发者构建更加灵活、可维护和可扩展的系统,不仅适用于Java,也适用于其他面向对象编程语言。
14 2
|
1月前
|
Java
让星星⭐月亮告诉你,Java synchronized(*.class) synchronized 方法 synchronized(this)分析
本文通过Java代码示例,介绍了`synchronized`关键字在类和实例方法上的使用。总结了三种情况:1) 类级别的锁,多个实例对象在同一时刻只能有一个获取锁;2) 实例方法级别的锁,多个实例对象可以同时执行;3) 同一实例对象的多个线程,同一时刻只能有一个线程执行同步方法。
19 1
|
1月前
|
小程序 Oracle Java
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
这篇文章是关于JVM基础知识的介绍,包括JVM的跨平台和跨语言特性、Class文件格式的详细解析,以及如何使用javap和jclasslib工具来分析Class文件。
45 0
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
|
1月前
|
Java
如何从Java字节码角度分析问题|8月更文挑战
如何从Java字节码角度分析问题|8月更文挑战
|
1月前
|
安全 网络协议 Java
Java反序列化漏洞与URLDNS利用链分析
Java反序列化漏洞与URLDNS利用链分析
51 3
|
27天前
|
存储 Java 编译器
[Java]基本数据类型与引用类型赋值的底层分析
本文详细分析了Java中不同类型引用的存储方式,包括int、Integer、int[]、Integer[]等,并探讨了byte与其他类型间的转换及String的相关特性。文章通过多个示例解释了引用和对象的存储位置,以及字符串常量池的使用。此外,还对比了String和StringBuilder的性能差异,帮助读者深入理解Java内存管理机制。
19 0
|
2月前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
35 4
|
2月前
|
Java
接口和抽象类【Java面向对象知识回顾②】
本文讨论了Java中抽象类和接口的概念与区别。抽象类是不能被实例化的类,可以包含抽象和非抽象方法,常用作其他类的基类。接口是一种纯抽象类型,只包含抽象方法和常量,不能被实例化,且实现接口的类必须实现接口中定义的所有方法。文章还比较了抽象类和接口在实现方式、方法类型、成员变量、构造方法和访问修饰符等方面的不同,并探讨了它们的使用场景。
接口和抽象类【Java面向对象知识回顾②】