面向对象编程简介

JAVA是一门面向对象的编程语言。面向对象编程范式与面向过程编程范式同属于命令式编程范式,与函数式编程范式相区别。在面向对象编程范式中,我们将我们要处理的系统的业务逻辑表现为对象之间的互相关联。对象实体本身是一组数据和动作的封装。封装可以简单的理解为一种打包,它使得外部可以使用某个单一对象或模块提供的服务而不去理会具体的细节。在这个意义上我们发现,面向对象本身就是计算机科学抽象思维的一种体现。在面向对象编程范式所面对的世界中,一切皆是对象。

面向对象编程与面向过程编程
一般来说,支持面向对象编程的语言也是支持面向过程编程范式的,而函数式编程语言的特点也正在被糅合到现有的面向对象编程语言中。按照我的理解,编程就是使用符号语言来对现实世界中的事物进行建模。面向过程编程范式在对事物进行建模时更加灵活,但也容易造成代码的冗余和系统复杂性过高。面向对象编程范式的语言则将原来在面向过程编程范式中常用的结构抽离出来,采用更加简易的机制来表示。面向对象编程目前是应用领域的主流编程范式,因为它更有助于构建结构更清晰、更易于理解、扩展性更强的软件系统。

面向对象编程与函数式编程
面向对象编程范式与函数式编程范式则有着较大的差异。在面向对象编程范式中,我们热衷于将业务逻辑抽象成提供特定服务的对象,并且常常使用变量来表示复杂的变动中的关系,对象的动作本身多产生的影响往往不是来自于方法本身的返回值,而是方法本身的副作用。函数式编程范式则与此有较大的不同。在函数式编程范式中,采用具有恒定性的常量和变量是一种约定的习惯。相比较于命令式编程范式,使用函数式编程范式编写的程序更加的简洁,以及拥有更高层次的直观,且很少有副作用。此外,一个很大的不同点在于函数式编程热衷于采用递归,而面向对象编程更习惯于采用看上去效率更高的迭代机制。

面向对象编程与面向切面编程、面向接口编程
面向切面编程和面向接口编程都是面向对象编程的一种延伸。面向对象编程将事物表示为对象之间的关系,但是现实事物并不是一个个单独的被联系起来的实体,实体
只是在特定视角下的一种整体化的认知,面向对象编程并不足以完全表示现实世界复杂的逻辑。面向切面编程正是对于这样一种情况的有效补充,它使得我们可以单独定义对于多个不同实体之间的共通逻辑,而这些逻辑往往与不同实体本身的业务逻辑无关。面向接口编程则是在应用软件开发领域对于面向对象编程的更深层次的抽象。接口本身并不是JAVA本身语法中的接口。面向接口编程是指将不同功能模块的服务加以抽象,只保留对外的接口,减少不同系统之间的耦合,同时保证系统本身的可读性、可理解性,提高可维护性和可用性。

最新文章

  1. hdu4690 EBCDIC ——水题,考耐心
  2. Redis 环境搭建与使用(C#)
  3. java命令行HPROF Profiler
  4. mysql主从复制 主从配置(windows系统上)
  5. 发现个div float的小秘密
  6. [java学习笔记]java语言基础概述之内存的划分&堆和栈
  7. uap--studio设置文本字体
  8. deciaml(十进制浮点运算)
  9. hdu 2102 A计划(双层BFS)(具体解释)
  10. test_markdown
  11. 通过TABULATE过程制作汇总报表
  12. C++版 - 剑指offer 面试题7:用两个栈实现队列 题解
  13. drawImg、x5浏览器、react
  14. 记录----第一次使用BFS(广度搜索)学习经验总结
  15. C++ code:剩余串排列
  16. Java如何匹配列表中的电话号码?
  17. suffix word ard ar arian arium atic ation atory ator out ~3
  18. iphone6 inline-flex兼容问题
  19. Developing ADF PageTemplates
  20. java设计模式-----7、装饰模式

热门文章

  1. Nginx04 反向代理和负载均衡
  2. 让你VS Code的通过插件扩展,拥有了三头六臂
  3. 树莓派4B—LCD触摸屏和硬件串口配置
  4. C++练习2 强制类型转换
  5. 代码随想录算法训练营day02 | leetcode 977/209/59
  6. [专题总结]Gridea快速免费搭建个人博客
  7. 腾讯云对象存储 COS搭建个人网站
  8. Hive数仓基础
  9. 【FPGA学习】MATLAB与FPGA实现FIR滤波器
  10. cuda+pytorch环境安装