面向对象编程简介

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. springboot FilterRegistrationBean 拦截器的使用

    1.创建一个filter package com.ruoyi.weixin.user.interator; import com.ruoyi.common.utils.SecurityUtils; i ...

  2. 2211-11Flask入门教程

    本篇记录来自Flask入门教程 准备工作 在通过这本书学习 Flask 开发前,我假设你已经了解了 Python 和 HTML 的基础知识.如果还没有,那么可以先从下面这些在线资源入手: <使用 ...

  3. Visual Studio更改项目文件夹名称

    一.VS打开项目解决方案(按以下顺序操作) PS:如果已经出错,打不开.sln文件,就从第三步开始操作,进入目录更改对应其.csproj文件名称即可 1.选择要更改的项目或类库,右键属性,更改程序集名 ...

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

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

  5. Mybatis的常用配置-多表关联查询

    Mapper.xml常用配置 全局配置文件(数据库,事物管理,Mapper的注册.打印文件SQL.慢性加载.二级缓存) Mapper配置文件 (定义自定义接口的具体方案;SQL.数据库.数据库与POJ ...

  6. 鼎阳SDS6204示波器的EPICS IOC调试

    经过雷雷师弟的努力,该款示波器终于调试成功,相关文件现放在gitee仓库里: https://gitee.com/lup9304/siglent/commit/99ce00d195facd87fa1c ...

  7. ClickHouse(13)ClickHouse合并树MergeTree家族表引擎之CollapsingMergeTree详细解析

    目录 建表 折叠 数据 算法 资料分享 参考文章 该引擎继承于MergeTree,并在数据块合并算法中添加了折叠行的逻辑.CollapsingMergeTree会异步的删除(折叠)这些除了特定列Sig ...

  8. Qt中的多窗体编程(续二)

    四.实现子窗体的按钮功能. 1.在显示时间的子窗体中,有两个默认的按钮,都还没有定义其功能,下面就来定义,无论单击哪个按钮,都将线束时钟显示的线程并关闭窗体. 2.在子窗体的可视化设计界面中,在窗体的 ...

  9. vscode cmake工程launch和task文件设置

    1.launch.json文件基本设置 { // Use IntelliSense to learn about possible attributes. // Hover to view descr ...

  10. Servlet(服务连接器)

    Servlet(Server Applet):是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据 ...