本书重点介绍Java语言的核心语法,程序的流程控制,Java面向对象程序设计的主要内容,常用API,JDBC数据库编程等Java程序设计的核心基础内容。另外,通过大量的示例向读者展示Java的编程规范和编程方法,帮助读者建立由感性到理性的深入认识,特别注重提高读者运用Java语言和面向对象技术解决实际问题的能力,读者通过实践例题以及完成课后编程习题,能够掌握Java编程的基本技巧,为今后进一步学习运用Java语言进行各种应用的开发打下坚实的基础。
适读人群 :本书适用于高职高专、应用型本科、中职等层次学校的相关专业使用,可作为Java初学者的入门教材和Java相关课程设计教材,也可以作为Java开发工程师的培训教材,还可以作为企业岗前培训教材。
本书的目标是帮助广大高职高专学生学习和掌握Java程序设计语言的核心基础知识和技术。本书知识点系统连贯、逻辑性强; 重视实际应用,案例丰富;学习模块划分合理,重难点突出,利于组织教学。作为一种编程语言和技术的入门教程,zui难也zui重要的是令一些非常复杂又难以理解的编程思想和问题简单化,令初学者能尽量轻松理解并快速掌握。本书对每个知识点都进行了较详尽的讲解,精心设计了相关的例程,尽量用生动形象的案例来讲解抽象的编程思想和模拟这些知识点在实际工作中的可能运用,力求做到知识由浅入深、由易到难,循序渐进地引导学生和读者逐步掌握Java程序设计的核心基础知识和技术。
Java语言具有简单、面向对象、分布式、健壮性、安全性、可移植性、多线程、高性能等诸多优点,是近十年来计算机编程语言排行榜上的佼佼者,可以用于开发各种领域的应用软件。熟练掌握Java语言是软件从业人员的必备技能。
本书的目标是帮助广大高职高专学生学习和掌握Java程序设计语言的核心基础知识和技术。本书知识点系统连贯、逻辑性强;重视实际应用,案例丰富;学习模块划分合理,重难点突出,利于组织教学。作为一种编程语言和技术的入门教程,最难也最重要的是令一些非常复杂又难以理解的编程思想和问题简单化,令初学者能尽量轻松理解并快速掌握。本书对每个知识点都进行了较详尽的讲解,精心设计了相关的例程,尽量用生动形象的案例来讲解抽象的编程思想和模拟这些知识点在实际工作中的可能运用,力求做到知识由浅入深、由易到难,循序渐进地引导学生和读者逐步掌握Java程序设计的核心基础知识和技术。
本书共包含10个项目。项目1认识Java语言,介绍计算机程序和Java程序设计语言的基本情况;项目2开发第一个Java程序,主要介绍JDK的安装使用、Java的集成开发环境的安装使用,并动手实现第一个Java应用程序;项目3 Java语言基础、项目4程序的流程控制和项目5方法与数组,详细介绍Java语言的核心语法、流程控制语句、方法的定义和调用、数组的使用等,这些都是使用Java语言编写应用程序代码的最重要的基本知识,读者一定要认真学习每一个知识点;项目6类与对象和项目7面向对象特性,详细介绍了Java面向对象编程的主要知识和技术,对于初学者来说面向对象的编程思想需要多思考、多实践、花较大精力来理解和掌握;项目8常用API,介绍了Java系统类库提供给程序员使用的一些常用且实用的类,尤其是集合类在实际开发中很常用;项目9异常处理,介绍了Java的异常处理机制和异常处理语句,可以令读者编写的程序更健壮和更友好;项目10 JDBC数据库编程,详细介绍了Java连接数据库和对数据库进行操作的步骤和代码的编写,JDBC数据库编程技术在实际开发中运用十分广泛,读者应认真学习和掌握JDBC数据库编程技术,为后续运用Java语言开发各种类型的应用程序打下坚实的基础。
Java程序设计课程是实践性较强的课程,读者需要通过大量的实践以掌握Java语言的使用、编程技巧,养成良好的规范编码的习惯,因此本书每个项目均设计了许多例程,使读者能通过这些例程加强对知识点的理解,也能通过动手实现这些例程而潜移默化地锻炼动手编码能力。每章结束时都给出了典型的实训任务,通过对这些实训任务的实践练习,可以进一步锻炼和提高编码能力。
为了方便教学,本书还配有电子课件等教学资源包,任课教师和学生可以登录“我们爱读书”网(www.ibook4us.com)免费注册并浏览,或者发邮件至hustpeiit@163.com免费索取。
本书由武汉软件工程职业学院肖英任主编;由武汉软件工程职业学院刘嵩、赵丙秀、马力,江西应用科技学院彭军,青岛理工大学琴岛学院马金霞任副主编;由武汉软件工程职业学院刘洁、郭俐任参编,最后由肖英统稿。
由于时间仓促,加之编者水平有限,书中不妥或错误之处在所难免,殷切希望广大读者批评指正。同时,恳请读者一旦发现错误,及时与编者联系,以便尽快更正,编者将不胜感激。
编者2016年12月
项目1认识Java语言
1.1计算机程序
1.2Java程序设计语言
1.3Java平台介绍
项目2开发第一个Java程序
2.1下载、安装和配置JDK
2.2JDK+记事本开发Java程序
2.3集成开发环境Eclipse
2.4使用Eclipse开发Java程序
2.5Java程序开发的一般流程
项目3Java语言基础
3.1Java语言的基本语法
3.2常量与变量
3.3运算符与表达式
3.4简单的输入输出
项目4程序的流程控制
4.1流程控制语句
4.2选择结构语句
4.3循环结构语句
4.4跳转控制语句
项目5方法与数组
5.1方法
5.2数组
项目6类与对象
6.1类与对象的基本概念
6.2创建类
6.3对象的使用
项目7面向对象特性
7.1对象的创建与销毁
7.2引用赋值
7.3方法
7.4类的静态成员
7.5继承
7.6抽象类与接口
7.7类的转型
7.8内部类
7.9包与访问控制修饰符
项目8常用API
8.1API的概念
8.2字符串处理
8.3Math类
8.4日期时间类
8.5集合类
项目9异常处理
9.1异常概述
9.2处理异常
9.3throw和throws关键字
9.4自定义异常
9.5Java的内置异常
项目10JDBC数据库编程
10.1JDBC数据库编程概述
10.2JDBC数据库编程基本操作
10.3JDBC编程进阶
参考文献
3.1 Java语言的基本语法 每一种语言都有自己的语法规则,编程语言也不例外。使用Java语言进行程序开发就必须遵从Java语言的语法规则。
3.1.1Java程序的基本结构 Java程序可由若干个类组成,至少有一个类,初学者暂时可以简单理解为一个类就可以成为一个Java程序,这个类中需要包含一个main()方法,它是Java程序的执行入口。这样的类定义的一般格式如下: 修饰符class类名{ public static void main(String\[\] args){ 程序代码 } } 需要注意的几个地方: (1)修饰符目前用public,表示这个类是公共的,它的可访问权限是最大的。 (2)class是关键字,声明定义了一个类。 (3)Java语言是严格区分大小写的,这里的class不能写为Class,public不能写为Public,否则Eclipse编译时将报错。 (4)类名按照见名知意原则来取名,一般由一个或多个单词组成,每个单词首字母大写,如HelloWorld。 (5)整个类体由一对大括号{}括起来,内部包含整个main()方法的定义。 (6)main()方法由方法头和一对大括号{}括起来的方法体组成。方法头的写法固定,其中只有args这个参数名是可以修改的。方法体中的程序代码可以包含若干条可执行语句,每条语句以分号(;)结束,代表实现一定的功能,例如: System.out.println("Welcome to Java World! "); 这条语句的功能是输出这句话:Welcome to Java World! 除了双引号("")内部包含的内容,其他地方的符号全部是英文状态下的符号,如点(.)、双引号("")、分号(;)、大括号、小括号等。 (7)Java语言对代码的格式编排没有严格的限定,比如类定义的代码也可以按照如下格式进行排版: 修饰符class类名{public static void main(String\[\] args){ 程序代码}} 但这样的代码的层次不清晰,不便于阅读。因此,为提高程序代码的可读性,建议按照以下格式进行代码的排版: publicclassHello { publicstaticvoidmain(Stringargs\[\]){ String name="Tom"; System.out.println("Hello," + Tom); } } 被包含在类体内部的整个main()方法代码整体向右缩进,main()方法体中每一条语句各占一行。
3.1.2标识符 在编写程序时,常常需要定义一些符号名称来标记类名、方法名、包名、变量名、参数名等,这些符号名称被称为标识符。标识符是由字母、数字、下划线(_)和美元符号($)组成的字符序列,区分大小写,不能以数字开头,不能是Java中的关键字。 以下为合法的标识符: aIdentifier、_Identifier、$Identifier、cat、stu_1 以下标识符不合法: 2018WorldCup(数字开头)、Identifier@Java(@为非法组成部分)、else(关键字) 在程序中使用标识符时,必须严格遵守标识符的定义规则,否则程序在编译时会报错。除以上必须遵守的规则之外,为了增强代码的可读性,建议也遵循以下的编码规范: (1)类名、接口名每个单词的首字母大写,例如HelloWorld,MyClass。 (2)变量名、方法名第一个单词全小写,从第二个单词开始每个单词首字母大写,例如stuName,getStuName。 (3)常量名所有字母都大写,多个单词之间可以使用下划线连接,例如DAY_OF_WEEK。 (4)包名所有字母全小写,例如java.util。
3.1.3关键字 关键字是Java语言中事先定义好的已经被赋予了特定含义的单词,也称作保留字。关键字对于Java的编译器来说有特殊的作用,如先前提到的class表示定义一个类。目前Java语言中的关键字如下所示: abstract boolean break byte case catch char class const continue default do double else extends final finally float for goto if implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while assert enum 注意,所有的关键字都是小写,不能将关键字当作标识符来使用。
3.1.4注释 注释是对程序中某行代码或某个功能的解释说明。在源代码中写上注释,是一个良好的开发习惯。一方面,注释可以帮助自己或者他人更好地理解源代码的用途、使用条件、使用方法、结果等;另一方面,便于以后的系统维护和升级等。 注释在Java源文件中有效,在编译程序时编译器会忽略这些注释信息,不会将其编译到字节码文件中去。 Java语言的注释有三种类型,具体如下。 1.单行注释:// “//”后面的内容为注释内容,不参与编译。例如: int i=1;//定义整型变量i,初值为1 2.多行注释:/*......*/ 注释内容较长,需要换行时,使用“/* 注释内容 */”的形式进行注释。例如: int i=1; /*定义整型变量i i的初值为1 */
3.Javadoc注释:/**.......*/ 使用/**.......*/括起来的注释,可以使用Javadoc工具提取其注释内容生成HTML形式的开发帮助文档。
3.2 常量与变量 计算机可以处理的数据是一个广义的概念。例如,128,3.14159是数据,“你好”这一串字符也是数据,前者是数值数据,后者是字符串数据,是非数值数据。显然,为了表示这些数据,它们在内存中必须以不同的方式存放,占用的存储空间也不同,为处理这些数据,计算机能够对它们施加的运算类型也不同。为此,编程语言建立了数据类型的概念,对程序中处理的数据进行分类。 每一种数据类型定义了一个具有相同性质的数据集合。各种数据类型的数据具有不同的性质。程序中所用到的每一个数据(包括常量和变量),都有一个和它相联系的类型。由此决定了数据所具有的值,也决定了对该数据所能进行的操作。
3.2.1常量 常量就是程序中固定不变的值,是不能改变的数据。 一种常量是程序中出现的字面值,它们也有所属的数据类型。比如:100是整型常量,3.14159是浮点型常量,‘A’是字符型常量,“你好”是字符串常量,true和false分别是表示逻辑真和假的常量。 这种字面值常用于给变量赋值,例如: doubleprice=8.5; //定义了double类型的变量price,赋予初值8.5 其中赋值号(=)的作用是将其后边的值赋给左边的变量,8.5就是浮点型字面值常量。price是变量,它的值是可以修改的,可再用赋值号(=)将其值修改为别的值。例如: double price=8.5; //定义了double类型的变量price,赋予初值8.5 price=10.5;//修改price变量的值为10.5 另一种常量:通过关键字final将变量定义为常量。一个变量如果被定义为常量,则其值不可再修改。例如: final double PI=3.14; //正确 PI=3.1415926; //编译时报错,常量PI的值定义后不可再修改 常量命名的规范是:所有字母全大写,多个单词之间用下划线(_)连接。 3.2.2变量 变量是指在程序执行过程中其值可以改变的数据。程序运行期间,随时可能产生一些临时数据,程序会将这些数据保存在一些内存单元中,这些内存单元用一个标识符来进行标识,这样的内存单元就是变量,定义的标识符就是变量名,内存单元中存储的数据就是变量的值。 通过代码来学习变量的定义: int m=10;//定义了整型变量m,初值为10 int n;//定义了变量n,未赋予初值 n=m+3;//取变量m的值与3相加,和值存入变量n的内存单元 上述代码执行到第二行时的内存状态如图31所示,执行第三行时的内存状态如图32所示。 图31变量m、n在内存中的状态(第二行) 图32变量m、n在内存中的状态(第三行) 在方法体内,变量定义后须先赋值,然后才能使用。 例程31VariableDemo.java。 package ch03; public class VariableDemo { public static void main(String\[\] args) { int m; System.out.println(m);//此行会报错 } } 编译时,语句System.out.println(m);处会报错,原因就是变量m定义了变量名,未经赋值不可使用。 将上述例程代码修改为如下代码: package ch03; public class VariableDemo { public static void main(String\[\] args) { int m;//定义变量m,未赋值 m=10;//m的内存单元存入整型值10 System.out.println(m); } } 可编译成功,运行结果将输出:10。