温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
Java
项目
实战
精编
全国高等职业教育计算机类规划教材工作过程系统化教程系列 2008 年国家精品课程配套教材 Java 项目实战精编 陈显刚 李 季 主 编 张 静 孙凌玲 副主编 姜惠民 主 审 Publishing House of Electronics Industry 北京BEIJING 内 容 简 介 本书是为了满足新世纪高等职业学校教学的需要而编写的教材。本书较全面地介绍了 Java 基本设计和应用技术,内容包括面向对象的技术、Java Swing 技术、IO 技术、线程技术和网络技术及 Java 项目开发的过程等。本书以奠定 Java 编程思维模式、培养 Java 项目开发能力为目标,注重 Java 项目开发技术的实用,通过项目介绍 Java 知识体系,由浅入深、循序渐进,符合认知规律及职业发展规划,并配有项目案例库。本书可作为高等职业学院计算机专业专科及本科学生的教材,也可供与计算机相关专业的技术人员使用。未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据 Java 项目实战精编陈显刚,李季主编北京:电子工业出版社,2009.7 全国高等职业教育计算机类规划教材工作过程系统化教程系列 ISBN 978-7-121-08966-4 .J .陈李 .JAVA 语言程序设计高等学校:技术学校教材 .TP312 中国版本图书馆 CIP 数据核字(2009)第 086181 号 策划编辑:程超群 责任编辑:王凌燕 印 刷:装 订:出版发行:电子工业出版社 北京市海淀区万寿路 173 信箱 邮编 100036 开 本:7871 092 1/16 印张:14.5 字数:368 千字 印 次:2009 年 7 月第 1 次印刷 印 数:4 000 册 定价:23.00 元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888。质量投诉请发邮件至 ,盗版侵权举报请发邮件至 。服务热线:(010)88258888。前 言 Java 语言是一种新型的网络编程语言,其卓越的特性为无数开发人员所推崇,目前越来越多的应用开发采用了基于 Java 技术的解决方案。Java 是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。作为一种真正面向对象的编程语言,它提升了应用程序的编程概念和开发思路;作为理想的面向对象的程序设计语言,Java 以自身的简单性和强大功能成为 Internet 编程和跨平台开发中最常用的开发语言。Java 语言具有面向对象、与平台无关、安全、稳定和多线程等优良特性,是目前软件设计中极为强大的编程语言。Java 语言不仅可以用来开发大型的应用程序,而且特别适合 Internet的应用开发。尤其是 Java Swing 推出之后,不仅使 Java 的功能更加强大,而且使 Java 具备了“处处可用”的特点,Java 已成为网络时代最重要的语言之一。本书是工作过程导向系统化课程教材,是行动体系课程开发的成果。以培养能力为主线,按工作过程中不同工作任务的相关性来实现知识和实践技能的整合。按易学、易懂、易掌握的原则,结合 Java 技术,由浅入深,循序渐进地,通过项目介绍 Java 知识体系。本书聘请启明信息科技股份有限公司高级软件工程师杨平参编。作为 ERP 项目组项目经理,他具有丰富的实践开发经验。他对本书的编写模式、项目设计思想、编码规范等方面给予指导,并根据企业常用的实际知识和技能,设计全书项目,以案例引领知识点,拓宽程序设计思路,通过实训项目提高实践技能。全书共分 5 章。第 1 章通过掷骰子游戏项目,阐述面向对象的技术;第 2 章通过简单计算器项目,简述 Java Swing 技术;第 3 章通过聊天室项目,简述 IO 技术、线程技术和网络技术等;第 4 章通过二十一点游戏项目,加强 Java Swing 技术和分析问题的能力;第 5 章通过学生信息管理系统综合项目,进一步强化项目开发的能力,同时掌握软件开发过程。通过 5 个项目使学生理解并掌握利用 Java 技术解决实际问题的能力,而不是就 Java 技术而学 Java 技术。本书的最大特点是通过项目对 Java 的知识点进行精心编排。项目设计顺序符合认知规律及职业规划发展规律,通过对项目的学习,加深读者对所学知识的理解和提升。通过对应的实训项目训练,提高分析问题和解决问题的能力。本书由陈显刚、李季主编,张静、孙凌玲任副主编;参与本书编写的还有张雨、孙佳帝、金鑫、许春艳、乔丹、杨平;由姜惠民主审。由于计算机技术发展十分迅速以及作者学识水平所限,加之时间仓促,书中的疏漏和错误在所难免,敬请广大读者不吝批评指正。编 者 20072009 年 4 月 目 录 第 1 章 掷骰子(1)1.1 项目目标(1)1.2 项目分析(1)1.3 代码思路及实现(1)1.3.1 代码思路 (1)1.3.2 代码实现 (2)1.4 运行与发布 (3)1.4.1 运行(3)1.4.2 发布(3)1.5 本项目实现中常见问题 (4)1.6 项目技术支持(4)1.6.1 面向对象的基本概念(4)1.6.2 面向对象的基本特征(5)1.6.3 类(5)1.6.4 对象(7)1.6.5 方法(8)1.6.6 继承性(12)1.6.7 接口(14)1.6.8 随机数生成函数(18)1.7 实训(19)1.7.1 加法运算题(19)1.7.2 员工涨工资(19)第 2 章 简单计算器(20)2.1 项目目标(20)2.2 项目分析(21)2.3 代码实现(23)2.4 运行与发布(27)2.4.1 运行(27)2.4.2 发布(27)2.5 本项目实现中常见问题(28)2.6 项目技术支持(28)2.6.1 Swing 简介(28)2.6.2 项目涉及的 Swing 组件(29)2.6.3 事件处理机制(35)2.7 实训(43)第 3 章 聊天室(44)3.1 项目目标(44)3.2 项目分析(44)3.2.1 界面(44)3.2.2 总体设计(45)3.3 代码思路及实现(46)3.3.1 代码思路(46)3.3.2 代码实现(46)3.4 运行与发布(53)3.4.1 运行(53)3.4.2 发布(53)3.5 本项目实现中常见问题(54)3.6 项目技术支持(54)3.6.1 Java 的输入/输出(54)3.6.2 线程(72)3.6.3 网络编程技术(84)3.7 实训(94)第 4 章 二十一点游戏(95)4.1 项目目标(95)4.2 项目分析(97)4.3 代码实现(98)4.4 运行与发布(106)4.4.1 运行(106)4.4.2 发布(107)4.5 本项目实现中常见问题(107)4.6 项目技术支持(108)4.6.1 菜单(108)4.6.2 Vector 向量类(109)4.6.3 集合类简介(110)4.6.4 ImageIcon 组件(112)4.6.5 Toolkit 组件(114)4.7 实训(115)第 5 章 学生信息管理系统(116)5.1 项目目标(116)5.2 项目需求分析(116)5.3 概要设计(117)5.3.1 架构设计(117)5.3.2 功能分配(117)5.3.3 功能、业务流程设计(117)5.3.4 对象模型(119)5.4 详细设计与代码实现(120)5.4.1 数据库设计与实现(120)5.4.2 包的设计与类的管理(121)5.4.3 业务逻辑层之实体类的设计与实现(122)5.4.4 连接数据库公共类设计与实现(127)5.4.5 业务逻辑层之管理类设计与实现(127)5.4.6 视图层设计与实现(147)5.5 运行与发布(214)5.5.1 运行(214)5.5.2 发布(214)5.6 本项目实现中常见问题(215)5.7 项目技术支持(215)5.7.1 什么是 JDBC(215)5.7.2 两层模型和三层模型(215)5.7.3 解析 JDBC(216)5.7.4 JDBC 如何连接数据库(219)5.8 实训(220)参考文献 (222)1 第 1 章 掷 骰 子 1.1 项目目标 丢下两个骰子,若数值的总值为 7 点,则赢;否则输。1.2 项目分析 项目的操作过程如下:3(1)定义一个表示骰子的类,能掷出数字及获取当前掷出的数。(2)定义另一个类,在此类中建立骰子类的两个对象,当掷出时判断两个骰子的数值的总值是否为 7,来确定是否成功。(3)定义第三个类,对以上操作进行测试。1.3 代码思路及实现 1.3.1 代码思路 1定义Die类 Die 类表示一个骰子有一个 faceValue 属性,为整型。在 Die 类中有 roll()方法和getFaceValue()方法。roll()方法功能使 faceValue 属性设置为 16 中的一个随机值,没有返回值。getFaceValue()方法功能为取出 faceValue 值。在本类中使用到了Math.random()方法,此方法可以实现取随机数的功能,返回值为double类型,值的范围为 0.01.0。2定义DieGame类 提示:DieGame 类有 die1、die2 两个属性,类型分别为 Die 类类型,有一个 play()方法。play()方法返回一个布尔类型,true 表示丢下两个骰子数值的总值为 7 点,否则为 false。3编写一个测试类DieTest,对上面定义的类进行测试 main()方法中产生 DieGame 对象,执行 play()方法后显示出输赢。2 1.3.2 代码实现 1Die类 import java.util.*;public class Die private int faceValue;public void roll()Random random=new Random();this.faceValue=Math.abs(random.nextInt()%6+1;/取 16 间任意整数 public int getFaceValue()return this.faceValue;2DieGame类 public class DiceGame public Die die1=new Die();public Die die2=new Die();public boolean play()/掷骰子,两粒骰子数相加得7为true,否则为false boolean flag=false;die1.roll();die2.roll();System.out.println(die1.getFaceValue();System.out.println(die2.getFaceValue();/输出本次掷得的骰子数 int num=die1.getFaceValue()+die2.getFaceValue();if(num=7)flag=true;else flag=false;return flag;3 3测试类DieTest public class DieTest public static void main(String args)DiceGame dg=new DiceGame();if(dg.play()System.out.println(您赢了!);else System.out.println(您输了,请下次努力!);1.4 运行与发布 1.4.1 运行 将 Die.java、DieGame.java 和 DieTest.java 3 个文件保存到一个文件夹中,如 e:Die。在使用 javac 命令进行编译之前,应使用如下命令设置类路径:e:Die set classpath=e:Die 然后利用 javac 命令对文件进行编译,使用如下命令:Javac DieTest.java 之后,使用 java 执行程序:Java DieTe