-
第一章介绍
面向对象程序设计能够提高软件的重用性、灵活性和扩展性,是一种最常用的程序设计方法。Java语言是一种面向对象程序设计语言,是开发信息系统尤其是Web程序的首选语言,也是Android手机APP、微信小程序等移动环境开发的基础。掌握好Java程序设计语言,最基本的内容就是掌握其语法规则,熟悉常用的类库,理解程序的运行原理。
-
●1.1Java程序介绍
任何Java程序都是由Java类构成的,本节通过Hello World示例说明Java程序的开发过程:第一步是根据语法规则编写源程序,第二步是编译源程序为字节码文件,第三步是加载解释执行。JDK是Java程序最基本的开发环境,除了Java运行时环境之外,JDK还提供了编译、执行、调试Java程序的基本工具。
-
●1.2集成开发环境
集成开发环境为我们提供了友好的代码编辑器、便捷的运行和调试能力,这一节介绍NetBeans集成开发环境的使用。NetBeans中一个程序称为一个项目,一个项目对应一个文件目录,源程序、字节码文件分别在不同的子目录中。
-
第二章基础语法
类是对具体个体的抽象描述,由属性和方法构成。对象是具体的个体,根据需要每个类可以创建多个对象个体,每个对象占用一块内存空间,记录自身各个属性的值。通过对象可以访问其属性,也可以调用其方法。每个非静态方法总是通过对象来调用的,这个调用者就是方法的当前对象。同样的方法代码,执行时的当前对象可能是不同的个体。这一章重点讲解申明Java类、创建对象个体、调用方法的语法规则以及程序运行的基本原理。
-
●2.1Java类
在Java类中可以申明变量和方法,它们分别称为类的成员属性和成员方法。这一节介绍变量和方法申明的语法规则。尤其需要注意的是,在赋值语句中值的类型和变量的数据类型要一致。数据类型分为简单数据类型和引用数据类型两大类,任何Java类都是一种数据类型,而且都属于引用数据类型。
-
●2.2Java对象
对象是具体的个体,语法上由new调用构造方法创建。构造方法是一种特殊的方法,其作用是用来创建对象的,每个Java类至少有一个构造方法。对象创建后一般由相应类型的变量引用,可以访问其属性变量也可以调用方法。
-
●2.3方法调用
方法通过相应类型的对象调用,方法调用一定要遵循方法的形式申明,方法的形式包括方法名、参数、返回类型、访问权限等。系统通过方法调用栈记录程序执行的状态,本节通过参数传递讲解程序运行的过程,并通过调试运行方式观察其过程。
-
●2.4数组
数组是一种最简单的数据集合,数组类型是引用数据类型,其元素类型可以是简单数据类型也可以是复杂数据类型。本节通过示例讲解数组对象的创建、元素的访问、以及数组长度的改变方法。
-
●2.5Java包
一个具有一定功能的Java程序通常会包含数十个、甚至上百个Java类,如同文件系统通过目录组织文件一样,Java程序通过包来组织不同的类,本质上一个Java包对应一个文件目录。本节介绍Java包的申明规则和使用注意事项,同时对Java开发类库中的一些常用类做了说明,比如String类、封装类等。
-
第三章高级语法
根据已有的类可以申明新的子类,子类复用了父类的申明,避免了代码的重复,任何Java类都是Object类的直接子类或者间接子类。本章介绍类的继承规则和多态机制,重点说明编译时类型和运行时类型。多态机制为程序框架设计提供了支撑,充分体现了面向对象程序设计的软件复用性和扩展性特征。
-
●3.1实例成员与类成员
没有用static关键字修饰的成员变量和成员方法也称为实例变量和实例方法,对它们的访问依赖于具体的个体。成员变量和成员方法也可以使用static关键字修饰,分别称为静态变量和静态方法,或者类变量和类方法,对它们的访问不依赖于任何对象。
-
●3.2Java继承
根据已有的类可以申明新的子类,一个父类可以派生出多个子类,但是一个子类只能有一个父类。子类继承父类的成员申明,在子类中可以重新实现所继承得到的成员方法。子类和父类一样都是引用数据类型,都有构造方法,在子类的构造方法中可以使用super语句调用父类中的构造方法。
-
●3.3多态
一个子类类型的对象同时也是一个父类类型的对象,因此可以赋值给一个父类类型的变量。申明变量的类型是语法类型,即编译时类型,但其实际的值可能是null,也可能是子类类型的对象。编译时不进行运算,只根据语法类型进行检查,实际运行时则根据具体的运算值进行执行。本节重点说明多态机制以及应用举例。
-
第四章Java异常
语法上正确的程序在运行过程中也可能产生问题,对于有些问题程序是可以去处理的,我们把这类问题称为Java异常。处理异常有两种方式,一种是通过try-catch去捕获,一种是通过throws申明抛弃,由方法调用者来处理。我们也可以自定义异常类型,并通过throw语句人为的制造异常。
-
●4.1异常类型
每一种异常都有一个对应的异常类型,它们都是Exception类的直接子类或者间接子类。异常分为运行时异常和非运行时异常两大类,直观上理解,运行时异常通常是由主观因素造成的,而非运行时异常是由客观因素造成的。语法上,运行时异常是RuntimeException类型的异常,而其它类型的异常都是非运行时异常。非运行时异常在语法上要求程序必须处理,否则将产生语法错误。
-
●4.2异常处理
处理异常有两种方式,一种是通过try-catch去捕获try语句块内的异常,程序执行过程中如果产生了异常则由相应的catch语句块捕获并处理。另一种处理方式是通过throws申明抛弃,由方法调用者来处理。本节通过文件操作示例具体说明异常处理的这两种方式。
-
●4.3自定义异常
我们也可以自定义异常类型,并通过throw语句人为的制造异常。本节通过具体示例说明自定义异常的用法。
-
第五章集合与IO
Java开发类库中提供了多种结构的集合类型,本章以ArrayList集合类型为例进一步理解面向对象程序设计中多态机制的应用。输入输出是本章的另一个主要内容,我们介绍了访问文件的基本类型以及基本操作方法。本章最后用一个简单的综合应用,说明如何读取网络文件的内容,并结合集合数据类型完成一些基本的功能。
-
●5.1集合类型
ArrayList是java.util包内申明的一种用数组实现的链表数据类型,在ArrayList集合内每个元素都是一个对象,元素是有顺序的并且是可以重复的。我们可以使用add方法往集合内添加一个元素,也可以使用contains方法判断集合内是否已经存在某个元素。需要重点理解的是,contains方法的实现是使用equals方法来判断的。
-
●5.2输入输出
输入输出也是程序常用的基本操作之一,java.io包内提供了字节流和字符流两种格式的文件操作类型,分别用于访问文本文件和二进制文件。除了文件读写之外,不同程序之间的通信也是通过输入输出流的方式进行的。本节介绍如何使用URL类得到输入流,从而实现网络资源的读取。





