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

单一职责原则:一个类最好只做一件事
开放封闭原则:对扩展开放、对修改封闭
里氏替换原则:子类必须能够替换其基类
依赖倒置原则:程序要依赖于抽象接口,而不是具体的实现
接口隔离原则:使用多个小的专门的接口,而不要使用一个大的总接口
目录
相关文章
|
22天前
|
搜索推荐 Java
Java的面向对象特性主要包括封装、继承和多态
【4月更文挑战第5天】Java的面向对象特性主要包括封装、继承和多态
15 3
|
16天前
|
Java 调度
Java中常见锁的分类及概念分析
Java中常见锁的分类及概念分析
16 0
|
16天前
|
Java
Java中ReentrantLock中tryLock()方法加锁分析
Java中ReentrantLock中tryLock()方法加锁分析
13 0
|
1月前
|
人工智能 监控 算法
java智慧城管源码 AI视频智能分析 可直接上项目
Java智慧城管源码实现AI视频智能分析,适用于直接部署项目。系统运用互联网、大数据、云计算和AI提升城市管理水平,采用“一级监督、二级指挥、四级联动”模式。功能涵盖AI智能检测(如占道广告、垃圾处理等)、执法办案、视频分析、统计分析及队伍管理等多个模块,利用深度学习优化城市管理自动化和智能化,提供决策支持。
223 4
java智慧城管源码 AI视频智能分析 可直接上项目
|
2天前
|
安全 Java
Java基础&面向对象&继承&抽象类
Java基础&面向对象&继承&抽象类
|
3天前
|
Java
【Java基础】详解面向对象特性(诸如继承、重载、重写等等)
【Java基础】详解面向对象特性(诸如继承、重载、重写等等)
8 0
|
8天前
|
安全 Java 机器人
《Java 简易速速上手小册》第2章:面向对象的 Java(2024 最新版)
《Java 简易速速上手小册》第2章:面向对象的 Java(2024 最新版)
19 0
|
11天前
|
存储 Java
Java基础教程(7)-Java中的面向对象和类
【4月更文挑战第7天】Java是面向对象编程(OOP)语言,强调将事务抽象成对象。面向对象与面向过程的区别在于,前者通过对象间的交互解决问题,后者按步骤顺序执行。类是对象的模板,对象是类的实例。创建类使用`class`关键字,对象通过`new`运算符动态分配内存。方法包括构造函数和一般方法,构造函数用于对象初始化,一般方法处理逻辑。方法可以有0个或多个参数,可变参数用`类型...`定义。`this`关键字用于访问当前对象的属性。
|
15天前
|
存储 Java 编译器
对象的交响曲:深入理解Java面向对象的绝妙之处
对象的交响曲:深入理解Java面向对象的绝妙之处
47 0
对象的交响曲:深入理解Java面向对象的绝妙之处
|
16天前
|
Java
Java中关于ConditionObject的signal()方法的分析
Java中关于ConditionObject的signal()方法的分析
22 4