一、Java概述与开发环境
1、Java的运行机制
Java既具有解释型语言的特征,又具有编译型语言的特征(Java程序会经过先编译后解释两个步骤)。
理由:Java语言编写的程序需要经过编译(javac.exe)步骤生成与平台无关的字节码,而字节码又需要Java解释器(java.exe,JVM的一部分)来解释执行。
Java解释器规定:如需某个类能够被java.exe直接执行,那么其必须包含public static void main(String[] args){}方法。
何为编译型语言?(C,C++)
使用专门的编译器,针对特定的平台(操作系统)将源代码一次性转换成该平台硬件能够识别的可执行的机器码,并将其包装成可执行性程序的格式。
- 编译生成的程序,只能在特定的平台上运行。
- 它可以针对特定平台进行优化,因此性能可以得到改善。
何为解释型语言?(JavaScript,python)
使用专门的解释器,将源代码逐行解释成特定平台的机器码并立即执行
- 需要为不同的平台提供解释器。通常它们可以跨平台运行。
- 由于每次运行时,都需要经过一次解释(转换为机器指令)。性能略差。
2、CLASSPATH的作用
告诉JRE在哪里搜索执行的Java类,通常无需设置CLASSPATH环境变量。因为JDK会自动在当前路径下搜索类。但如果设置了CLASSPATH环境变量,那就需要在CLASSPATH环境变量中增加一个点号(.)代表当前路径。
二、理解面向对象
1、结构化程序设计
结构化程序设计方法主张按功能来分析系统需求,其主要原则可概括为自顶向下,逐步求精,模块化等。
- 首先采用结构化分析(Structrued Analysis,即SA)方法对系统进行需求分析,
- 然后使用结构化设计(Structrued Design,即SD)方法对系统进行概要设计、详细设计,
- 最后采用结构化编程(Structrued Program,即SP)方式来实现系统。
局限:
-
设计不够直观,与人类习惯思维不一致;
理由:采用结构化程序分析、设计时,开发者需要将客观世界模型分解成一个一个功能,每个功能用以完成一定的数据处理
-
适应性差,可扩展性不强。
理由:结构化设计采用自顶而下的设计方式,所以当用户的需求发生改变,或需要修改现有的实现方式时都需要自顶而下地修改模块结构,这种方式的维护成本相当大
Java虽然是面向对象的,但其方法里则是一种结构化的程序流。
2、面向对象的基本特征
- 封装:将对象的实现细节隐藏起来,然后通过一些公用方法来暴露该对象的功能
- 继承:实现软件复用的重要手段,子类继承父类后,直接获得父类的属性和方法
- 多态:子类对象直接赋值给父类变量,运行时仍然表现为子类的行为特征
抽象就是忽略一个主题中与当前目标无关的那些方面,以便充分地注意与当前目标有关地方面。
为什么说抽象是面向对象的重要组成部分,但不是其特征之一?
理由:所有的编程语言都需要抽象。
编程语言领域还有“基于对象”的概念,没有继承、多态的特点。(JavaScript)
3、Java的面向对象特征
- 在Java语言中,除了8个基本数据类型值之外,一切都是对象。
- Java不允许直接访问对象,而通过对对象的引用来操作对象。
- Java是单继承的,但可以多实现接口。
- Java的继承是一种“一般->特殊”的关系(is a)。
- Java通过一个类里的成员变量保存另一个对象的引用来实现组合关系(“整体->部分”、has a)。

浙公网安备 33010602011771号