Java学习笔记

概念整理

定义

  • 指令:设一个系统$S$有有限状态集合${S_1, S_2, …, S_n}$,从状态$S_i$变换到其相邻状态$S_{i+1}$的一个基本变换规则可称为一条指令,指令的执行必定伴随着系统状态的改变和能量的变化。 一个系统中所有的基本指令组成的集合称为该系统的基本指令集。
  • 程序:程序是指某系统$S$从初始状态$S_b$变换到$S_e$的有序的、有限的指令和数据集合。 这个指令和数据集合可以用某种符号(代码)或格式存储在某种物质介质和波介质中,可以称为程序的存储状态。
  • 进程:进程是程序的运行状态,是指某系统在能量的供应下一条一条指令连续处理和执行的过程。 因为指令的执行需要消耗能量,所以一个进程也必须要在能量的不断供应下才能得以连续执行,直至程序到终点,即系统的状态$S_e$。
  • 过程:过程就是步骤的集合,就是“解决一个问题或完成一件事情的有序步骤集合”。
  • 对象:对象就是一个具有特定属性和行为的独立存在体,可以和外界进行信息交互和能量交互,相当于系统中的一个子系统,有自己的指令集和程序功能。

面向对象程序设计基本原则

面向对象程序设计一般要遵循下面几个基本原则:

  • 抽象:从大量的、具体的物理实体或概念中抽取它们共同具有的属性或行为,以形成一般化概念或符号的过程,称为抽象。抽象在程序设计中一般指可具体化为运行对象的一套代码模板。
  • 封装:封装是一个自然界广为通用的法则,跟现实世界中的对象一样,对象的内部结构和状态对外是不可见的,对象的内部和外部之间有一个明确的界限,称为对象的封装性。在Java语言中,对象的封装性可通过定义类来实现,对象是类的一个实例。要想改变对象的内部状态结构,必须通过特定公开的接口来完成。
  • 继承:继承是一个生物和社会中通用的法则。在人类世界中,正是有了继承法则的存在,才有了发展的概念。在面向对象程序设计中,将从已经存在的类产生新类的机制称为继承,原来存在的类称为父类(或叫基类),新类称为子类(或叫派生类)。子类会自动拥有父类中的设计代码,继承带来的好处是:一方面可减少程序设计的错误,另一方面做到了代码复用,可简化和加快程序设计,提高了开发效率。
  • 多态:在现实世界当中,同样的消息传给不同的对象会有不同的响应行为。例如,让A地区的动物迁移到B地区去,对于这样一条消息,不同的动物会有不同的行为方式。在面向对象程序设计中,人们把对象之间按一定格式传递的信息称为消息,同一个消息被不同的对象接收时,可以导致完全不同的行为,这就是面向对象中的多态性。
  • 重载:在现实世界当中,对于同样的消息,对象可能根据自身条件的不同表现出不同的行为,在面向对象程序设计中,同一个对象可根据消息的参数的不同选择不同的行为代码,我们称为重载,重载是实现多态的机制之一。