《Java语言程序设计与实现(微课版)教学教案.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计与实现(微课版)教学教案.docx(175页珍藏版)》请在课桌文档上搜索。
1、第一幸Java语言叙述一、课程概述本课程的考核方式本课程是考克课,主要采取过程考核和期末考核相结合的考核方法.过程考核50%(实训、作业、阶段性测脸、考勤、课堂表现等)期末考试50%(学院统一时间,笔试)学习建议(1)掌握好基础知识(2)注重程序编写的实践Ada等强制式语音中都体现了面向时象式范型的思想,而C+、EIFF1.E等对象式语言中则充满了强制式语言的思想。在80年代中期问世的还有一个有名的多范型谙有Nia1.,它支持强制式与函数式范型,而新扩充的Nia1.版本还可以支扑逻辑式与对望式范型。把各种范型的刖想都尽可能必!介在一个谱言中,以支持不同要求.不同风格的程序设计应用.三、JaVa
2、程序语言概述Java语言概述1991年,Sun公司为了进军家用电子芾费市场,成立了一个代号为Green的项目组.Oak(楼例)系统M现.Oak以C+语言为蓝本,吸收了C+中符合面向对象程序设计要求的部分,同时加入了一些满足网络设计要求的部分。1994年,Green项日祖成员认真分析计算机网络应用的特点,认为Oak满足网络应用所要求的平台独尤性、系统可靠性和安全性等.1995年5月23日.SUn公司正式发布了JaVa产品.Java语吉一经推出,就受到了业界的关注.Netscape公司第一个认可JaVaifi,并于1995年8月将Java怖糅器柒成到它的主打产品NaV1.gator浏览器中。接希,
3、MICrOSoft公司在ImernetEXP1.orer浏览器中认可了JaVa语言。Java语言开始了自己的发展历程.JaVa语言是简单的、面向对象的语言,它具有分布式、安全性.又可以实现多线程,更主要的是它与平分无关.解决了困扰软件界多年的软件移植问即.1)面向对象面向对象(object-oriented)程序设计模式是近代软件工业的一种革新,它提供软件的弹性度(f1.exibi1.ity),模块化(modu1.arity)与电复使用率(resabi1.it)f降低开发时间与成本.JaVa是完全对象化的程序语言.煽程重点在于产生对、操作时望以及如何使对象能一起协Wi工作,以实现程序的功能.2
4、)语法简单JaVa语言的语法结构类似于C和C+,熟悉CH的程序设计人员不会对它感到的生。与C+相比,Java对复杂特性的省略和实用功能的增加使得开发变得的单而可擢,(3)平台无关性平台无关性是指JaVa能运行于不同的系统平台。JaVa引进虚拟机概念,Java虚拟机(JaVaVktUa1.MaChIne,称为JVM)建立在硬件和操作系统之上,用于实现对JaVa字节码文件的解修和执行,为不同平台提供统一的JaVa接口。这使得Java应用程序可以跻平台运行,非常适合网络应用.(4)安全性安全性是网络应刖系统必须考虑的R要问遨,Java设计的目的是提供一个网络/分布式的计算环境,因此,Java特别强调
5、安全性JaVa程序运行之前公利用字节确认器进行代码的安全检查,确保程序不会存在非法访问本地资源、文件系统的可能,保证了程序在网络间传送运行的安全性.(5)分布式应用JaVa为程序开发提供了J包,该包提供了一粗类,使程序开发者可以轻易实现基于TCP/IP的分布式应用系统。此外,JaVa还提供了专门针对互联网应用的一整套类库,供开发人员进行网络程序设计,6)多线程Java语-内置了多线程控制,可使用户程出并行执行.利用Java的实践程编程接口,开发人员可以方便地写出多战程的应用程序。JaVa语言提供的同步机制可保证各战程时共享数据的正确操作。在硬件条件允许的情况下,这些战程可以直接分布到各个CPU
6、上,充分发挥硬件性能,提而程序执行效率.Java三大开发体系Java发展到今天,已从编程谱言发展成为全球第一大通用开发平台.JaVa技术已被计算机行业主要公F所采纳.1999年,SUn公司推出了以Java2平台为核心的J2SE、J2EE和J2ME三大平台.1着三大平台的迅速推进,全球形成了一股巨大的JaVa应用浪潮.1. Java2P1.atform,StandardEdition(J2SE)Java2平台标准版,适用于桌面系统应用程序的开发,以及低端的服务器本书例程就是利用J2SE5.0版的相关图形AP1.包来开发的.J2SE包含那些构成JaVa语古核心的类.比如,数据库连接,接门定义,航入
7、筠出,网路编程.2. Java2P1.atform,EnterpriseEdition(J2EE)Java2平台企业版,是一种利用JaVa2平台来简化企业解决方案的开发、部罟和管理等相关亚杂向您的体系结构,J2EE技术的核心就是JaVa平台或JaVa2平价的标准版,主要用于分布式的惬路程序的开发,构建企业级的服务涔应用。如,电子商务网站和ERP系统。包含J2SE的类,并且还包含用于开发企业级应用的类。比如,JB.Serv1.et.JSP.XM1.JDBC.CORBA.以及健律在Internet应用中保护数据的安全模式等技术它包含标准版中的任何组件,并增加了附加库.以支持口呆管理、交易管理以及企
8、业消息处理等功能.3. Java2P1.atform,MicroEdition(J2ME)Java2平台激型版.SUn公司将J2ME定义为“一,种以广泛的消决性产品为口标、裔度优化的JaVa运行环境”。自1999年6月在JaVaoneDeVe1.OPereOnferenCe上声明之后,J2ME进入了小型设价开发的行列。通过JaVa的特性,遵箭J2ME规范开发的JaVa程序可以运行在各种不同的小型设符J1.用于嵌入式的消费型产品中,如呼机、手机、掌上电脑.智能卡、机顶盒、汽车导航系统或其他无线设备.简单地说,J2SE用于小型程序,J2EE用于大型程序,J2ME用于手机等程序。J2SE包含于J2E
9、E中,J2ME包含了J2SE的核心类,但新添加了些专用类。语言都是相同的,只是捆绑的类用AP1.不同,也就是,J2SE是塔础;压缩点,再增加一些C1.DC等方面的特性就是J2ME:扩充一点,再增加一些EJB等企业应用方面的特性就是J2EE,Java开发环境的配置和使用一、JaVa开发环境搭建JDK(JavaDeve1.operKit.Java开发工具包)是Sun公司提供的JaVa开发环境和运行环境,是一切Java应用程序的基麻.它包括一笠1API和JRE(Java运行时环境),这些API是构建Java应用程序的基础,而JRE是运行Java程序的基础.JDK包括J2ME(微型版)、J2SE(标准
10、版)和J2EE(企业版)3个版本,最基本的开发包是J2SE.JDK安装程序可以从SUN公司的官方网站下载,JDK的下载与安装1、安装JDK开发环境.(1)双击开发工具包程序(jdk-6u2O-windOWS-i586)弹出“许可证”对话框,如图1所示.(2)单击接受”按钮,即接受许可协议,诳入“白定义安装”对话框,如图2所示.11图2(3)选择安装路经.如需更换安装路径,则胞击“更改”按钮.在弹出的对话框中选择安装目录位S1.注意安装目录中不要使用中文目录名称.单击“下一步”按钮,进入“进度”对话框,开始安装,如图3所示.图3(4)中间出现川E安装路径选择对话框,处理方式同3)步探“再单击”下
11、一步”按钮,系统进入自动安装状态,最后出现安装完成界面,如图4所示.(5)单击“完成”按钮,完成JDK工具包的安装,2、系统环境变吊的配置对Java源程序进行编洋和执行时,需要知道涧谛器和解修器所在的位置,以及所用到的类库所在的位?1.可以利用系统环境变肽的配置.为JaVa类库配置搜索路径(c1.asspath).为编译器和解棒器配置搜索路律(Path)等信息.(1)单击“我的电脑”图标,在弹出的快捷菜总中选择“属性”命令,出现“系统属性”时话框,在“系统制性”对话框中选择“高级”透项卡,如图5所示。2)单击“环境变AT按钮,弹出“环境变最”对话框,如图6所示。3)在“环境变Sr对话框中“系统
12、变届”栏部分单击“新建”按钮.弹出“新建系统变ar对话框.在该对话框“变信名”文本框中输入JAVA,HOME,在“变量值”文本框中输入41CAProgramFiIeSvaVajdk1.60_20”,如图7所示。(如安装JDK时改变了默认安装位置,则应填写新的安装路径位黄,)单击“确定”按钮,完成设汽,返回到“环境变Iir对话框。If1.TaSBif1.(DVVHT.1u.M*VATt,.)1.1班“端图85)“环境变ST对话框的“系统变加”栏中,再次单击“新建”按钮,弹出“新建系统变AT对话框-在该对话框的“变房名”文本框中怆入“C1.ASSPATH”,在变fit值”文本框中输入Kc1.ips
13、e的下载与安装Edipse是个开放源代码的、基于JaVa的可扩展的集成开发平台.EdiPSe本身只是一个框架和一组服务,用于通过插件组件构建开发环境,只要有合适的祖件,Edipse不但能够支持开发JaVa应用程序,而且也能够支持其他的开发语言。由于EdiPSe冏带了一个包括JaVa开发工具(JDT)的标准插件案,因此,只要安装了EeIiPse和JDT,就Ur以使用Ec1.ipse开发Java应用程序.Edipse有几个下靓版本,本书使用EC1.iPSeSDK版本.EdipseSDK包含EC1.iPSe平台、JaVa开发工具、插件开发环境、相关的源代码和文档等内容,可以从http:/www.ec
14、hpse.org网站上下我,下叔文件名是ecipse-SDK-3.2.2-wi32,zp.该文件中的Ec1.ipse版本是3.2,只能在Windows下安装”在安奘EC1.iPSe之前.先要安装间置好JDK然后就可以开始安装EdiPSe工具了.1、安袋、启动ECIiPSeEd1.pse安装文件ec1.pseSDK-3.2.2-win32.zpreferences(首选项)“,打开PreferenCeSxj话框,展开对话框左侧树形列表框内的JaVa节点,选择该节点下的TnstaIIedJREs(已安装的JRE”子节点.对话框右侧出现如图11所示的已安装JDK列发框.检查列表框中JDK的名称、位置
15、与所安装的JDK是否一致.如果不一致.修改列表框中的内容,如果致,单击“0K”按钮,此时,一个开发JaVa程序班联本的环境已经搭建完成,Ec1.ipse的基本使用安装配徨.好Ec1.ipse以后,就可以开始使用Ec1.ipse建立JaVa应用程序.下面介绍一个简总的JaVa应用程序的开发过程。1、创建JaVa应用程序项目(1)在EdiPSe菜单栏里选择uFiIe(文件)-New(新建)Project(JSiFI).打开一个NewProject(新建项目)”对话框.在对话框里选择JaVa节点下的“JavaProject”条目,如图12所示.f1.j*t12(2)单击“Next”按钮,打JfNew
16、JavaProject”对话框.在对话框“Projectname”栏目中输入项目名MyProject.选择保存我目的目录位汽,如图13所示.W13(3)单击“Next”按钮,打开一个配置项目类型对话框,如图14所示.选择系统就认值.配置项目.图11.ByT*t(JvAw1.idg)UWry71.VMr4M204、关闭和删除JaVa应用程序项目(1)项目资源管理JS中选择MyPrOJeCt项目,单击鼠标右键,再弹出的快捷菜单中,选择“C1.oseProject(关闭项目如图21所示,t4图21(2)如猫删除项目,则选杼MyPrOJeet项目,单击阻标右键,再弹出的快捷菜单中,选择“De1.ete
17、(删除)”.在弹出的“De1.eteRes。UrCeS”对话框中,如需将物理横盘文件一起删除,则选中女选按钮,如图22所示。H1.225、打开已存在的JaVa应用程序项目(1)选择Fi1.e(文件)1.mport(导入)二在弹出的“Import”对话框中选择GeneraI节点下的“ExistingProjectsIntOWOrkSPace”条目,如图23所示,图23(2)单击“Next”按钮,打开“Import”对话框.单击“Browse”按钮,选择项目所在目录位置,如图24所示.用24(3)刑击Finish-按钮.项目资源管理器中显示出导入的项目,如图25所示.双击JaVa源文件,则可打开代
18、rvkc14*Xi4rrgk.团Q2om由mS11tUbrvyCjrBH25第二章JaVa语言及对知机一、JaVa语言组成元素Java标识符“标识符”顾名思义是作为标志识别用的符号.计算机沿吉中所有的变状、方法、类和对象等被处理的数据都足要有名称的。标汉符就是赋予它们名称所用的符号。计算机使用的数据都需要用标识符来命名.在JaVa语言中.对用户自定义标识符的规定如下:1)标识符是由数字、字母、下划线或美元符号($”)构成并且开头不能是数字的一个字符序列.(2)大写、小写字母被认为是两个不同的字符.3)没有.长度限制,可以为标识符取任意长度的名字。(4)不能和JaVa语言的关键字相同,但是它可以
19、包含关键字,作为其名字的一部分.例如:有效标识符:Abe.a1.he1.1.o.Number.Usejname.a_bSchange非法标识符:3ma1.1.room#.Wc1.ass,this,c1.ass,No-IJaVa关键字关犍字是指JaVa谱吉本身使用的特殊标识符,具有专门的意义和川途不能当作用户的标识符使用.加上例中的this和CIaSS就是非法的用户标识符.1列出了在JaVa讶言中使用的关键字.A1.关犍字abstractbreakbyteboo1.eancatccasec1.asscharcontinuedefau1.tdoub1.edoe1.seextendsfa1.sefi
20、na1.f1.oatforfina1.1.yIfimportimp1.ementsintinterfacenstanceof1.ong1.engthnativenewInu1.1.packageprivateprotectedpub1.icreturnswitchshortstaticsupertvtruethisthrowthrowsvoidthreadsafetransientwhi1.esynchronizedJava分隔符分隔符也是Java编程语言中不可缺少的内容,它们分为如K3电(1) 择符可以提高程序的可读性.注徉有3种形式.1)注择内容”.以“”开始的该行后面的内容为注择,用于单
21、行的注释,放在一行的开头或语句的结尾.(2) *7注择内容/二用于多行的注择。(3) 注称内容/,用于多行的注择.这种注择可以由javadoc程序处理.2、空臼符包括空格符、回车符、换行符和制衣符等,使用时,多个空白符与一个空白符的作用相同。3.普通分隔符是有语法含义的.需要按照语法规定去使用。件通分隔符有以卜4种.(1)大括号”()“用于定义复合谙句和数组的初始化以及定义类体、方法体等.(2)分号“:”用于结束语句.(3)逗号“用于分隔变景.(4)日号”用于分隔标号和语句。二、数据类型JaVa谓吉的数据类型可分为基本数据类型和引用数据类型.如图1所示本节.卜:要介绍基本数据类型,引用型数据类
22、型将在后边的章节中介绍.字节型byte整姑型运整型short整型int长整型IOnE淳点奖型f条情度污点型nat今后八型I双精度浮点型doub1.e字符关型Char布尔英型boo1.ean类c1.assfinterface皎组array字苻串ttringff1.Javn基本数据类型Java的基本数据类型如表2所示.F边我们来介绍这些数据类型.*.2n“泉本景胜美矢率名称所占字节取值Mte字节里12727sbc*t瓶祭堂2-215215-1im赞熨4231.2311.IDng长赞里82632631.C1.ur字符熨2任宓字符boo1.oin布尔里Itrue、f;IkC0att44-3.4E38(
23、3.4103用3.4E38O.4*IO38)doub1.e8-I.7E3O8(I,7I0308)-1.7E3O81,7X10308)1、整型整型数Ur以用卜进制、八进制和卜六进制表示。一般情况下使用十进制表示,如:123,-365.O.14580.首位为“0”表示八进制的数(ft.首位为“Ox或OX表示十六进制的数(ft.如:0123衣示十进制数83Q1.1.十示十制制数9,0x123表示十进制数291,0X12表示十进制数-18。此外长整皇的表示方法是在数值的尾部加一个后字符I或I,如:4561.01231.0x251.2.浮点型(实型)JaVa提供了两种实型数据,单精度和双精度.例如:0.
24、123,4,39,810.0等表示双精度数:123.4f,145.67F,0.65431f等去示总相度数,提示:如果不明瑜指出浮点数的类型,浮点数默认为doub1.e矣蛰.当表示的数字比较大或比较小时.采用指数形式表示.把e或E之前的常数称之为尾数部分.e或E后面的常数称之为指数部分.例如:1.23e1.3或123EII均表示123X10110.1e8或1E9均表示1X1O9提示:便用光找彩式示效典时.抬效和足Jt部分均不能省4.且指效部分必然为整数.3、字符型字符必须用单引号括起来,,7V,宣等.Java也有转义字符,以反斜杠(开头,将其后的字符转变为另外的含义.如表3列出了JaVa中的转义
25、字符,及3Java中的“幺字杼朴文字符6义朴义宇符金义Xn4Va示单引号字并&示B车女示双引导字歼b&示退格W表示反斜在字并上示横向切枭并Wdd表示1-3(1.AJftJ市的字杆(ddd)f&示比嫉换页uxxxx&示1-4住十六It制敦居所&示的字林(XXXX)4、布尔型布尔鞭也称龙卷型,其值只有两个:Hue和fa1.se.它们不对应于任何整数值,在流程控制中常用到它。后面再详细介绍其使用方法.常量与变量常业和变情是JaVa程序的正要元素,1.常*常技就是在程洋运行过程中其值保持不变的量即不能被程序改变的量,也把它称为最终弗at可分为符号常量和数位常成.(1)符号常业符号常城使用一个标识符来替
26、代一个常数值,其定义的一般格式为:fina1.数据类型常金幺=Va1.Ue,常Ift名UVa1.Ue1);其中:fina1.一是关键字,表示后边定义的是常量即显终盘;数据类型-是常愤的数据类型,它可以是域本数据类鞭之一;常豉名一是标识符.它表示常数值VakJe.在程序中凡是用到va1.ue值的地方均可用常出着标识符昔代.例如:fina1.doub1.eP1.=3.14;定义了符号常量P1.,其值为3.14根西在程序中,为了区分常量标识符和变也标识符.常量标识将一般全部使用大写字母。(2)数值常优数侪常量就是直接出现在程序谱句中的常盘值,例如前面的3.14.数值常量也有数据类型,系统根据数(ft
27、量识别,例如:十进制整数常收:456、789八进制整数常量:0123、076十六进制整数常量:0x123.OXff实型常量:3.14、14.E3123.e-2双精度常麻:OM3.310单精度常量:1.23f.4S67.214SF布尔常MtrUe、fa1.se字符常fit:,?,C字符申常录:“java1.anguage2、变量变St是程序中的基本组成部分,在程序的运行过程中可以随时改变其存谛单元的值.4.4f,f21.325f;doub1.ed=2145.2;(2)变量的赋值与初始化没有初始值的变量是不能使用的.否则娟译不能通过.声明变Gt时如果没有给变量赋初G1.则可用赋值谱句来赋初值,赋值
28、语句格式如下:变/名=表达式;其功能是:计算出“表达式”的值,将其赋值给左边的变量.注意:右边是有确定(ft的表达式,左边只能是已经定义过的变盘.例如:变质的声明与赋值.Inta;a=15;charc;c=a;/变址的声明/变量的赋值/变量的声明H变圻的赋值变的初始化是将变量的声明与赋侑同时进行,即;边定义边赋值,例如上面两组语句可以改写为:inta=15:初始化charc=a;初始化(3)变盘的作用域变V的作用域是指变量自定义的地方起,可以使用的有效范围。在程序中不同的地方定义的变地具有不同的作用域.不同的变fit作用域也不同.局部变收一局部变ht是在方法内定义的变也称为臼动(AUtomat
29、iC)变Jk它的作用域为它所在方法或方法中的某块代码,离开该方法,局部变局被清除。在成员方法内定义的变地是该成员方法的“局部”变埴。如果在几个成员方法中使用相同的变盘名则所代表的是不同的变量.在一个确定的域中,变其名应该是唯一的通常,一个域用大括号和来划定.局部变fit在方法或方法的某一块代码中声明.类变显一类变M是在类中声明的,不是在美的方法中声明的,显然它的作用域是整个类,方法参数方法参数是将数据传递给方法的,它的作用域不能超越使用它的方法.(三)异常处理参数一异常处理参数是传递给异常处理代码的.其作用域就是异常处理部分.例题1:说明变敬作用城的示例程序.在Ec1.ipse中隹立Java应
30、用程序项目,输入如图2所示的程序代码.gVarUampejava讪,程序的名字为VxrE*p1.)ntpt1.icc1.assVarZxaxr1.e(static1.nta1.-10;类受量.对整个炎都有效pctHcvoidd1.p1.ay2-200:方法变置,只在谈方法内有效1I2;Syscaout.PFinc1.n(a1.-*1.);5ysea.out.printIn(2*2);)pub1.icItattcvotda皿SEagrg)nta3;方法更,只在该方法内有效a3-a1.2jSyeten.cot.prnt1.n,*a31.;(WZ运行JaVa应用程序,显示结果如图3所示。,Prob1
31、.em$jJdoc(协Dec1.arationConso1.e婷terminatedVarExampIeJavaApp1.icationD:javairebinjava1.=10a3-20If1.3基本数据类型的封装以上介绍的是Java的基本数据类型,它In不屈于类,在实际应用中,除了衢要进行运W之外,有时还需要将数值转换为数字字符率或者将数字字符中转换为数侑等等。在面向对象的程序设计语言中,类似这样的处理是由类、对象的方法完成的。在JaVa中,对母f中将本的数据类型都提供了其对应的封装类(WraPPeraa对,数值赳装类用于封装基本数据类型的相关信息和操作.封装类的幺字和基本数据类型基本是对
32、应的.只是int型和Char型的封装类的名字梢长一些.java.1.ang包为基本数据类型提供对象封袋.如表4所示.*4丛木疑M臭型计应的*装矣基本找据美型对应的封裂矣基本数相关型对应的卦裂矣intIntegershortShort1.ong1.ongcharCharacterf1.oatF1.oatbyteBytedoub1.eDoub1.eboo1.eanBoo1.ean引入封装类的目的是让基本数据类型可以转变为“类”数据类型.用来构建基本数据类型的对弦.例如:inti=1.;Integeri1.=newInteger(I);注是Integer类的对象,侑为IO0;这时i1.不能巴接卷与基
33、本数据类型运算,因为i1.表示的是一个对象的引用.它只有调用方法,才可以进行运算操作.1i1.toString().提示:尽管由底本美型声明的堂量或由其酎友炎建立的美M象可以保存同一个体,但在使用上不能互换,因为它们是两个完全不同的慨念,一个是息本变量,一个是美的财象实例。在后面的聿节中会洋细介绍它们。数据类型转换整型、实型、字符型数据可以混合运算.当程序中出现这种情况时,该如何处埋呢?先召一个的实例.例题2已知半径,计匏B1.面积.在Ec1.ipse中建立Java应用程序项目,输入如图4所示的程序代码.p*b1.iec1.*Zuft11unpZhuanhuanJavaApp1.ication
34、D:javajrebinjava3-78.53975296020508图5在JaVa语言里,类型转换有两种:自动类型转换和强制类型转换,1 .自动类型转换自动类型转换发生在不同数据类型的混合运修时.由编译系统自动完成.一般情况下,系统自动将两个运算数中低税的运豫数转换为和另一个较商级运算数的类型相一致的数,然后再进行运算。自动转换遵循以下规则.(I)若参与运算房的类型不同,则先转换成同一类型,然后进行运算。(2)转换按数据长度增加的方向进行,以保证精度不降低。如int型和Iong型运算时,先将int型运算数转换成1.ong型后再进行运算.(3)所有的浮点运算都是以双精度进行的,即使仅含f1.oat单精度运算的去达式,也要先转换成d。UbIe型,再进行运算。(4) char.ShOrt和byte型参与运算时,必须先转换成int型.(5)在依值运算中,状色号两边状的数兆类型不同时.从位号右边:的类型将转换为左边盘的类型.如果右边显的数据类型长度比左边量的数据类型长度长时,将丢失一部分数据,这样会降低制度,无失的部分按四舍五入向前舍入”图6所示的是类型自动也换的规则。byteshort,ch