面向对象编程简介

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

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

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

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

Java面向对象编程导论的更多相关文章

  1. Java面向对象编程基础

    一.Java面向对象编程基础 1.什么是对象?Object 什么都是对象! 只要是客观存在的具体事物,都是对象(汽车.小强.事件.任务.按钮.字体) 2.为什么需要面向对象? 面向对象能够像分析现实生 ...

  2. java 面向对象编程。。。。

    经过一周的学习(java),总结了许多,对java的理解,java的类型,运用,安装,基础语法,变量,常量,表达式,语句 java从C语言中继承了大量语言特性.java面向对象编程的基本特征,包括继承 ...

  3. 《Java面向对象编程》

    <Java面向对象编程> 第11章 对象的生命周期 11.1  创建对象的方式 用new语句创建对象 运用反射手段,调用java.lang.Class 或者 java.lang.Const ...

  4. JAVA面向对象编程课程设计——网络版单机斗地主

    一.团队介绍 成员姓名 任务分配 成员课程设计博客链接 兰泽祥(组长) 数据库,斗地主规则的实现,人机自动出牌的算法,实体类的设计 JAVA面向对象编程课程设计--web版斗地主 吴修恩 JSP界面的 ...

  5. JAVA面向对象编程课程设计——web版斗地主

    一.团队课程设计博客链接 JAVA面向对象编程课程设计--网络版单机斗地主 二.个人负责模块或任务说明 实体类的设计 斗地主规则的实现 人机自动出牌的算法 实现数据库的DAO模式 三.自己的代码提交记 ...

  6. java面向对象编程知识点总结

    一:今天完成 上午详细了解了java面向对象编程的一些细节,记录如下. 1)类 是一种引用类型,包含一个签名和一个主体,主体是放在花括号里面的成员,成员包括字段和方法,还有构造方法.初始化程序和嵌套类 ...

  7. Java面向对象编程(一)

    由于常常将Java和C++面向对象编程的原则搞乱,所以这次把相关要点分别总结一下,本文主要总结Java面向对象编程. 面向对象编程的三大特性是:继承性(inheritance), 多态性(polymo ...

  8. JAVA学习(五):Java面向对象编程基础

    Java面向对象编程基础 面向对象(Object oriented programming,OOP)技术是一种强有力的软件开发方法,它採用数据抽象与信息隐藏技术,来使软件开发简单化,以达到代码重用的目 ...

  9. (一)如何理解java面向对象编程

    哲学中,事物总是螺旋式上升,波浪式前进.因而编程也逐渐向人类更容易理解的方向前进,多年来人们苦苦追求的编程境界 : 高扩展性(extensibility),高复用性(reuseable).java语言 ...

  10. java面向对象编程--第九章 多态和抽象

    9.1多态 在生物学中,是指一个生物或物种可以有多种不同的形式或阶段: 在OOP中,多态是指一个对象有多种形式的能力. 多态可以说是面向对象编程的精髓所在.java中之所以引入多态的概念,原因之一是它 ...

随机推荐

  1. mysql13 sql优化-explain

    1.Explain Explain可以对sql语句的执行性能进行分析.使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的.分析你的查询语句或是表结构 ...

  2. day08-SpringMVC底层机制简单实现-04

    SpringMVC底层机制简单实现-04 https://github.com/liyuelian/springmvc-demo.git 8.任务7-完成简单视图解析 功能说明:通过目标方法返回的 S ...

  3. HEU_KMS_Activator_v27.0.2全能系统数字许可激活工具

    HEU_KMS_Activator_v27.0.2全能系统数字许可激活工具 HEU KMS Activator是KMS激活工具,支持激活 Windows XP.Windows 7.Windows 8. ...

  4. Solon2 开发之插件,二、插件扩展机制(Spi)

    插件扩展机制,是基于 "插件" + "配置申明" 实现的解耦的扩展机制(类似 Spring Factories.Java Spi):简单.弹性.自由.它的核心作 ...

  5. Eureka+SpringCloud微服务(入门一)

    项目地址 [CloudStudy项目](zko0/cloudStudy: Springcloud学习工程 (github.com)) 1.依赖版本 cloud:Hoxton.SR1 boot:2.2. ...

  6. STM32F1库函数初始化系列:DMA—ADC采集

    1 void ADC_Configure(void) 2 { 3 ADC_InitTypeDef ADC_InitStructure; 4 GPIO_InitTypeDef GPIO_InitStru ...

  7. C语言排序 冒泡 选择 快排

    冒泡排序 冒泡排序是一种简单的排序算法,其基本思想是重复地交换相邻两个元素,将较大的元素向右"冒泡",较小的元素向左"沉淀",从而将序列中的最大元素逐渐移到最后 ...

  8. 图说论文《LSM-based Storage Techniques: A Survey》

    本文从 <LSM-based Storage Techniques: A Survey> 摘取部分图片,来介绍 LSM tree 的相关内容.详细内容请查看论文原文. in-place u ...

  9. 【KAWAKO】从mac上定时将腾讯云的数据备份到本地

    目录 前言 需求 宝塔面板 备份网站 备份数据库 mac端 创建工程文件夹 rua.py rua stdout plist Reference 前言 不信任一切云端平台,把数据牢牢握在自己手中才是最安 ...

  10. Prime Distance

    Description The branch of mathematics called number theory is about properties of numbers. One of th ...