版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java基础培训教程老虎工作室 沈伯青 编著人民邮电出版社第二章 运运行环境境安装与与测试P5 JJavaa不进提提供了一一个运行行环境,而而且还提提供了一一个免费费的Jaava软软件开发发工具集集JSDDK(JJavaa Sooftwwaree Deevellopmmentt Kiit),有有了这个个工具集集就可以以在Jaava标标准平台台(J22SE)上上进行JJavaa代码程程序的开开发。JJSDKK最初被被成为JJavaa Deevellopmmentt Kiit(JJDK),最最开始发发行的版版本是11.1,后后来随着着Javva的发发展,JJSDKK 的版版本逐渐渐增加,有有了1.
2、2版本本、1.3版本本等,目目前已经经升级到到1.44版本。在在Javva中,统统一称11.2版版本或更更高的版版本为JJavaa 2。JJSDKK包括生生成Jaava中中最基本本的小应应用程序序和应用用程序所所需要的的所有工工具和标标准Jaava类类库。Java平平台分为为三种,他他包括JJavaa标准平平台(JJ2SEE,Jaava 2 PPlattforrm SStanndarrd EEdittionn)、JJavaa企业级级平台(JJ2EEE,Jaava 2 PPlattforrm EEnteerprrisee Edditiion)和和Javva小型型平台(JJ2MEE,Jaava 2
3、 PPlattforrm MMicrro EEdittionn),其其中J22EE和和J2MME平台台上的应应用实现现都是要要建立在在J2SSE平台台基础之之上的。P9 现现已将JJSDKK安装在在“D:JJSDKK14”目录下下,可以以根据路路径找到到该目录录并查看看该目录录中的内内容,如如图2-9所示示。可以看到目目录下有有5个子子目录分分别是“binn、deemo、iinclludee、jrre、llib”,以及及5个文文件。对对于初学学者来说说,需要要注意的的是“binn”目录和和“libb”目录下下的内容容。双击“biin”目录,发发现有223个后后缀名为为“.exxe”的实用用程序
4、。这这些都是是开发工工具库所所自带的的工具。对对于初学学者来说说血药了了解和掌掌握的是是8个工工具,见见表2-1。其其中读者者能够很很快遇到到并需要要掌握的的工具是是:Jaavacc、Jaava、AApplletvviewwer、JJavaadocc,其次次是Jaar,然然后是JJdb、JJavaap、JJavaah。对对于剩下下的155个工具具,读者者可以查查询相关关的帮助助文件。表2-1 JJSDKK的8种种主要工工具名称解释JavaccJava编编译器,将将Javva源文文件代码码转换成成Javva字节节代码,编编译后缀缀名为“.jaava”的根文文件,生生成一个个新的后后缀名为为“.c
5、llasss”的类文文件,其其文件名名和根文文件的文文件名相相同JavaJava编编译器,用用来执行行生成的的后缀名名为“.cllasss”的类文文件,即即执行JJavaa应用程程序自己己代码Appleetviieweer小应用程序序的Jaava浏浏览器,主主要是执执行后缀缀名为“.httml”或者是是“.httm”的文件件,这些些文件的的内容嵌嵌套着JJavaa小应用用程序类类JavaddocJava说说明工具具,根据据Javva源代代码及其其说明语语句生成成相关的的HTMML文档档,编程程者可以以很方便便的通过过HTMML文档档来了解解Javva源代代码的功功能、方方法及其其继承关关系Jd
6、bJava调调试器,可可以逐行行执行程程序、设设置断点点和检查查变量JavappJava反反汇编器器,显示示编译类类文件中中可访问问功能和和数据,同同时显示示字节代代码的含含义JarJava档档案文件件生成器器,用它它可以生生成的后后缀名为为“.jaar”文件,JJAR文文件可以以在一个个压缩文文件中发发布多个个Javva类和和资源,这这个资源源可以包包括哟GGIF图图片资源源、HTTML文文档资源源等Javabb头文件生成成器,产产生可以以调用的的Javva过程程的C过过程,也也可以建建立能被被Javva程序序调用的的C过程程的文件件头P10 = 1 * GB3虽然已已经安装装了JSSDK,
7、也也同时安安装好了了Javva运行行环境,但但是Jaava语语言是跨跨平台的的,无论论在什么么平台或或者操作作系统下下的文本本编辑器器里都可可以编写写“.jaava”代码,最最终都要要经过JJavaac编译译器将源源代码转转换成与与平台无无关的“.cllasss”字节代代码,这这是Jaava语语言编程程的一个个重要特特性,也也是其体体现出跨跨平台优优越性的的保证。= 2 * GB3本书中对对“.jaava”代码的的Javvac编编译器所所执行的的操作也也是在WWinddowss操作系系统中的的【命令令提示符符】窗口口下进行行的。【命命令提示示符】窗窗口下只只能执行行缺省的的DOSS命令,如如c
8、d、ddir、ccleaar等,如如果要执执行Jaavacc、Jaava、JJavaadocc等命令令,则需需要进行行额外的的环境变变量的设设置。表2-2 本本书常用用的基本本DOSS命令名称解释DirDOS查询询命令,用用来查询询所在目目录的具具体文件件信息等等cd用来进入某某一个文文件夹,其其中“”表示文文件夹名名称,“cd”和文件件夹名称称之间有有一个空空格cd.退出当前文文件夹目目录进入入上一级级目录,其其中“”表示当当前所在在的文件件夹名称称%:&转换盘符操操作,从从“%”盘符转转入到“&”盘符,其其中“%”“&”均为盘盘符,它它们一般般代表“C,DD,E”例如如“C:D”表示从从C
9、盘转转到D盘盘P11设置置Patth变量量:首先打开我我的电脑脑右键属属性高级级选项卡卡中的环环境变量量,找到到系统变变量分组组框中的的“Patth”系统变变量,保保持变量量名的“Patth”不变,在在变量值值的文本本编辑框框内的末末尾添加加“;D:JSSDK114bbin”的字样样,这样样就可以以在命令令提示符符窗口中中执行JJavaac、JJavaa、Jaavaddoc等等命令了了。提示:这里里假设JJSDKK已经安安装在DD盘的JJSDKK14目目录下,将将“binn”目录添添加到系系统变量量“Patth”中,确确保了“binn”目录下下的可执执行文件件可以在在命令提提示符窗窗口下运运行
10、。只设置了PPathh环境变变量对运运行所有有可执行行文件还还是不够够的,因因为在“.jaava”代码中中,还可可能引用用JSDDK缺省省的几个个Javva类包包,否则则用“Javvac编编译器”无法将将代码成成功编译译而生成成“.cllasss”类文件件,所以以Javva还要要利用另另一个环环境变量量CLLASSSPATTH。P12 添添加CLLASSSPATTH环境境变量:Java运运行环境境从“CLAASSPPATHH”环境变变量中寻寻找到要要执行的的Javva了。如如果设置置不当,则则可能遇遇到各种种因为找找不到指指定的类类而引起起的各种种错误。在环境变量量对话框框中单机机系统变变量分
11、组组框的新新建按钮钮,新建建变量名名为“CLAASSPPATHH”变量值值为“.;DD:JJSDKK14libbdtt.jaar;DD:JJSDKK14libbtooolss.jaar”的系统统变量。这这里需要要注意的的是变量量值中最最前面的的两个符符号:一一个点号号“.”和一个个分号“;”不能漏漏掉。P13 环环境测试试:在命令提示示符中输输入java verrsioon可以判定JJSDKK 版本本、jaava运运行环境境版本等等。除此此之外,还还可以输输入以下下命令:java hjar hjavaddoc hjavacc h来查询执行行程序的的相关参参数使用用方法。P14程序序测试:新建文
12、本文文档输入入以下程程序,publiic cclasss ttesttHelllo puubliic sstattic voiid mmainn(Sttrinng aarg) Syysteem.oout.priintlln(Helllo,这是一一个测试试!);/中文状状态下输输入的分分号 /maain()/*teestHHelllo */将文件命名名为“tesstHeelloo.jaava”。保存存位置是是“E:proograam002ttesttHelllo.javva”。文件保存成成功之后后,在命命令提示示符窗口口中进入入到“E:proograam002”目录。输输入的命命令那个个依次为为
13、:E:cd prrogrramcd 022这样就进入入了“E:proograam002”目录,在在次目录录下依次次输入如如下命令令:dirjavacc teestHHelllo.jjavaajava tesstHeelloodir这时会发现现目录下下多了一一个“tesstHeelloo.cllasss”文件,这这是Jaavacc编译器器将源代代码编译译成字节节代码生生成类文文件的结结果。显显示输出出的“Helllo,这这是一个个测试!”是Jaava编编译器直直接执行行Javva应用用程序字字节代码码的结果果。P16 JJavaa应用程程序流程程:一个Javva应用用程序首首先是经经过文本本编辑
14、器器的编辑辑工作得得到Jaava源源代码,源源代码经经过Jaavacc编译器器编译之之后产生生Javva类文文件,再再经Jaava编编译器编编译执行行得到输输出程序序。其中中Javvadooc执行行程序可可以对JJavaac源代代码进行行操作,生生成关于于Javvac源源代码的的说明文文档,这这种文档档是以HHTMLL格式输输出的;另外JJavaap执行行程序可可以对JJavaa类文件件进行操操作,得得到的是是对Jaava类类文件反反编译的的结果,同同时也看看到Jaava源源代码的的方法分分布情况况。P17 建建档应用用程序JJavaadocc:Javaddoc是是建档应应用程序序。它将将能源
15、代代码自动动建档,这这样做的的好处是是在源代代码进行行一定格格式的说说明之后后,可以以将这些些说明自自动传输输到HTTML文文件中,是是开发者者直接从从生成的的Javvadooc文档档中查找找到相关关类一集集相关类类的方法法、属性性变量。代代码程序序中的说说明字段段是需要要放在“/*”和“*/”之间的的,这样样Javvadooc编译译器才可可以识别别这些说说明字段段。/*这是是一个有有说明的的Javva应用用程序*/publiic cclasss ttesttNotteHeelloo /* *这这是teestNNoteeHelllo类类的主函函数,他他主要是是输出一一句话。 */ puubli
16、ic sstattic voiid mmainn(Sttrinng aarg) Syysteem.oout.priintlln(Helllo,这是一一个有说说明的测测试!); /maain()/*ttesttNotteHeelloo*/将以上文字字生成文文档时,在在命令提提示符窗窗口“E:proograam002”目录下下需要输输入:javaddoc tesstNooteHHelllo.jjavaa这里不必先先将“tesstNooteHHelllo.jjavaa”文件通通过Jaavacc编译器器编译成成“tesstNooteHHelllo.cclasss”文件。最后输出了了10个个新的HHTM
17、LL文件和和1个“pacckagge-llistt”文件以以及1个个样式单单(CSSS)文文件,这这个CSSS文件件的作用用是包含含HTMML页面面的格式式信息。是是修饰或或者约束束HTMML文件件显示格格式的。打打开“tesstNooteHHelllo.hhtmll”文件,则则可以看看到代码码程序中中的文档档说明一一集次代代码类的的摘要信信息。P18 反反汇编器器Javvap: JJavaap工具具可以查查询任何何类,检检查类的的方法。它它只在类类文件也也就是“.cllasss”文件生生成之后后进行操操作,也也就是说说它操作作的对象象必须是是类文件件,仅接接受类名名,实际际操作是是在命令令提
18、示符符窗口“E;proograam002”目录下下输入:javapp teestNNoteeHelllo得到的清单单信息为为:Compiiledd frrom tesstNooteHHelllo.jjavaapubliic cclasss ttesttNotteHeelloo exxtennds javva.llangg.Obbjecct puubliic ttesttNotteHeelloo(); puubliic sstattic voiid mmainn(jaava.lanng.SStriing);这里显示了了两个方方法,ttesttNotteHeelloo()和和maiin()。tte
19、sttNotteHeelloo()成成为缺省省的构造造函数,这这是一个个特殊的的方法,如如果在源源代码中中没有特特殊指定定该类的的构造方方法,则则这个没没有入口口参数的的缺省的的构造方方法将会会自动的的在Jaavapp中生成成,而mmainn()方方法是源源代码中中的。这这样通过过Javvap执执行程序序操作也也可以看看到源代代码的方方法构造造情况。Javapp也选用用“h”方法来来查询其其参数使使用方法法。当选选择参数数为“c”时:javapp c ttesttNotteHeelloo结果显示基基础的字字节代码码的序列列和方法法清单。Compiiledd frrom tesstNooteHH
20、elllo.jjavaapubliic cclasss ttesttNotteHeelloo exxtennds javva.llangg.Obbjecct puubliic ttesttNotteHeelloo();publiic sstattic voiid mmainn(jaava.lanng.SStriing);Methood ttesttNotteHeelloo() 0 aaloaad_00 1 iinvookesspecciall 11 4 rretuurnMethood vvoidd maain(javva.llangg.Sttrinng) 0 ggetsstattic 2 3
21、lldc 3 5 iinvookevvirttuall 44 8 rretuurn实际上这些些命令就就是经过过Javvap反反汇编生生成的源源代码,但但和真正正的“.jaava”源代码码有很大大的出入入,这是是因为将将字节代代码再转转换成源源代码必必然会有有损耗而而和实际际不符,但但大体表表现出源源代码中中方法的的具体信信息。因因为“.cllasss”类文件件无法用用一般的的文本编编辑器查查看,所所以使用用者在不不知道源源代码的的具体信信息时常常常采用用此方法法来了解解一个类类文件中中的信息息。第三章 面面向对象象和类的的概念P22 相相似对象象的抽象象称之为为类(CClasss),它它有着对
22、对象的特特征:属属性和行行为。也也就是说说,类是是相似或或者相同同对象的的一个抽抽象的集集合,这这个集合合包括了了一些对对象所共共有的性性质。另另一方面面,通过过类可以以获得一一个对象象,称之之为对象象的实例例(Innstaancee),一一个“类”就像是是一个压压制模型型的板子子,可以以做出许许许多多多类似但但独立的的个别对对象。因因此要使使用对象象,需要要首先建建立一个个类,再再通过“对象建建立”的动作作产生所所需对象象。而每每一个产产生的对对象就是是一个独独立的个个体,拥拥有自己己的状态态变量值值。P24 一一个类的的结构用用“修饰符符+cllasss+类名名”和一对对大括号号来描述述。
23、例如如程序清清单3.1,类类的类体体为:publiic cclasss vvehiiclee /*veehiccle*/类中定义的的4个属属性,它它们为“jouurneey、wwheeelNuum、lloaddNumm、drriveerSppeedd”和两个个方法vvehiiclee()和和driiverr()方方法。属属性的定定义用“修饰符符+数据据类型+声明变变量+分分号”来描述述,例如如:publiic ffloaat jjourrneyy;方法的定义义用“修饰符符+返回回标志+方法名名”和一对对小括号号来描述述,例如如:publiic vvoidd drriveerAtt(innt s
24、speeed) / ddrivverAAt()其中属性定定义和方方法的定定义及其其实现都都应该放放在大括括号内,而而代码子子句的实实现都需需要放在在方法的的小括号号内,这这样就定定义了一一个类。值得注意的的是drriveerAtt()方方法,次次方法提提供了一一个入口口参数“speeed”,这是是为司机机向机动动车发布布命令留留下了入入口。当当司机调调用机动动车对象象要求以以某一速速度行驶驶时,将将调用ddrivverAAt()方方法。这这个方法法在判定定司机要要求的速速度小于于最大行行驶速度度之后指指定速度度进行行行驶,否否则将行行驶速度度定为440。if(sppeedd=660) drri
25、veerSppeedd=400;else drriveerSppeedd=sppeedd;P25 程程序清单单3.22 “vehhiclleDrriveer.jjavaa”文本文文件publiic cclasss vvehiicleeDriiverr puubliic SStriing namme;/定义义司机的的名字/*vehiicleeDriiverr类构造造函数*/ puubliic vehhiclleDrriveer()name = TOMM;/veehiccleDDrivver() /*vehiicleeDriiverr类对象象的woork方方法*/publiic vvoidd wo
26、ork() veehiccle v = neew vvehiiclee();/生生成veehiccle类类的对象象v d.driiverrAt(445);/调调用v对对象所固固有的ddrivverAAt()方方法/woork()publiic sstattic voiid mmainn(Sttrinng aarr )/生生成ehhiclleDrriveer类的的对象vvd ehhiclleDrriveer vvd = neew eehiccleDDrivver(); vdd.woork(); /调调用vdd对象所所固有的的worrk()方方法/maain()/*vvehiicleeDriive
27、rr*/“vehiicleeDriiverr”类定义义了司机机姓名这这一属性性,并在在其构造造函数vvehiicleeDriiverr()方方法中设设定了司司机的名名字为“TOMM”,同时时还设定定了司机机的工作作行为方方法woork(),在在这个方方法中,首首先生成成了“vehhiclle”类的一一个对象象v,接接着这个个对象调调用了“vehhiclle”类的实实例所固固有的方方法drriveerAtt(),而而且还对对行驶的的速度进进行了赋赋值,用用来告诉诉机动车车的对象象v需要要按照445单位位(单位位具体是是什么需需要根据据实际代代码所要要解决的的问题来来定)的的速度行行驶。这这就是在
28、在worrk()方方法中完完成了对对象的生生成,以以及对象象之间的的调用和和消息传传递。和“vehhiclle”类不同同,“vehhiclleDrriveer”类多了了一个静静态的mmainn()方方法。在在Javva编程程中规定定,当一一个类有有maiin()方方法时,它它就可以以被作为为应用程程序进行行使用。而而此例的的maiin()方方法中,生生成了一一个“vehhiclleDrriveer”类的对对象vdd,这一一操作使使用程序序中的代代码子句句:vehiccleDDrivver vd = nnew vehhiclleDrriveer();来完成。它它的含义义是指生生成了一一个名字字叫
29、TOOM的司司机对象象。vdd.woork()是是表明了了司机开开始工作作,工作作的内容容就是:以455单位的的速度驾驾驶一部部已经行行驶了1100.3kmm的四轮轮机动车车。P26 因因为只有有“vehhiclleDrriveer”类文件件有maain()方方法,所所以只能能执行它它一个。用用Javva工具具来执行行。命令令如下:java vehhiclleDrriveer(自己注:没有方方法maain()就就不能执执行)提示:如果果需要编编译一个个目录下下的多个个“.jaava”文件,可可以分别别用jaavacc编译器器进行编编译,也也可以采采用“javvac *.jjavaa”命令来来一
30、起编编译,这这样节约约了时间间。如果果“.jaava”文件很很多而且且代码编编写错误误可能会会比较多多,则不不提倡用用此种方方法,因因为这样样可能会会产生很很多编译译错误信信息,反反而影响响了效率率。P27 在在Javva术语语中,祖祖先称之之为“超类”,而子子孙称之之为“子类”。“超类”是“子类”的子集集。P29 如如果要调调用一个个对象的的方法,JJavaa解释程程序会自自动检查查定义该该对象的的类中的的方法,如如果该类类有这个个方法,则则Javva解释释程序会会自动调调用它。如如果在这这个类中中没有找找到指定定的方法法,则JJavaa解释器器会自动动寻找该该类的超超类中的的方法,依依此类
31、推推,直到到找到这这个方法法调用它它。如果果查找所所有的关关于该类类的超类类而最终终也没找找到这个个方法,JJavaa解释器器才会报报告找不不到该方方法。查查找方法法的顺序序是从底底层到顶顶层,也也就是说说按照从从子类到到超类顺顺序的。P30 接接口:尽管单重继继承比较较简单好好用,而而且也使使我们比比较容易易理解和和设计类类之间以以及类所所实现的的功能之之间的关关系。然然而,它它也有一一定的限限制,特特别是当当需要从从类层次次结构的的不同分分支重复复类似特特性的时时候,JJavaa通过接接口解决决了这一一问题。Java中中的接口口(Innterrfacce)比比类更抽抽象。它它只定义义了一些
32、些公用的的行为或或操作而而无任何何的实现现。而这这类的行行为或操操作,可可被称为为抽象方方法(AAbsttracct MMethhod)。因因此任何何的类,只只要它需需要皆可可直接加加入其所所需的IInteerfaace。同同时一个个类虽然然仅可继继承一个个超类,但但它却可可实现多多个接口口,而这这样的方方法在JJavaa的程序序实现里里扮演了了一个相相当重要要的角色色。一个超类AA有两个个子类分分别是CC和D。其其中C有有着C11和C22两种特特性,而而D有着着D1和和D2两两种特性性。现在在想创建建一个新新的类EE,它有有C的CC1属性性和D的的D1属属性,因因为Jaava是是采用单单重继
33、承承的,而而且C和和D是两两个不同同的分支支,所以以不可能能像多重重继承那那样用EE来同时时继承CC和D。接接口的出出现可以以解决这这个问题题。这种种解决方方法之一一就是创创建一个个接口来来定义CC1和CC2的行行为,然然后在创创建一个个类来实实现这个个接口从从而生成成一个新新的类。可以看出接接口的出出现是对对类的一一个有效效补充,两两者几乎乎可以同同等对待待,它们们之间的的差别就就在于接接口不能能像类那那样产生生实例。P31 接接口的创创建:程序清单33.4 “E.jjavaa”文本文文件publiic iinteerfaace Epubliic sstattic finnal intt E
34、11 = 1000; /E11属性publiic vvoidd C11(); /C1行行为方法法publiic vvoidd D11(); /D1行行为方法法/*EE*/程序清单33.4中中定义了了E接口口,它和和定义一一个类很很相似,只只是在定定义方法法之后没没有方法法的具体体实现操操作,而而是以一一个分号号就结束束了定义义。实际际上这就就是进行行了接口口的行为为方法的的声明。接接口没有有maiin()方方法,也也不能生生成新的的实例,但但是它编编写之后后也是保保存成“.jaava”文件。保保存的文文件名和和接口名名保持一一致。在在通过jjavaac编译译器编译译之后也也生成“.cllass
35、s”文件,这这一点也也和类相相似。P31 接接口的扩扩展;接口的扩展展也采用用关键字字“exttendds”来进行行实现。所所以假设设创建一一个F接接口,它它是继承承E接口口的。则则可以用用以下代代码来声声明。publiic iinteerfaace F eexteendss E/接接口F的的内容 如果需要创创建一个个G接口口,它是是分别继继承E接接口和接接口的,则则可以用用以下代代码来声声明。publiic iinteerfaace G eexteendss E,FF/接接口G的的内容在多重继承承中被继继承的父父类接口口之间用用逗号隔隔开。P32 接接口的实实现:使用接口来来定义新新的类,需
36、需要用“impplemmentts”来完成成。例如如编写一一个Ecclasss类,它它有C11行为方方法和DD1行为为方法,则则只要实实现E接接口就可可以了。EEclaass类类程序见见程序清清单3.5.程序清单33.5 “Ecllasss.jaava”文本文文件publiic cclasss EEclaass impplemmentts EEpubliic vvoidd C11()/实实现C11行为方方法 Syysteem.oout.priintlln(C1方方法实现现);/C11()publiic vvoidd D11()/实实现D11行为方方法 Syysteem.oout.priintl
37、ln(D1方方法实现现);/D11()/*EEclaass*/代码“puubliic cclasss EEclaass impplemmentts EE”不仅声声明了一一个类EEclaass,同同时还声声明这个个类要实实现E接接口,这这里用到到了关键键字“impplemmentts”,而且且在这个个类中重重写了CC1()和和D1()两两个方法法,编写写了代码码进行了了实现。这这样就完完成了EEclaass类类的创建建工作。这这个类可可以被其其他子类类所继承承,并且且也可以以生成这这个类的的对象。提示:读者者也许会会认为可可以直接接编写EEclaass类类而不用用实现接接口,这这样自然然省去了了
38、接口的的定义,但但是在实实际应用用中,接接口恰恰恰是非常常有用的的,在接接口中会会定义很很多方法法,不同同的类可可以按照照自身的的性质继继承接口口,各取取所需,实实现不同同的方法法,这样样编写出出的类集集合的层层次才会会更加清清楚,提提高效率率。一个要编写写的类可可以实现现多个接接口,但但是要确确保所有有接口的的方法都都被实现现,尽管管有些接接口的方方法不需需要,也也要编写写一个没没有代码码的空方方法进行行实现。例例如Ecclasss类中中就需要要将E接接口中声声明的方方法一一一实现,如如果缺少少了E11()方方法或者者是D11()方方法,EEclaass类类均不能能编译成成功。另另外在实实现
39、接口口中定义义的类之之后,所所编写的的类也可可以编写写自己的的方法。例例如编写写一个EEtottalCClasss类,这这个类不不但实现现了E接接口和MM接口,同同时也有有自己的的方法EE1()。程程序清单单3.66给出了了M接口口的定义义,程序序清单33.7给给出了完完整的EEtottalCClasss类的的定义。程序清单33.6 “M.jjavaa”文本文文件publiic cclasss EEtottalCClasss iimpllemeentss E,MMpubliic vvoidd C11()/实实现C接接口C11行为方方法Systeem.oout.priintlln(C接口口C1行
40、行为方法法实现);/C11()publiic vvoidd D11()/实实现D接接口D11行为方方法 Syysteem.oout.priintlln(D接口口D1行行为方法法实现);/D11()publiic vvoidd M11()/实实现M接接口M11行为方方法 Syysteem.oout.priintlln(M接口口M1行行为方法法实现);/M11()publiic vvoidd E11()/自自身的方方法实现现 Syysteem.oout.priintlln(自身的的方法实实现);/E11()publiic sstattic voiid mmainn(Sttrinng aa ) Et
41、totaalCllasss e = nnew EtootallClaass(); e.C1(); e.D1();e.M1();e.E1();/maain()/*EEtottalCClasss*/程序清单33.7中中用代码码“pubblicc cllasss EttotaalCllasss immpleemennts E,MM”完成了了“EtootallClaass”类的声声明,同同时也声声明它要要实现EE接口和和M接口口,多个个接口中中用逗号号隔开。第4章 JJavaa语言基基础P35 变变量的定定义包括括变量名名、变量量类型和和作用域域几个部部分。P36 变变量的作作用域是是指一个个变量可可
42、以被访访问的代代码程序序段。声声明一个个变量的的同时也也就指明明了变量量的作用用域。按按作用域域来分,变变量可以以有下面面几种:局部变变量、类类变量、方方法参数数、例外外处理参参数。每每一种变变量都有有其一定定的应用用场合和和作用域域。a局部变量量在方法法或方法法的一块块代码中中声明,它它的作用用域为它它所在的的代码块块,即整整个方法法或方法法中的某某块代码码。b类变量是是在类的的开始声声明中创创立,而而不在类类的某个个方法中中声明,因因此它的的作用域域是整个个类。c方法参数数传递给给方法,它它的作用用域就是是这个方方法。d例外处理理参数传传递给例例外处理理代码,它它的作用用域就是是例外处处理
43、部分分。P36 SStriing表表示字符符型常量量。P37 局局部变量量在创建建之后必必须进行行变量赋赋值,否否则程序序将无法法编译,所所以给局局部变量量赋值是是编程者者一个良良好的习习惯。这这种习惯惯的延伸伸是给类类变量进进行初始始值赋值值,尽管管有时候候类变量量对初始始值赋值值不是那那么重要要。P37 常常量:常量是一种种特殊的的变量,所所以它的的声明是是和变量量的声明明一致的的,只是是需要在在变量的的声明类类型前加加“finnal”关键字字来表明明此变量量是一个个常量,同同时一个个常量需需要进行行初始值值的确定定。例如如创建数数学公式式中的圆圆周率这这一常量量。finall dooub
44、lle PPI = 3.141159226;常量的名称称一般都都是大写写的,例例如圆周周率一般般用大写写“PI”而不用用小写的的“pi”。但是是这并不不是必须须的,这这只是一一个良好好的Jaava编编程习惯惯,看到到全部都都是大写写的变量量的时候候会想到到这可能能是一个个常量,从从而使程程序更加加的容易易被理解解。P38 基基本数据据类型:整型变量的的类型有有bytte、sshorrt、iint和和lonng 4种。iint类类型是最最常使用用的一种种整数类类型。它它所表示示的数据据范围为为64位位处理器器。但对对于大型型计算,常常会遇到到很大的的整数,超超出innt类所所表示的的范围,这这时
45、要使使用loong类类型。由由于不同同的机器器对于多多字节数数据的存存储方式式不同,可可能是低低字节向向高字节节存储,也也可能是是从高字字节向低低字节存存储,这这样,在在分析网网络协议议或文件件格时,为为了解决决不同机机器上的的字节存存储顺序序问题,用用bytte类型型来表示示数据是是合适的的。而通通常情况况下,由由于其表表示的数数据范围围很小,容容易造成成溢出,应应避免使使用。sshorrt类型型则很少少使用,它它限制数数据的存存储为先先高字节节,后低低字节,这这样在某某些机器器中会出出错。实实际中使使用哪一一个数据据类型完完全取决决于整数数的实际际大小,恰恰当的选选取数据据类型可可以节省省
46、空间,提提高程序序的运行行效率。实数型数据据类型有有flooat和和douublee两种,它它们分别别代表着着单精度度类型和和双精度度类型。char字字符型数数据类型型用于存存储单个个字符,例例如字母母、数字字、标点点符号和和其他符符号。booleean布布尔型数数据类型型用于存存放trrue或或者faalsee关键字字。以上8种数数据类型型为Jaava语语言中基基本的数数据类型型。同时时Javva中还还有一些些诸如CCharr和Boooleean的的类,它它们的拼拼写和基基本的数数据类型型基本一一致,只只是首写写字母大大小写不不同。因因为Jaava编编程中是是区分大大小写的的,所以以它们有有
47、不同的的功能,从从属性上上就可以以看出,一一方面是是数据类类型,另另一方面面是类。另外需要重重点提出出的是SStriing数数据类型型,它是是“javva.llangg.Sttrinng”类的对对象类型型。它表表示一个个顺序不不可变的的字符序序列,该该数据类类型在JJavaa编程中中起着相相当大的的作用,但但是它不不是基本本的数据据类型。P38 数数据类型型值: 表4-33 常用用的数据据类型数据类型形式booleeantrue或或者faalseeint十进制:数数字09110999十六进制:0 x或或0 x后后面跟009、AAF,如0 xx9AFFlong同int数数据类型型,但后后面跟11
48、或者LL,如00 x9AAFLfloatt数字加小数数点,后后面跟ff或者是是F,如如3.114fdoublle数字加小数数点或者者是科学学计数法法,如33.144、3.14+15FFchar引号内的AASCIII码,如如S、qStrinng双引号内的的一列字字符,如如LaaoHuuP39 数数值型数数据间的的混合运运算:整型、实型型、字符符型数据据可以混混合运算算。在运运算过程程中当遇遇到不同同类型的的数据时时,一般般是先转转换成同同一数据据类型,然然后再进进行运算算。转换换是按从从低级到到高级的的转换原原则。转换规则如如下:(bytee或shhortt)opp inntintt(bytee
49、或shhortt或innt)oop llongglonng(bytee或shhortt或innt或llongg)opp flloattflooat(bytee或shhortt或innt或llongg或flloatt)opp dooublledouubleechar op inttint其中“opp”符号左左边的表表示主动动参与运运算的数数据类型型,“op”为运算算符(如如加、减减、乘、除除等),“op”符号右边的表示被动参与运算的数据类型,“”符号右边的是转换完的数据类型。当需要将高高级数据据转换成成低级数数据时,需需用到强强制类型型转换,例例如将ffloaat型数数据变量量转换成成intt型
50、数据据变量,则则:floatt f;int ii = (innt)ff;提示:将高高级数据据转换成成低级数数据可能能会导致致数据的的丢失,例例如当ff的值是是3.114的时时候,将将其转换换成整型型类型ii之后,ii的值为为3,这这一点在在强制转转换的过过程中需需要注意意。P40 注注释的语语法:Java编编程中注注释有33种方法法,它们们适用于于不同的的场合。 /ccommmentt 从“/”到语句句末尾的的所有内内容都属属于说明明语句,只只能用于于单行。 /*ccommmentt*/ 从“/*”到“*/”之间的的语句为为说明语语句,可可以用于于多行。 /*commmennt*/ 用于于建档
51、的的说明语语句,其其内容是是“/*”到“*/”之间的的。其中commmennt为程程序中的的注释信信息,“/*commmennt*/”语句是是特殊的的说明语语句,称称为Jaavaddoc说说明语句句,是根根据JSSDK工工具命名名的,它它的作用用和“/*ccommmentt*/”语句相相似。注释语句在在程序运运行阶段段将被忽忽视,所所以不影影响程序序的进行行。但是是“/*/”语句不不能采用用嵌套形形式,即即“/*/”语句内内再一次次进行“/*/”语句的的注释,它它的形式式为“/* /* */ */”。这样样第一个个“*/”会终止止说明语语句,导导致后面面的说明明注释语语句无效效而在编编译或者者
52、是运行行中执行行。P40 至至此已经经介绍了了Javva语言言的关键键字、变变量、常常量、数数据类型型和注释释等内容容,这些些内容实实际上在在Javva编程程中都是是很细小小的部分分,但是是它们却却是Jaava编编程的基基础,正正确的理理解和运运用它们们就是奠奠定了应应用Jaava代代码编程程的基石石。程序序4.11对这些些方面进进行了综综合运用用,读者者可以针针对程序序的具体体细节来来对应学学习以上上的内容容。程序清单44.1 “dattaInnit.jaava”文本文文件/*本例介绍绍和运用用Javva关键键字、变变量、常常量、数数据类型型和注释释等方面面内容*并且采用用它生成成一个标标准
53、的jjavaadocc文档*autthorr Tiigerr*verrsioon 11.0*/publiic cclasss ddataaIniit/*主函数、完完成所有有功能。*parram Strringg arrg*retturnn 无*thrrowss 无*/publiic sstattic voiid mmainn(Sttrinng aarg )/单行行注释,描描述下一一行子句句功能。定定义整型型变量int roaadLeengtth = 10000;/定义义单精度度数据类类型。进进行初始始化赋值值,数字字加小数数,后面面跟ffloaat rroaddAdddLenngthh = 5
54、000.1ff;/定义义双精度度常量圆圆周率PPIfinaal ddoubble PI = 33.144159926;/定义义字符串串对象变变量Striing queery = abccdeffg;/*多行注释释,此为为第一行行以上用到了了pubblicc、cllasss、sttatiic、vvoidd、innt、ffloaat、ffinaal、ddoubble等等关键字字此为第三三行*/返回回实型的的道路总总长度floaat fflRooadTTotaalLeengtth = rooadLLenggth + rroaddAdddLenngthh;/返回回整型的的道路总总长度int inttR
55、oaadTootallLenngthh = roaadLeengtth + (iint)rroaddAdddLenngthh;/maain()/*ddataaIniit*/P42 运运算符首首先是特特殊符号号,它主主要由算算术运算算符、关关系运算算符、布布尔运算算符、字字符串操操作符、赋赋值操作作符、特特殊操作作符等组组成。P44 布布尔型操操作符作作用于布布尔操作作数并返返回布尔尔值,用用以实现现标准的的布尔代代数运算算。其基基本运算算为ANND、OOR、NNOT、和和XORR(异或或)。 ANDD是二元元“布尔与与”操作,其其符号是是“&”。当两两个布尔尔型操作作数都为为truue的时时候
56、返回回的结果果为trrue。如如果两个个布尔型型操作数数至少有有一个为为fallse,那那么返回回的结果果就为ffalsse。 OR是是二元“布尔或或”操作,其其符号是是“|”。当两两个布尔尔型操作作数都为为fallse的的时候返返回的结结果为ffalsse。如如果两个个布尔型型操作数数至少有有一个为为truue,那那么返回回的结果果就为ttruee。 NOTT是“否”操作,其其符号是是“!”。当操操作数是是truue的时时候,则则返回的的结果是是fallse。当当操作数数是faalsee的时候候,则返返回的结结果是ttruee。 XORR是二元元“异或”操作,其其符号是是“”。当两两个布尔尔
57、型操作作数都为为truue或者者都为ffalsse的时时候,返返回结果果是faalsee。当两两个布尔尔型操作作数一个个为trrue而而另外一一个为ffalsse的时时候,返返回的结结果为ttruee。另外布尔型型操作符符还有“&”(条件件与)操操作符和和“|”(条件件或)操操作符,它它们的运运算情况况和“布尔与与”和“布尔或或”相似,只只不过前前两个操操作符是是面向条条件的真真假来判判断得到到结果的的,“布尔与与”和“布尔或或”是根据据操作数数的真假假来判断断结果的的,在实实际情况况中“条件与与”操作符符和“条件或或”操作符符使用的的频率比比较高。P45 字字符串操操作符:字符串操作作符只有
58、有一个“+”称之为为结合操操作符。它它用于将将字符串串连接结结合在一一起生成成一个新新的字符符串,它它的优先先级是55。例如如:Strinng ssOldd = I;Strinng ssNeww = sOlld+am a bboy;sNew是是一个新新的字符符串,其其结果是是“I aam aa booy”。如果果一个字字符串SStriing和和一个对对象Obbjecct用“接合”操作符符进行连连接,则则Javva自动动调用对对象的ttoSttrinng()方方法,这这样两者者相加返返回的还还是一个个字符串串变量。例例如:Strinng ssOldd = I;Strinng ooldOObjee
59、ct ;Strinng ssNeww = sOlld+ooldOObjeect;P46 特特殊操作作符:此外还有测测试操作作符和生生成运算算符。测试操作符符的符号号是“insstannceoof”,它的的作用是是判断一一个变量量是否是是某一个个类的实实例,返返回是布布尔型变变量。例例如:booleean b1,bb2,bb3;persoon pp;man mm;p = nnew perrsonn();m = nnew mann();b1 = p iinsttancceoff peersoon;b2 = p iinsttancceoff peersoon;b3 = p iinsttancceof
60、f peersoon;b1将得到到truue。bb2将返返回faalsee。如果果mann类是ppersson类类的子类类,则bb3返回回truue,否否则返回回fallse。测测试操作作符的级级别是77。生成预算副副的符号号是“neww”,它的的作用是是生成类类的新的的对象,一一般在实实例化对对象或者者是构造造函数时时用。例例如声明明并生成成一个ppersson类类的对象象p:persoon pp = neww peersoon();P46 修修饰符:修饰符是影影响类、变变量、方方法以及及生存空空间、行行为和访访问性的的关键字字。表44-9列列出了类类、方法法和变量量可用的的常用修修饰符。表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建师范大学《人力资源管理(双语)》2023-2024学年第一学期期末试卷
- 全球与中国合成金属纳米线市场发展趋势及投资潜力研究报告2024-2030年
- 基于民俗文化的幼儿园课程游戏化建设
- 2024届新疆昌吉二中高考模拟考试试题(一)数学试题
- 2024届上海市浦东新区高桥中学高三第一次模拟(期末)数学试题
- 2024年山西客运资格证必考题
- 招聘与录用(第3版)第1章 概述
- 2024年昆明客运从业资格证考试考什么题型
- 漂亮的花边有趣课件
- 2024年江苏客运上岗证考什么内容
- 《建筑工程设计文件编制深度规定》(2022年版)
- 中国心力衰竭基层诊疗与管理指南(实践版2024)解读
- 行政复议法-形考作业3-国开(ZJ)-参考资料
- 2069-3-3101-002WKB产品判定准则-外发
- 23J916-1:住宅排气道(一)
- 《小学数学教学中提高学生计算能力的研究》开题、中期、结果报告
- JJG 162-2019饮用冷水水表 检定规程(高清版)
- 五大领域认知发展
- PMS颜色对照表
- 河沙开采工艺流程
- 机井通电标准化设计(200kVA
评论
0/150
提交评论