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