什么是面向过程?什么是面向对象?面向对象的三大基本特征是什么?
一、什么是面向过程?
面向过程是一种以过程为中心的编程思想,其原理就是将问题分解成一个一个详细的步骤,然后通过函数实现每一个步骤,并依次调用。
面向过程我们所关心的是解决一个问题的步骤,举个例子,汽车发动、汽车熄火,这是两个不同的事件,对于面向过程而言,我们关心的是事件本身,因此我们会使用两个函数完成以上两个动作,然后依次调用即可。
二、什么是面向对象?
面向对象则是一种以对象为中心的编程思想,就是通过分析问题,分解出一个一个的对象,然后通过不同对象之间的调用来组合解决问题。建立对象的目的不是为了完成某个步骤,而是为了描述某个事物在解决整个问题的过程中的行为。
如上面的例子,汽车发动、汽车熄火,对于面向对象而言,我们则关心的是汽车这类对象,两个事件只是这类对象所具备的行为。
三、面向对象的三大基本特征是什么?
1、封装
封装就是将一个类的某些信息隐藏在类的内部,不允许外界直接访问,而是提供某些方法实现对隐藏信息的访问和操作。
封装的好处就是增强了数据安全性以及隐藏了类的实现细节,使用者无需了解具体实现细节,只需通过特定的接口进行访问,这样也方便类自身的实现和修改。
2、继承
继承是类与类之间的一种关系,即子类继承父类的特征和行为,使得子类具有和父类相同的属性和行为。
继承的好处在于子类继承了父类的属性和方法从而实现了代码的复用。
3、多态
多态是指一个类对象的相同方法在不同情形下有不同的表现形式。
多态使得具有不同内部结构的对象可以共享相同的外部接口。
转载于:https://blog.51cto.com/13666674/2390131
什么是面向过程?什么是面向对象?面向对象的三大基本特征是什么?相关推荐
- 面向过程中模拟出面向对象,用c语言模拟出MFC控件,消息循环,“设计用户界面”
大家好,今天给大家分享"怎样用c模拟出MFC控件 简单模拟出消息循环,按钮控件",面向过程中模拟出面向对象. 编程思路 首先用绘图库EasyX绘制窗口,窗口中绘制按钮,把按钮对象化 ...
- python面向对象和面向过程的区别_Python11-01_面向对象----面向对象和面向过程的区别...
面向对象编程 面向对象(OPP)编程思想主要针对大型软件设计而来的.面向对象编程使程序的扩展性更加强,可读性更好.使得编程可以像搭积木一样简单. 面向对象编程将数据和操作数据的方法封装到对象中,组织代 ...
- 25.C++:最通俗的讲解,什么是面向过程?什么是面向对象?
网上关于这两个的回答真的很多,但是都有一个共同特点:------------不容易懂.我今天就简单通俗的说一下(当然,如果你要非常深入的了解,这篇不适合你.如果你只是为了了解什么是面向过程和面向对象, ...
- python面向对象和面向过程_python--什么是面向对象和面向过程,对象的进化,什么是对象...
最近开始重新学习一边python,之后会持续更新python的学习笔记,主要偏重的是python语法跟内存之间的关系 1.python中,一切皆对象,常见的数据结构是对象,函数是对象,类也是对象,对象 ...
- java编写的控制台版微信零钱明细系统,1.面向过程版,2.面向对象版
1.面向过程版 import java.text.SimpleDateFormat; import java.util.*;/*** @version 1.0* function:* author:阿 ...
- 面向对象是什么?为什么我们要先学面向过程,再学面向对象编程?到底什么是面向对象编程?
面向对象是什么?为什么我们要先学面向过程,再学面向对象程?到底什么是面向对象编程? 回答:面向过程是计算机思维,计算机的思路就是取指执行,一条直道走到底,它可不会管你什么抽象,不管什么业务建 ...
- js_高级_表格排序案例---分别用面向过程和面向对象实现
点击表单每列的title可以实现排序功能(从大到小,从小到大) 1.面向过程方式 2.面向对象实现 以命令者的角度去考虑自己要这个类有什么功能,封装在类里面后自己可以直接调用 然后再去写功能的具体 ...
- 从面向过程到面向对象
http://blog.csdn.net/hjf19790118/article/details/6919578 面向过程 → 面向对象 → 面向组件 → 面向服务 约翰·巴库斯(John Backu ...
- python面向对象还是过程_Python学习————面向对象和面向过程
一.面向过程和面向对象 面向过程: 核心是"过程"二字 过程的终极奥义就是将程序流程化 过程是"流水线",用来**分步骤解决问题**的 面向对象: 核心是& ...
最新文章
- python3.6安装版本选择
- Cisco PT模拟实验(16) 路由器重分发配置
- VTK:定向字形用法实战
- apache camel_使用WildFly 8在Java EE7中自举Apache Camel
- [渝粤教育] 西南科技大学 工程力学 在线考试复习资料
- 注册COM组件cmd(管理员权限)
- java 的io流需要学吗_Java的IO流之字节流,必须要学得内容,你会嘛?
- mysql binlog查看工具_【使用 Rust 写 Parser】4. 解析 binlog
- 电脑摄像头一维条形码matlab识别
- C# winform以阅览模式打开PPT,并控制PPT上下页,轮播
- spring catch了异常还是回滚了_干货:Spring 踩坑之@Transactional 神奇失效
- 在线DES加密解密、DES在线加密解密、DES encryption and decryption
- png在ai转为路径_ai怎么把png转换为路径
- mp4视频在flash中边下载边播放
- Can#39;t locate Tk.pm
- 如何使用Java获取货币符号?
- virt-manager的虚拟资源中心
- JSTL标签不起作用,JSTL标签直接输出表达式
- IG NZT 安装使用过程中可能遇到的问题解决办法
- HTML5期末大作业:家居/家电/家居网站设计——html家具装饰网站设计30页(含论文) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机...