美文网首页
什么是面向对象

什么是面向对象

作者: JerryLoveCoding | 来源:发表于2021-08-21 09:57 被阅读0次

面向过程

面向过程是一种以事件为中心的编程思想,编程的时候把解决问题的步骤分析出来,然后用函数把这些步骤实现,在一步一步的具体步骤中再按顺序调用函数。


面向过程

举个例子,一个下五子棋的程序:

下五子棋{

开始游戏();
while{

黑子先走();

绘制画面();

判断输赢();

轮到白子();

绘制画面();

if 判断输赢(){
  break
}
};


输出最后结果;

}

可见,面向过程始终关注的是怎么一步一步地判断棋局输赢的,通过控制代码,从而实现函数的顺序执行。

面向对象

在工作中,简单的问题用面向过程的思路来解决直接有效。但是当问题规模变大时,用面向过程的思想是远远不够的。所以就出现了面向对象的编程思想。

世界上有很多人和事物,每一个都可以看做一个对象,而每个对象都有自己的属性和行为,对象与对象之间通过方法来交互。面向对象是一种以“对象”为中心的编程思想,把要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个对象在整个解决问题的步骤中的属性和行为。

类是一个抽象的概念,而对象是一个具体的事物。对象是基于类这个抽象的模板而建立的实例。

在下五子棋的例子中,用面向对象的方法来解决的话,首先将整个五子棋游戏分为三个类:

  • 棋子类,定义棋子,颜色,位置坐标,监听下棋动作。

  • 棋盘类,定义棋盘样式,棋谱,位置状态(是否有棋子),增加棋子动作,

  • 规则类,定义规则、判断是否犯规、输赢等。

然后基于上述类创建对象,并赋予每个对象一些属性和行为:

第一类的对象为黑棋和白棋,负责接受用户输入,并告知第二类对象(棋盘系统)棋子布局的变化,棋盘系统对象接收到了棋子的变化,并负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。

可以看出,面向对象是以功能来划分问题,而不是以步骤解决。比如绘制画面这个行为,在面向过程中是分散在了多个步骤中的,可能会出现不同的绘制版本。
比如要加入悔棋的功能,如果要改动面向过程的设计,那么从输入到判断到显示这一连串的步骤和顺序都要改动。如果是面向对象的话,只用改动棋盘对象就行了,棋盘系统保存了黑白双方的棋谱,回溯就可以了,而显示和规则判断则不用 顾及,同时整个对对象功能的调用顺序都没有变化,改动只是局部的。

类,与类的特性

类是同一类事物的统称。如个人证件作为一类都有id,姓名,年龄,照片的属性,都具有验证本人身份的功能

1. 封装

将对象的属性和行为封装起来,只通过对象访问属性或者方法。还可以设置访问权限。

2. 继承

假如想建立驾照类时,我们想到可以将个人证件类拿来复用,保留个人证件具有的属性和方法,但是不具有驾驶信息的属性和合法开车的功能。

3. 多态

一个类可以继承多种接口,一个父类也可以被多种子类所继承。父类的方法也可以被子类重写。这些都是多态的特征,即一个父类有多种子类的形态,一个方法也有多种实现方法。

相关文章

  • 面向对象:创建对象&继承

    博客内容:什么是面向对象为什么要面向对象面向对象编程的特性和原则理解对象属性创建对象继承 什么是面向对象 面向对象...

  • 面向对象

    了解什么是面向对象 首先,我们学习面向对象,要了解什么是面向对象,面向对象的重要概念:类,对象。 面向对象提出的这...

  • Java 工程师成神之路 | 2019正式版

    摘要:什么是面向对象 基础篇 01面向对象 → 什么是面向对象 面向对象、面向过程 面向对象的三大基本特征和五大基...

  • Java面向对象

    OO: 面向对象OOA:面向对象分析OOD:面向对象设计OOP:面向对象编程1.什么是类?什么是对象1)现实世...

  • 总结.Net基础知识——献给即将入坑的同行们(一期)

    什么是面向对象 面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP; 通俗...

  • 06-面向对象作业第1部分

    1、什么是面向过程? 2、什么是面向对象? 3、面向对象的三大特性是什么? 4、什么面向对象的好处是什么? 5、什...

  • PHP全栈学习笔记8

    面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类。 类...

  • PHP全栈学习笔记8

    面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类。 类...

  • 面向对象的基础

    什么是面向对象? 面向对象是一种编程方法; 面向对象是一种思维方式 面向对象不是一种编程语言 什么是面向对象的思维...

  • 8.面向对象基础

    1.什么是面向对象 2.应该如何学习面向对象 3.面向对象的思维方式 什么是面向对象 1.面向对象是一种编程方法;...

网友评论

      本文标题:什么是面向对象

      本文链接:https://www.haomeiwen.com/subject/ckqgbltx.html