新書推薦:
《
中国经济发展的新阶段:机会与选择
》
售價:NT$
454.0
《
DK月季玫瑰百科
》
售價:NT$
959.0
《
为你想要的生活
》
售價:NT$
301.0
《
关键改变:如何实现自我蜕变
》
售價:NT$
352.0
《
超加工人群:为什么有些食物让人一吃就停不下来
》
售價:NT$
454.0
《
历史的教训(浓缩《文明的故事》精华,总结历史教训的独特见解)
》
售價:NT$
286.0
《
不在场证明谜案(超绝CP陷入冤案!日本文坛超新星推理作家——辻堂梦代表作首次引进!)
》
售價:NT$
265.0
《
明式家具三十年经眼录
》
售價:NT$
2387.0
|
編輯推薦: |
本书是学习Java语言的入门教材。本书应用项目驱动式*教学模式,教学内容设计上是以一个典型项目为核心,通过将项目的几个模块分解成不同的学习阶段和不同的章节中,内容循序渐进、深入浅出,结构安排合理,通过精心设计的每一个示例,使学生能够直接感受到并很快理解Java教学知识点。全书共分成12章,分别介绍了面向对象程序设计的基本概念、Java语言基础、Java类和对象、Java面向对象高级特性、实用类及接口、异常处理、图形用户界面、输入输出、多线程编程、Java网络编程、JDBC技术以及Java经典案例分析及应用等。本书内容实用,结构清晰,实例丰富,可操作性强,适合作为普通高等学校计算机专业Java程序设计课程的教材,也可作为相关专业的培训和自学教材。本书特点如下:(1)在教学观念上,重视学生在教学活动中的主体地位,充分调动学生学习的积极性、主动性和创造性,采用以学生为主体,以教师为主导,以能力为主线的教学模式。(2)在教学方法上,摒弃灌输式教育,实行启发式学习。首先,在制定教学方案时,多渠道地激发学生兴趣和动力;其次,再制定具体的课程实施方案,教材制定内容上包括理论课的讲授、配套实验课的任务
|
內容簡介: |
本书从初学者的角度,详细介绍了Java程序设计的重要技术。通过大量的实例和真实项目的讲解,能使读者快速掌握利用Java进行面向对象程序设计的方法和技术。本书基于CDIO的理念,应用案例 项目驱动的学习模式,力争做到通俗易懂、学以致用。全书共13章,分别为进入Java世界、Java程序设计基础、Java中数组的应用、面向对象程序设计基础类与对象、面向对象程序设计高级特性、Java实用类与接口、Java异常处理、Java GUI图形用户界面设计、Java IO输入输出流、多线程编程、Java网络编程、数据库程序设计和项目开发实战。 本书集作者多年的教学和科研经验编写而成,突出应用能力的培养,注重理论与实践相结合,由浅入深,讲解详尽,实例丰富,*后给出了一个真实项目案例的开发框架及实现方法,是一本实用性突出的教材。本书适合作为高等学校程序设计语言课程的教材,也可作为从事软件开发及相关领域的工程技术人员的自学参考书。
|
關於作者: |
作者简介:赵凤芝,教授,一直工作于高等学校计算机教学和科研一线,求真务实,先后主持、参加了国家重大科技、863、十一五规划等科研项目20余项。其中国家级课题7项,省部级课题10项,局级项目多项,是国家十一五规划子课题负责人。获省教委科技进步一等奖1项,三等奖2项,部级科技进步三等奖1项,局级奖多项。省优秀教学成果奖获得者。近年发表学术论文30余篇,出版著作6部。荣获市优秀教师等荣誉称号,曾荣获优秀教学质量一等奖,优秀教学成果奖 。校级重点课程建设课程负责人。目前为中国计算机学会高级会员,东北石油大学秦皇岛分校计算机科学系系主任,黑龙江省高职高专计算机类教学指导委员会副主任,省计算机等级考试命题组专家, IT项目评审组专家。
|
目錄:
|
目录第1章进入Java世界11.1初识Java11.1.1Java语言的诞生与发展11.1.2Java语言的特点21.1.3Java应用开发体系41.2面向对象与程序设计语言51.3学习Java技术可以做什么61.4Java核心技术体系71.4.1Java核心技术基础部分71.4.2Java核心技术应用部分81.5Java的开发环境111.5.1什么是JDK111.5.2下载JDK121.5.3完成安装JDK131.5.4系统环境配置151.5.5测试JDK配置是否成功171.5.6开发工具Eclipse简介171.6简单的Java程序24本章总结29习题30
第2章Java程序设计基础312.1Java的基本语法312.1.1Java的标识符与关键字312.1.2Java中的注释342.1.3Java中的常量和变量372.1.4Java的数据类型38Java程序设计基础与实践目录2.2Java的运算符与表达式482.2.1算术运算符和算术表达式482.2.2赋值运算符和赋值表达式522.2.3关系运算符和关系表达式532.2.4逻辑运算符和逻辑表达式552.2.5位运算符562.2.6条件运算符和条件表达式592.2.7表达式中运算符的优先次序602.3Java流程控制612.3.1顺序流程612.3.2分支流程612.3.3循环控制流程702.4项目案例782.4.1学习目标782.4.2案例描述782.4.3案例要点782.4.4案例实施782.4.5特别提示82本章总结82习题82
第3章Java中数组的应用853.1什么是数组853.2一维数组853.3一维数组的应用883.4二维数组与多维数组923.5二维数组的应用953.6项目案例983.6.1学习目标983.6.2案例描述993.6.3案例要点993.6.4案例实施993.6.5特别提示1023.6.6拓展与提高102本章总结102习题102
第4章面向对象程序设计基础类和对象1044.1面向对象的基本概念1044.1.1面向对象程序设计思想1044.1.2面向对象程序设计方法特点1054.2对象与类1054.2.1日常生活中看对象与类的关系1054.2.2成员1064.3面向对象的4个基本特征1074.3.1继承性1074.3.2抽象性1074.3.3封装性1074.3.4多态性1084.4Java实现面向对象程序设计1084.4.1类的定义与对象的创建1084.4.2命名的规则1094.5类的成员变量1104.5.1变量属性的修饰符1104.5.2变量的初始化1124.5.3对成员变量的访问1134.6类的成员方法1154.6.1方法定义1154.6.2方法的调用及参数传递1164.6.3Java新特性可变参数Varargs1174.6.4构造方法1184.6.5方法的重载1204.7对象资源的回收1224.7.1垃圾对象1224.7.2finalize方法1234.8项目案例1244.8.1学习目标1244.8.2案例描述1244.8.3案例要点1244.8.4案例实施1254.8.5特别提示1304.8.6拓展与提高130本章总结131习题132
第5章面向对象程序设计高级特性1345.1继承和多态1345.1.1继承的概念1345.1.2继承的实现1355.1.3成员变量隐藏1375.1.4方法覆盖1385.1.5继承中的构造方法调用1395.1.6多态性1425.2抽象方法与抽象类1445.2.1抽象方法1445.2.2抽象类1445.2.3扩展抽象类1455.3接口1465.3.1接口的定义1465.3.2接口的实现1465.3.3引用类型的转换1475.4包1485.4.1包及其使用1495.4.2访问控制1505.5内部类1515.5.1认识内部类1515.5.2成员式内部类对象成员内部类1525.5.3成员式内部类静态内部类1545.5.4局部内部类1565.5.5匿名内部类1575.6项目案例1585.6.1学习目标1585.6.2案例描述1595.6.3案例要点1595.6.4案例实施1595.6.5特别提示1635.6.6拓展与提升163本章总结163习题164第6章Java实用类与接口1686.1Object类1686.2字符串处理1716.2.1String类1716.2.2StringBuilder1786.2.3StringTokenizer字符串标记1846.3基本类型的封装类1866.4System与Runtime类1876.4.1System类1876.4.2Runtime类1886.5集合框架1896.5.1Collection接口1906.5.2Set接口1916.5.3List接口1936.5.4Iterator接口1956.5.5Map接口1976.6泛型1996.7时间及日期处理2036.7.1Date类2036.7.2Calendar类2056.7.3DateFormat类2076.7.4SimpleDateFormat类2086.8算术实用类2106.8.1Math类2106.8.2Random类2116.9枚举2136.10Annotation2176.11Lamda表达式2186.12项目案例2206.12.1学习目标2206.12.2案例描述2206.12.3案例要点2206.12.4案例实施2206.12.5特别提示2266.12.6拓展与提高226本章总结226习题227
第7章Java异常处理2297.1异常处理概述2297.1.1程序中错误2307.1.2异常定义2307.2异常分类2317.3异常处理2337.3.1如何处理异常2337.3.2处理异常的基本语句2337.4自定义异常2397.5项目案例2407.5.1学习目标2407.5.2案例描述2407.5.3案例要点2407.5.4案例实施2407.5.5特别提示2417.5.6拓展与提高241本章总结243习题243
第8章Java GUI图形用户界面设计2468.1GUI程序概述2468.1.1AWT简介2468.1.2Swing简介2478.2容器与布局2488.2.1容器2488.2.2布局管理2498.3常用组件2588.3.1AWT组件2588.3.2Swing组件2648.4事件处理2728.4.1事件处理的概念2728.4.2监听器和适配器2738.4.3事件处理的编程方法2838.5项目案例2838.5.1学习目标2838.5.2案例描述2838.5.3案例要点2838.5.4案例实施2838.5.5特别提示2868.5.6拓展与提高286本章总结286习题287
第9章Java IO输入输出流2889.1输入输出流的概述2889.1.1流的概念2889.1.2字节流2899.1.3字符流2909.2java.io包层次结构2919.3常用输入输出类2959.3.1常用输入类2959.3.2常用输出类2979.3.3转换流3029.4文件和目录的操作3039.5对象流和对象序列化3099.5.1序列化概述3099.5.2序列化实现机制3099.6项目案例3119.6.1学习目标3119.6.2案例描述3129.6.3案例要点3129.6.4案例实施3129.6.5特别提示3159.6.6拓展与提高315本章总结316习题316
第10章多线程编程31710.1线程概念31710.2线程的创建及启动31810.3线程状态及转化32310.4线程优先级及调度策略32810.5线程同步与互斥32910.5.1基本概念32910.5.2线程同步33110.6项目案例33510.6.1学习目标33510.6.2案例描述33610.6.3案例要点33610.6.4案例实施33610.6.5特别提示33910.6.6拓展与提高339本章总结340习题340
第11章Java网络编程34111.1网络编程概述34111.2理解TCPIP及UDPIP协议34311.3使用Socket开发TCPIP程序34311.4使用Socket开发UDPIP程序35011.5项目案例35311.5.1学习目标35311.5.2案例描述35311.5.3案例要点35311.5.4案例实施35411.5.5特别提示36211.5.6拓展与提高362本章总结362习题362
第12章数据库程序设计36312.1关系数据库简介36312.2JDBC简介36412.3准备数据库环境36412.4JDBC开发流程36612.5项目案例37012.5.1学习目标37012.5.2案例描述37012.5.3案例要点37012.5.4案例实施37012.5.5特别提示37212.5.6拓展与提高372本章总结372习题372
第13章项目开发实战37313.1问题描述37313.2需求分析37313.3概要设计37413.3.1数据库设计37413.3.2接口设计37513.4代码实现37513.4.1PersonVO类的实现37613.4.2DBConnection类的实现37713.4.3IPersonDAO接口的实现37813.4.4PersonDAOImpl类的实现37913.4.5PersonDAOProxy类的实现38313.4.6DAOFactory类的实现38513.4.7MainMenu类的实现38613.4.8InputHandler类的实现38713.4.9PersonAction类的实现38813.4.10StartApp类的实现391本章总结392习题392
附录Java编程规范393参考文献405
|
內容試閱:
|
前言随着经济的全球化、产业结构的调整以及互联网 大潮的兴起,信息产业的发展得到了前所未有的重视。在软件开发中,面向对象程序设计方法是目前的主流方法,而Java作为一种完全的面向对象的语言,它吸取了其他语言的优点,设计简洁而优美,使用方便而高效,具有简单、面向对象、与平台无关、解释型、多线程、动态、安全性强等特点,成为目前最为流行的程序开发语言之一,得到了普及和应用。Java的风格接近C与C#,特别是它的跨平台性,受到越来越多的程序设计人员的喜爱,在计算机的各种平台、操作系统,以及手机、移动设备、智能卡、家用电器均得到了广泛的应用。Java可运行于多个平台,如Windows、Mac OS及其他多种UNIX版本的系统。Java程序设计也是高等学校计算机及相关学科的核心专业课程,是培养学生软件设计能力的重要课程,在计算机学科的教学中起着非常重要的作用。Java诞生于1991年,Sun Microsystems公司以下简称Sun公司1995年6月把Java这门革命性的语言引入世界。之所以称Java为革命性的编程语言,是因为用以前语言编写的传统的软件系统与具体的开发环境有关,一旦开发环境有所变化就需要对软件系统进行一番改动,耗时费力,而利用Java语言开发的软件系统能在所有装有Java解释器的计算机上运行。Java出现的初衷是出于对独立于平台的需要,世人希望有门编程语言能编写出嵌入到各种家用电器等设备的芯片上且易于维护的程序。但是,人们发现当时的编程语言都针对CPU芯片进行编译,如C、C等,这样,一旦电器设备更换了CPU芯片就不能保证程序正常的运行,可能需要修改程序重新进行编译。Sun公司经过调查发现当时编程语言的这个致命缺点后,于1990年成立了由James Gosling领导的软件开发小组,开始致力于开发一种与平台无关的编程语言。他们的刻苦钻研与努力造就了Java语言的诞生。从此,Java被广泛接受并推动了Web的迅速发展。Java由Sun公司注册,是Sun公司最著名的商标,也是IT行业最著名的商标之一。由于计算机语言更新快,所以本书添加了目前关于Java 5之后引入的一些最新的知识点,基于CDIO的工程教育理念,应用案例 项目驱动的学习模式,力争做到通俗易懂,学以致用。通过引导学生完成项目任务,达到使学生掌握必备知识和拓展知识的目的。如何尽快掌握Java技术呢?学习任何技术都要从基础开始,编写本书的目的是让初学者能够通过最简单的描述和说明来跨越学习Java的第一道门槛,提供一本零起点的面向对象程序设计的初级教程。读Java程序设计基础与实践前言者如果简单调研一下就不难发现,目前市面上最多的就是这类Java基础入门的教材。作者希望采用一种最有效的学习与培训的捷径和方法,这就是项目驱动训练法Projectdriven training,也就是用项目实践来带动理论的学习。基于此,本书采用案例 项目驱动的模式,深入浅出地全面介绍了Java语言程序设计的知识。通过项目实践,可以对技术应用有明确的目的性为什么学,对技术原理更好地融会贯通学什么,也可以更好地检验学习效果学得怎样。通过本书的学习,读者不仅学会了一种语言,而且能够在一定程度上掌握面向对象的思维方式,有能力编写真正有实际意义的应用程序,进行实际项目开发。Java语言基础是一个实践性很强的课程,我们的指导思想是在有限的时间内精讲多练,培养读者的实际动手能力、自学能力、开拓创新能力和综合解决问题能力,将专业能力的培养贯穿始终。全书共分为13章: 第1章进入Java世界;第2章Java程序设计基础;第3章Java中数组的应用;第4章面向对象程序设计基础类与对象;第5章面向对象程序设计高级特性;第6章Java实用类与接口;第7章Java异常处理;第8章Java GUI图形用户界面设计;第9章Java IO输入输出流;第10章多线程编程;第11章Java网络编程;第12章数据库设计;第13章项目开发实战。在本书附录中,还介绍了Java编程规范。本书每章都有很多程序实例,每章后面配备了开发案例。本书通过浅显易懂的实例引导初学者循序渐进地学习Java程序设计语言。本书通俗易懂,内容丰富,结构合理,注重理论与实践相结合,针对性强,突出应用能力的培养。本书结构设计独特,每章均配有典型案例和习题,与每章知识点相辅相成,简单易学,使初学者更容易掌握,是一本实用性很强的教材。本书所有例题都在Java SE8环境下编译通过并成功运行。本教材配套的教学资源,读者可以从清华大学出版社网站www.tup.com.cn免费下载。本书由赵凤芝、邢煜、段鸿轩、王茱编著,包锋主审。其中,第1、2、3、4章由赵凤芝编写,第5、6、7章由王茱编写,第8、9、10章由邢煜编写,第11、12、13章及附录由段鸿轩编写,全书由赵凤芝负责组织编写、统稿和定稿,包锋负责审校。本书的编写得到了梁立新及相关人员的大力支持和帮助,在此一并表示感谢!鉴于作者的水平有限,书中难免有不足之处,敬请广大读者批评指正。
作者2017年5月
第3章Java中数组的应用
●了解数组的概念和特点。●熟悉一维数组的定义和使用。●熟悉二维数组的定义和使用。●了解多维数组。●掌握数组的应用。
通过本章的学习,学会数组的定义和引用。掌握应用数组进行成批数据的处理。数组在实际应用中使用比较普遍,应熟练掌握使用方法。3.1什么是数组前面程序中使用的变量均为基本数据类型的变量,各个变量之间没有任何联系。有时需要定义一些变量,如s1,s2,s3,s4,s5,,s10,它们可以代表同一个班中10个学生的成绩,这些变量都用相同的字母开头,只是后面的数字有所区别,可以把这种元素组成的一组变量定义为数组。在Java语言中,数组是一种最简单的复合数据类型引用数据类型。数组提供了一种将有关联的数据分组的方法。数组的主要的特性如下:1 数组是数据的有序集合。2 数组中的每个元素都具有相同的数据类型。3 所有元素具有相同的数组名字。用数组名和下标可以唯一地确定数组中的元素。数组有一维数组、二维数组和多维数组。Java语言中变量的下标用方括号括起来。即s\[1\],s\[2\],,s\[10\],这就是数组类型变量。注意: 数组的有序性,是指数组元素存储的有序性,而不是指数组元素值有序。利用这种有序性,在后面的章节中,可以方便地解决一些问题。3.2一维数组一维数组中各个数组元素是排成一行的一组下标变量,用一个统一的数组名来标识,用下标来标明其在数组中的位置,下标从0开始。一维数组通常和一重循环配合使用,以实现对数组元素的处理。Java程序设计基础与实践第3章Java中数组的应用1. 一维数组的声明要使用一个数组,必须首先声明数组。通用的一维数组的声明格式如下: 数组元素类型数组名\[\];或数组元素类型\[\] 数组名;例如: inta\[\];声明一个整型数组,名称是afloat\[\]b;声明一个实型数组,名称是b说明:1 数组名的命名原则遵循标识符的命名规则。本例中a就是数组名。2 上面第二种数组声明格式中的方括号紧跟在类型标识符的后面,而不是跟在数组变量名的后面,两者在用法上没有区别。例如,下面的两个定义是等价的。int x\[\];int\[\]x;2. 一维数组的创建和其他语言不同,在Java语言中,尽管在上面声明了x是一个整型数组,但实际上并没有数组对象存在。为了使x数组成为物理上存在的整型数组,还必须用运算符new来分配地址并且把它赋给x。运算符new是专门用来分配内存的运算符,这个过程称为数组创建。数组创建的一般形式如下: 数组名= new 数组元素类型 \[size\];数组元素类型指定被分配的数据类型,size指定数组中元素的个数,即数组的长度, 数组名是被引用到数组的数组变量。也就是说,使用运算符new来分配数组,必须指定数组元素的类型和数组元素的个数。用运算符new分配数组后,数组中的元素将会被自动初始化为所声明数据类型的默认值。另外,数组中的元素个数size长度是不能改变的,这和后面要介绍的集合是有区别的。例如: a=new int\[10\];通过上面这个语句的执行,数组a将会指向10个整数,而且数组中的所有元素将被初始化为0。这里创建了一个一维数组a见图31,该数组由10个数组元素构成,其中每一个数组元素都属于整型数据类型,在内存中分配10个占整型单元的连续存储空间,并将数组的首地址送给a。数组a的各个数据元素依次是a\[0\],a\[1\],a\[2\],,a\[9\]注意,下标从0至9。每个数组元素将被初始化为0。图31一维数组在实际应用中,经常将数组声明和数组创建的两条语句合并为一个语句。例如:inta\[\];a=new int\[10\];这两条语句合并成下面的一个语句: inta\[\]=new int\[10\];3. 一维数组的初始化上面介绍了使用运算符new来为数组所要存储的数据分配内存,并把它们分配给数组变量。这时数组中的元素将会被自动初始化为默认值。各种数据类型数组元素的默认初始值如下:●整型、短整型、字节型默认值为0。●长整型默认值为0L。●实型默认值为0.0f或0.0d。●字符型默认值为''\\0'',也可写成''\\u0000''。●布尔型默认值为false。●类对象默认值为null。数组的初始化工作非常重要,不能使用任何未初始化的数组。一旦分配了一个数组,就可以在方括号内通过指定它的下标来访问数组中特定的元素,或者为它们赋值。所有的数组下标都从0开始。数组的初始化可以直接使用大括号{ }完成,不需要运算符new,也不用指定元素个数,Java会自动计算数组的长度,这个过程称为数组的静态初始化。例如: int a\[\]={1,2,3,4,5};表示a\[0\]=1,a\[1\]=2,a\[2\]=3,a\[3\]=4,a\[4\]=5。再如下面的语句将值2赋给数组a的第二个元素。 a\[1\]=2;4. 一维数组的引用数组在定义之后,可以在程序中引用其数组元素。数组元素的引用形式如下: 数组名\[下标\]说明: 引用数组元素时,下标可以是整型常数、已经赋值的整型变量或整型表达式。例如: i=1;j=5;,则a\[i j\]相当于a\[6\]。注意: 引用数组元素时,下标不能越界。Java的运行系统会检查以确保所有的数组下标都在正确的范围以内。如果企图访问数组边界以外负数或比数组边界大的元素,则将引起运行错误。若有定义: inta\[5\];则数组a的元素分别为a\[0\]、a\[1\]、a\[2\]、a\[3\]、a\[4\];但a\[5\]不是。每个元素都可作为一个整型变量来使用,例如: a\[0\]=5;a\[3\]=a\[1\] 4;a\[''D''-''B''\]=33.3一维数组的应用数组的应用非常广泛。使用数组通常依据数组下标和边界的概念,结合前面讲过的for循环一同使用。下面介绍几个数组应用的例子。1. 运用一维数组来计算一组数字的和
|
|