JAVA语言:理解面向对象

面向对象

Java语言是纯碎的面向对象的程序设计语言,这主要表现为Java完全支持面象对象的三种基本特征:继承、封装和多态。Java语言完全以对象为中心,Java程序的最小程序单位是类,整个Java程序由一个一个的类组成。
java完全支持使用对象、类、继承、封装、消息等基本概念来进行程序设计,允许从现实世界中客观存在的事物(即对象)出发来构造软件系统,在系统构造中尽可能运用人类自然思维方式。实际上,这些优势是所有面向对象编程语言的共同特征。面向对象的方法实际上由OOA(面向对象分析)、OOD(面向对象设计)和OOP(面向对象编程)三个部分有机组成,其中,OOA和OOD的结果。
在目前的软件开发领域有两种主流的开发方法:结构化开发方法和面向对象开发方法

结构化程序设计简化

 结构化程序设计方法主张按功能来分析系统需求,其主要原则可概况为自顶向下、逐步求精、模块化等。结构化程序设计首先采用结构

化分析方法对系统进行需求分析,然后使用结构化设计方法对系统进行概要设计、详细设计,最后采用结构化编程方法来实现系统。使用
这种SA,SD和SP的方式可以比较地保证软件系统的开发进度和质量。结构化程序设计里最小的程序单元是函数,每个函数负责完成一个功能,用以接受一些输入数据,函数对这些输入数据处理,处理结束后输出一些数据。这个软件系统由一个个函数组成,其中作为程序入口的函数被成为主函数,主函数依次调用其他普通函数,普通函数之间依次调用,从而完成整个软件系统的功能。
在这里插入图片描述

程序的三种基本结构

顺序结构

在这里插入图片描述

顺序结构表示程序中的各种操作时按照他们在源代码中的排序一次执行的。
图中的S1和S2表示两个处理步骤,这些处理步骤可以是一个非转移操作或多个非转移操作,甚至可以是空操作,也可以是三种基本结构中的任一结构。整个顺序结构只有一个入口a和一个出口b。这种结构的特点是:程序从入口点a处开始,按顺序执行所有操作,直到出口点b处,所以称为顺序结构。

选择结构
选择结构表示程序的处理需要根据某个特定的条件选择其中一个分支执行。选择结构有单选择、双选择和多选择三种。
双选择是典型的选择结构形式,图中S1和S2与顺序结构中的说明相同。

在这里插入图片描述
在这里插入图片描述
图中可以看到见,在结构的入口点a处有一个判断,表示程序出现了两个可供选的分支,如果判断条件为真则执行S1处理,否则执行S2处理。值得注意的是,这两个分支中只能选择一个且必须选择一个执行,但不论选择了哪一个分支支行,最后流程都一定到达结构的出口b处。
当S1和S2中的任意一个处理为空时,说明结构中只有一个可选择的分支,如果判断条件为真,则执行S1处理,否则直接执行到结构出口点b处。也就是说,如果判断条件为假时,则什么也没有执行,所以成为单选择结构。

循环结构
循环结构分为当型结构和直到型循环
在这里插入图片描述
**当型结构:**先判断条件,当条件为真时执行的循环体,并且在循环体结束时自动返回到循环体入口处,再次判断循环条件;如果条件为假,则退出循环体到达流程出口处。因为是“当条件为真时执行循环体”,即先判断后执行,所以被成为当型循环。其流程图(a)所示。

**直到型循环:**从入口处直接执行循环体,循环体结束时判断条件,如果条件为真,则返回入口处继续执行循环体,直到条件为假时退出循环体到达流程出口处,是先执行后判断。因为是“直到条件为假时结束循环”,所以被称为直到型循环。 其流程图(b)所示。

面向对象程序设计简介

面向对象是一种更优秀的程序设计方法,它的基本思想是使用、对象、继承、封装、消息等基本概念进行程序设计。它从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能的运用人类的自然思维方式,强调直接以现实中的事物(即对象)为中心思考,认识问题,并根据这些事物的本质特点,把它们抽象表示为系统中的类,作为系统的基本构成单元(而不是用一些与现实世界中的事物相关比较远,并且没有对应关系的过程来构造系统),这使得软件系统的组件可以直接映像到客观世界,并保持客观世界中事物及其相互关系的本来面貌。
采用面向对象方式开发的软件系统,其最小的程序单元是类,这些类可以生成系统中的多个对象,而这些对象则直接映像成客观世界的各种事物

面向对象的基本特征

面向对象方法具有三个基本特征:封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism).
其中封装指的是将对象的实现细节隐藏起来,然后通过一些公用方法来暴露该对象的功能;继承是面向对象实现软件复用的重要手段,当子继承父类后,子类作为一种特殊的父类,将直接获得父类的属性和方法;多态指的是子类对象可以直接赋给父类变量,但运行时依然表现出子类的行为特征,这意味这同一个类型的对象在执行同一个方法时,可能表现出多种行为特征。
除此之外,抽象也是面向对象的重要部分,抽象就是忽略一个主题中当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是考虑部分问题。
面向对象还支持如下几个功能。
① 对象是面向对象方法中最基本的概念,它的基本特点有:标识唯一性、分类型、多态性、封装性、模块独立性好。
② 类是具有共同属性、共同方法的一类事物。类是对象的抽象;对象则是类的实例。而类是整个软件系统最小的程序单元,类的封装性将各种信息细节隐藏起来,并通过公用方法来暴露该类对外提供的功能,从而提高了类内聚性,降低了对象之间耦合性。
③对象间的这种相互合作需要一个机制协助进行,这样的机制为“消息”。消息是一个实例与另一个实例之间相互通信的机制。
④在面向对象方法中,类之间共享属性和操作的机制成为继承,继承具有传递性。继承可分为单继承(一个继承只允许有一个直接父类,即类等级为树型结构)与多继承(一个类允许有多个直接父类)。

**note:**在编程语言领域,还有一个“基于对象”的概念,这两个概念极易混淆。通常而言“基于对象”也使用了对象,但是无法利用现有的对象模板产生新的对象,也就是说,“基于对象”没有继承的特点:而“多态”则更需要继承,没有了继承的概念也就无从谈论“多态”。面向对象方法的三大基本特征(封装、继承、多态)缺一不可。
例如JavaScript语言而言就是基于对象的,它使用一些封装好的对象,调用对象的方法,设置对象的属性;但是它们无法让开发者派生新的类,开发者只能使用有对象的方法和属性。
判断一门语言是否是面向对象的,通常可以使用继承和多态来加以判断。“面向对象”和“基于对象”都实现了“封装”的概念,但是面向对象实现了“继承和多态”,而“基于多态”,而“基于对象”没有实现这些。
面向对象编程的程序员按照分工为“类库的创造者”和“类库的使用者”。使用类库的人并不都是具备了面向对象思想的人,通常直到如何继承和派生新对象就可以使用类库了,然而他们的思维并没有真正地转过来,使用类库只是在形式上是面向对象的,而实质上只是库函数的一种扩展。

UML(统一建模语言)介绍

面向对象软件开发需要经过OOA(面向对象分析)、OOD(面向对象设计)和OOP(面向对象编程)三个阶段,OOA对目标系统进行分析,建立分析模型,并将之文档化;OOD用面向对象的思想对OOA的结果进行细化,得出设计模型。OOA和OOD的分析、设计结果需要统一的符号来描述、交流并记录,UML就是这种用于描述、记录OOA和OOD结果的符号表示。

UML2.0包含一共13种正式图形:
1.活动图
2.类图
3.通信图
4.组件图
5.复合结构图
6.部署图
7.交互概观图
8.对象图
9.包图
10.顺序图
11.状态机图
12.定时图
13.用例图

java面向对象特征

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于HMM和LSTM的拼音程序LSTM (Long Short-Term Memory) 是一种特殊的循环神经网络(RNN)架构,用于处理具有长期依赖关系的序列数据。传统的RNN在处理长序列时往往会遇到梯度消失或梯度爆炸的问题,导致无法有效地捕捉长期依赖。LSTM通过引入门控机制(Gating Mechanism)和记忆单元(Memory Cell)来克服这些问题。 以下是LSTM的基本结构和主要组件: 记忆单元(Memory Cell):记忆单元是LSTM的核心,用于存储长期信息。它像一个传送带一样,在整个链上运行,只有一些小的线性交互。信息很容易地在其上保持不变。 输入门(Input Gate):输入门决定了哪些新的信息会被加入到记忆单元中。它由当前时刻的输入和上一时刻的隐藏状态共同决定。 遗忘门(Forget Gate):遗忘门决定了哪些信息会从记忆单元中被丢弃或遗忘。它也由当前时刻的输入和上一时刻的隐藏状态共同决定。 输出门(Output Gate):输出门决定了哪些信息会从记忆单元中输出到当前时刻的隐藏状态中。同样地,它也由当前时刻的输入和上一时刻的隐藏状态共同决定。 LSTM的计算过程可以大致描述为: 通过遗忘门决定从记忆单元中丢弃哪些信息。 通过输入门决定哪些新的信息会被加入到记忆单元中。 更新记忆单元的状态。 通过输出门决定哪些信息会从记忆单元中输出到当前时刻的隐藏状态中。 由于LSTM能够有效地处理长期依赖关系,它在许多序列建模任务中都取得了很好的效果,如语音识别、文本生成、机器翻译、时序预测等。
基于LSTM和注意力机制预测蛋白质-配体结合亲和力LSTM (Long Short-Term Memory) 是一种特殊的循环神经网络(RNN)架构,用于处理具有长期依赖关系的序列数据。传统的RNN在处理长序列时往往会遇到梯度消失或梯度爆炸的问题,导致无法有效地捕捉长期依赖。LSTM通过引入门控机制(Gating Mechanism)和记忆单元(Memory Cell)来克服这些问题。 以下是LSTM的基本结构和主要组件: 记忆单元(Memory Cell):记忆单元是LSTM的核心,用于存储长期信息。它像一个传送带一样,在整个链上运行,只有一些小的线性交互。信息很容易地在其上保持不变。 输入门(Input Gate):输入门决定了哪些新的信息会被加入到记忆单元中。它由当前时刻的输入和上一时刻的隐藏状态共同决定。 遗忘门(Forget Gate):遗忘门决定了哪些信息会从记忆单元中被丢弃或遗忘。它也由当前时刻的输入和上一时刻的隐藏状态共同决定。 输出门(Output Gate):输出门决定了哪些信息会从记忆单元中输出到当前时刻的隐藏状态中。同样地,它也由当前时刻的输入和上一时刻的隐藏状态共同决定。 LSTM的计算过程可以大致描述为: 通过遗忘门决定从记忆单元中丢弃哪些信息。 通过输入门决定哪些新的信息会被加入到记忆单元中。 更新记忆单元的状态。 通过输出门决定哪些信息会从记忆单元中输出到当前时刻的隐藏状态中。 由于LSTM能够有效地处理长期依赖关系,它在许多序列建模任务中都取得了很好的效果,如语音识别、文本生成、机器翻译、时序预测等。
CSDN IT狂飙上传的代码均可运行,功能ok的情况下才上传的,直接替换数据即可使用,小白也能轻松上手 【资源说明】 基于MATLAB实现的对心电信号进行滤波处理后,计算RR间隔,进而求得瞬时心率和心率变异系数,通过对RR间隔的变化曲线进行频谱分析,从而求得各个自律神经活动的评价指标+使用说明文档 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2020b;若运行有误,根据提示GPT修改;若不会,私信博主(问题描述要详细); 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可后台私信博主; 4.1 期刊或参考文献复现 4.2 Matlab程序定制 4.3 科研合作 功率谱估计: 故障诊断分析: 雷达通信:雷达LFM、MIMO、成像、定位、干扰、检测、信号分析、脉冲压缩 滤波估计:SOC估计 目标定位:WSN定位、滤波跟踪、目标定位 生物电信号:肌电信号EMG、脑电信号EEG、心电信号ECG 通信系统:DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪、数字信号调制、误码率、信号估计、DTMF、信号检测识别融合、LEACH协议、信号检测、水声通信 5、欢迎下载,沟通交流,互相学习,共同进步!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值