《Java基础培训教程摘抄.docx》由会员分享,可在线阅读,更多相关《Java基础培训教程摘抄.docx(25页珍藏版)》请在三一办公上搜索。
1、Java基础培训教程老虎工作室 沈伯青 编著人民邮电出版社第二章 运行环境安装与测试P5 Java不进提供了一个运行环境,而且还提供了一个免费的Java软件开发工具集JSDK(Java Software Development Kit),有了这个工具集就可以在Java标准平台(J2SE)上进行Java代码程序的开发。JSDK最初被成为Java Development Kit(JDK),最开始发行的版本是1.1,后来随着Java的发展,JSDK 的版本逐渐增加,有了1.2版本、1.3版本等,目前已经升级到1.4版本。在Java中,统一称1.2版本或更高的版本为Java 2。JSDK包括生成Jav
2、a中最基本的小应用程序和应用程序所需要的所有工具和标准Java类库。Java平台分为三种,他包括Java标准平台(J2SE,Java 2 Platform Standard Edition)、Java企业级平台(J2EE,Java 2 Platform Enterprise Edition)和Java小型平台(J2ME,Java 2 Platform Micro Edition),其中J2EE和J2ME平台上的应用实现都是要建立在J2SE平台基础之上的。P9 现已将JSDK安装在“D:JSDK14”目录下,可以根据路径找到该目录并查看该目录中的内容,如图2-9所示。可以看到目录下有5个子目录分
3、别是“bin、demo、include、jre、lib”,以及5个文件。对于初学者来说,需要注意的是“bin”目录和“lib”目录下的内容。双击“bin”目录,发现有23个后缀名为“.exe”的实用程序。这些都是开发工具库所自带的工具。对于初学者来说血药了解和掌握的是8个工具,见表2-1。其中读者能够很快遇到并需要掌握的工具是:Javac、Java、Appletviewer、Javadoc,其次是Jar,然后是Jdb、Javap、Javah。对于剩下的15个工具,读者可以查询相关的帮助文件。表2-1 JSDK的8种主要工具名称解释JavacJava编译器,将Java源文件代码转换成Java字节
4、代码,编译后缀名为“.java”的根文件,生成一个新的后缀名为“.class”的类文件,其文件名和根文件的文件名相同JavaJava编译器,用来执行生成的后缀名为“.class”的类文件,即执行Java应用程序自己代码Appletviewer小应用程序的Java浏览器,主要是执行后缀名为“.html”或者是“.htm”的文件,这些文件的内容嵌套着Java小应用程序类JavadocJava说明工具,根据Java源代码及其说明语句生成相关的HTML文档,编程者可以很方便的通过HTML文档来了解Java源代码的功能、方法及其继承关系JdbJava调试器,可以逐行执行程序、设置断点和检查变量Javap
5、Java反汇编器,显示编译类文件中可访问功能和数据,同时显示字节代码的含义JarJava档案文件生成器,用它可以生成的后缀名为“.jar”文件,JAR文件可以在一个压缩文件中发布多个Java类和资源,这个资源可以包括哟GIF图片资源、HTML文档资源等Javab头文件生成器,产生可以调用的Java过程的C过程,也可以建立能被Java程序调用的C过程的文件头P10 虽然已经安装了JSDK,也同时安装好了Java运行环境,但是Java语言是跨平台的,无论在什么平台或者操作系统下的文本编辑器里都可以编写“.java”代码,最终都要经过Javac编译器将源代码转换成与平台无关的“.class”字节代码
6、,这是Java语言编程的一个重要特性,也是其体现出跨平台优越性的保证。本书中对“.java”代码的Javac编译器所执行的操作也是在Windows操作系统中的【命令提示符】窗口下进行的。【命令提示符】窗口下只能执行缺省的DOS命令,如cd、dir、clear等,如果要执行Javac、Java、Javadoc等命令,则需要进行额外的环境变量的设置。表2-2 本书常用的基本DOS命令名称解释DirDOS查询命令,用来查询所在目录的具体文件信息等cd 用来进入某一个文件夹,其中“”表示文件夹名称,“cd”和文件夹名称之间有一个空格cd.退出当前文件夹目录进入上一级目录,其中“”表示当前所在的文件夹名
7、称%:&转换盘符操作,从“%”盘符转入到“&”盘符,其中“%”“&”均为盘符,它们一般代表“C,D,E”例如“C:D”表示从C盘转到D盘P11设置Path变量:首先打开我的电脑右键属性高级选项卡中的环境变量,找到系统变量分组框中的“Path”系统变量,保持变量名的“Path”不变,在变量值的文本编辑框内的末尾添加“;D:JSDK14bin”的字样,这样就可以在命令提示符窗口中执行Javac、Java、Javadoc等命令了。提示:这里假设JSDK已经安装在D盘的JSDK14目录下,将“bin”目录添加到系统变量“Path”中,确保了“bin”目录下的可执行文件可以在命令提示符窗口下运行。只设置
8、了Path环境变量对运行所有可执行文件还是不够的,因为在“.java”代码中,还可能引用JSDK缺省的几个Java类包,否则用“Javac编译器”无法将代码成功编译而生成“.class”类文件,所以Java还要利用另一个环境变量CLASSPATH。P12 添加CLASSPATH环境变量:Java运行环境从“CLASSPATH”环境变量中寻找到要执行的Java了。如果设置不当,则可能遇到各种因为找不到指定的类而引起的各种错误。在环境变量对话框中单机系统变量分组框的新建按钮,新建变量名为“CLASSPATH”变量值为“.;D:JSDK14libdt.jar;D:JSDK14libtools.jar
9、”的系统变量。这里需要注意的是变量值中最前面的两个符号:一个点号“.”和一个分号“;”不能漏掉。P13 环境测试:在命令提示符中输入java version可以判定JSDK 版本、java运行环境版本等。除此之外,还可以输入以下命令:java hjar hjavadoc hjavac h来查询执行程序的相关参数使用方法。P14程序测试:新建文本文档输入以下程序,public class testHello public static void main(String arg) System.out.println(Hello,这是一个测试!);/中文状态下输入的分号 /main()/*test
10、Hello */将文件命名为“testHello.java”。保存位置是“E:program02testHello.java”。文件保存成功之后,在命令提示符窗口中进入到“E:program02”目录。输入的命令那个依次为:E:cd programcd 02这样就进入了“E:program02”目录,在次目录下依次输入如下命令:dirjavac testHello.javajava testHellodir这时会发现目录下多了一个“testHello.class”文件,这是Javac编译器将源代码编译成字节代码生成类文件的结果。显示输出的“Hello,这是一个测试!”是Java编译器直接执行J
11、ava应用程序字节代码的结果。P16 Java应用程序流程:一个Java应用程序首先是经过文本编辑器的编辑工作得到Java源代码,源代码经过Javac编译器编译之后产生Java类文件,再经Java编译器编译执行得到输出程序。其中Javadoc执行程序可以对Javac源代码进行操作,生成关于Javac源代码的说明文档,这种文档是以HTML格式输出的;另外Javap执行程序可以对Java类文件进行操作,得到的是对Java类文件反编译的结果,同时也看到Java源代码的方法分布情况。P17 建档应用程序Javadoc:Javadoc是建档应用程序。它将能源代码自动建档,这样做的好处是在源代码进行一定格
12、式的说明之后,可以将这些说明自动传输到HTML文件中,是开发者直接从生成的Javadoc文档中查找到相关类一集相关类的方法、属性变量。代码程序中的说明字段是需要放在“/*”和“*/”之间的,这样Javadoc编译器才可以识别这些说明字段。/*这是一个有说明的Java应用程序*/public class testNoteHello /* *这是testNoteHello类的主函数,他主要是输出一句话。 */ public static void main(String arg) System.out.println(Hello,这是一个有说明的测试!); /main()/*testNoteHel
13、lo*/将以上文字生成文档时,在命令提示符窗口“E:program02”目录下需要输入:javadoc testNoteHello.java这里不必先将“testNoteHello.java”文件通过Javac编译器编译成“testNoteHello.class”文件。最后输出了10个新的HTML文件和1个“package-list”文件以及1个样式单(CSS)文件,这个CSS文件的作用是包含HTML页面的格式信息。是修饰或者约束HTML文件显示格式的。打开“testNoteHello.html”文件,则可以看到代码程序中的文档说明一集次代码类的摘要信息。P18 反汇编器Javap: Java
14、p工具可以查询任何类,检查类的方法。它只在类文件也就是“.class”文件生成之后进行操作,也就是说它操作的对象必须是类文件,仅接受类名,实际操作是在命令提示符窗口“E;program02”目录下输入:javap testNoteHello得到的清单信息为:Compiled from testNoteHello.javapublic class testNoteHello extends java.lang.Object public testNoteHello(); public static void main(java.lang.String);这里显示了两个方法,testNoteHel
15、lo()和main()。testNoteHello()成为缺省的构造函数,这是一个特殊的方法,如果在源代码中没有特殊指定该类的构造方法,则这个没有入口参数的缺省的构造方法将会自动的在Javap中生成,而main()方法是源代码中的。这样通过Javap执行程序操作也可以看到源代码的方法构造情况。Javap也选用“h”方法来查询其参数使用方法。当选择参数为“c”时:javap c testNoteHello结果显示基础的字节代码的序列和方法清单。Compiled from testNoteHello.javapublic class testNoteHello extends java.lang.
16、Object public testNoteHello();public static void main(java.lang.String);Method testNoteHello() 0 aload_0 1 invokespecial 1 4 returnMethod void main(java.lang.String) 0 getstatic 2 3 ldc 3 5 invokevirtual 4 8 return实际上这些命令就是经过Javap反汇编生成的源代码,但和真正的“.java”源代码有很大的出入,这是因为将字节代码再转换成源代码必然会有损耗而和实际不符,但大体表现出源代码
17、中方法的具体信息。因为“.class”类文件无法用一般的文本编辑器查看,所以使用者在不知道源代码的具体信息时常常采用此方法来了解一个类文件中的信息。第三章 面向对象和类的概念P22 相似对象的抽象称之为类(Class),它有着对象的特征:属性和行为。也就是说,类是相似或者相同对象的一个抽象的集合,这个集合包括了一些对象所共有的性质。另一方面,通过类可以获得一个对象,称之为对象的实例(Instance),一个“类”就像是一个压制模型的板子,可以做出许许多多类似但独立的个别对象。因此要使用对象,需要首先建立一个类,再通过“对象建立”的动作产生所需对象。而每一个产生的对象就是一个独立的个体,拥有自己
18、的状态变量值。P24 一个类的结构用“修饰符+class+类名”和一对大括号来描述。例如程序清单3.1,类的类体为:public class vehicle /*vehicle*/类中定义的4个属性,它们为“journey、wheelNum、loadNum、driverSpeed”和两个方法vehicle()和driver()方法。属性的定义用“修饰符+数据类型+声明变量+分号”来描述,例如:public float journey;方法的定义用“修饰符+返回标志+方法名”和一对小括号来描述,例如:public void driverAt(int speed) / driverAt()其中属性
19、定义和方法的定义及其实现都应该放在大括号内,而代码子句的实现都需要放在方法的小括号内,这样就定义了一个类。值得注意的是driverAt()方法,次方法提供了一个入口参数“speed”,这是为司机向机动车发布命令留下了入口。当司机调用机动车对象要求以某一速度行驶时,将调用driverAt()方法。这个方法在判定司机要求的速度小于最大行驶速度之后指定速度进行行驶,否则将行驶速度定为40。if(speed=60) driverSpeed=40;else driverSpeed=speed;P25 程序清单3.2 “vehicleDriver.java”文本文件public class vehicle
20、Driver public String name;/定义司机的名字/*vehicleDriver类构造函数*/ public vehicleDriver()name = TOM;/vehicleDriver() /*vehicleDriver类对象的work方法*/public void work() vehicle v = new vehicle();/生成vehicle类的对象v d.driverAt(45);/调用v对象所固有的driverAt()方法/work()public static void main(String arr )/生成ehicleDriver类的对象vd ehi
21、cleDriver vd = new ehicleDriver(); vd.work(); /调用vd对象所固有的work()方法/main()/*vehicleDriver*/“vehicleDriver”类定义了司机姓名这一属性,并在其构造函数vehicleDriver()方法中设定了司机的名字为“TOM”,同时还设定了司机的工作行为方法work(),在这个方法中,首先生成了“vehicle”类的一个对象v,接着这个对象调用了“vehicle”类的实例所固有的方法driverAt(),而且还对行驶的速度进行了赋值,用来告诉机动车的对象v需要按照45单位(单位具体是什么需要根据实际代码所要解
22、决的问题来定)的速度行驶。这就是在work()方法中完成了对象的生成,以及对象之间的调用和消息传递。和“vehicle”类不同,“vehicleDriver”类多了一个静态的main()方法。在Java编程中规定,当一个类有main()方法时,它就可以被作为应用程序进行使用。而此例的main()方法中,生成了一个“vehicleDriver”类的对象vd,这一操作使用程序中的代码子句:vehicleDriver vd = new vehicleDriver();来完成。它的含义是指生成了一个名字叫TOM的司机对象。vd.work()是表明了司机开始工作,工作的内容就是:以45单位的速度驾驶一部
23、已经行驶了100.3km的四轮机动车。P26 因为只有“vehicleDriver”类文件有main()方法,所以只能执行它一个。用Java工具来执行。命令如下:java vehicleDriver(自己注:没有方法main()就不能执行)提示:如果需要编译一个目录下的多个“.java”文件,可以分别用javac编译器进行编译,也可以采用“javac *.java”命令来一起编译,这样节约了时间。如果“.java”文件很多而且代码编写错误可能会比较多,则不提倡用此种方法,因为这样可能会产生很多编译错误信息,反而影响了效率。P27 在Java术语中,祖先称之为“超类”,而子孙称之为“子类”。“超
24、类”是“子类”的子集。P29 如果要调用一个对象的方法,Java解释程序会自动检查定义该对象的类中的方法,如果该类有这个方法,则Java解释程序会自动调用它。如果在这个类中没有找到指定的方法,则Java解释器会自动寻找该类的超类中的方法,依此类推,直到找到这个方法调用它。如果查找所有的关于该类的超类而最终也没找到这个方法,Java解释器才会报告找不到该方法。查找方法的顺序是从底层到顶层,也就是说按照从子类到超类顺序的。P30 接口:尽管单重继承比较简单好用,而且也使我们比较容易理解和设计类之间以及类所实现的功能之间的关系。然而,它也有一定的限制,特别是当需要从类层次结构的不同分支重复类似特性的
25、时候,Java通过接口解决了这一问题。Java中的接口(Interface)比类更抽象。它只定义了一些公用的行为或操作而无任何的实现。而这类的行为或操作,可被称为抽象方法(Abstract Method)。因此任何的类,只要它需要皆可直接加入其所需的Interface。同时一个类虽然仅可继承一个超类,但它却可实现多个接口,而这样的方法在Java的程序实现里扮演了一个相当重要的角色。一个超类A有两个子类分别是C和D。其中C有着C1和C2两种特性,而D有着D1和D2两种特性。现在想创建一个新的类E,它有C的C1属性和D的D1属性,因为Java是采用单重继承的,而且C和D是两个不同的分支,所以不可能
26、像多重继承那样用E来同时继承C和D。接口的出现可以解决这个问题。这种解决方法之一就是创建一个接口来定义C1和C2的行为,然后在创建一个类来实现这个接口从而生成一个新的类。可以看出接口的出现是对类的一个有效补充,两者几乎可以同等对待,它们之间的差别就在于接口不能像类那样产生实例。P31 接口的创建:程序清单3.4 “E.java”文本文件public interface Epublic static final int E1 = 100; /E1属性public void C1(); /C1行为方法public void D1(); /D1行为方法/*E*/程序清单3.4中定义了E接口,它和定义
27、一个类很相似,只是在定义方法之后没有方法的具体实现操作,而是以一个分号就结束了定义。实际上这就是进行了接口的行为方法的声明。接口没有main()方法,也不能生成新的实例,但是它编写之后也是保存成“.java”文件。保存的文件名和接口名保持一致。在通过javac编译器编译之后也生成“.class”文件,这一点也和类相似。P31 接口的扩展;接口的扩展也采用关键字“extends”来进行实现。所以假设创建一个F接口,它是继承E接口的。则可以用以下代码来声明。public interface F extends E/接口F的内容 如果需要创建一个G接口,它是分别继承E接口和接口的,则可以用以下代码来
28、声明。public interface G extends E,F/接口G的内容在多重继承中被继承的父类接口之间用逗号隔开。P32 接口的实现:使用接口来定义新的类,需要用“implements”来完成。例如编写一个Eclass类,它有C1行为方法和D1行为方法,则只要实现E接口就可以了。Eclass类程序见程序清单3.5.程序清单3.5 “Eclass.java”文本文件public class Eclass implements Epublic void C1()/实现C1行为方法 System.out.println(C1方法实现);/C1()public void D1()/实现D1行
29、为方法 System.out.println(D1方法实现);/D1()/*Eclass*/代码“public class Eclass implements E”不仅声明了一个类Eclass,同时还声明这个类要实现E接口,这里用到了关键字“implements”,而且在这个类中重写了C1()和D1()两个方法,编写了代码进行了实现。这样就完成了Eclass类的创建工作。这个类可以被其他子类所继承,并且也可以生成这个类的对象。提示:读者也许会认为可以直接编写Eclass类而不用实现接口,这样自然省去了接口的定义,但是在实际应用中,接口恰恰是非常有用的,在接口中会定义很多方法,不同的类可以按照自
30、身的性质继承接口,各取所需,实现不同的方法,这样编写出的类集合的层次才会更加清楚,提高效率。一个要编写的类可以实现多个接口,但是要确保所有接口的方法都被实现,尽管有些接口的方法不需要,也要编写一个没有代码的空方法进行实现。例如Eclass类中就需要将E接口中声明的方法一一实现,如果缺少了E1()方法或者是D1()方法,Eclass类均不能编译成功。另外在实现接口中定义的类之后,所编写的类也可以编写自己的方法。例如编写一个EtotalClass类,这个类不但实现了E接口和M接口,同时也有自己的方法E1()。程序清单3.6给出了M接口的定义,程序清单3.7给出了完整的EtotalClass类的定义
31、。程序清单3.6 “M.java”文本文件public class EtotalClass implements E,Mpublic void C1()/实现C接口C1行为方法System.out.println(C接口C1行为方法实现);/C1()public void D1()/实现D接口D1行为方法 System.out.println(D接口D1行为方法实现);/D1()public void M1()/实现M接口M1行为方法 System.out.println(M接口M1行为方法实现);/M1()public void E1()/自身的方法实现 System.out.println
32、(自身的方法实现);/E1()public static void main(String a ) EtotalClass e = new EtotalClass(); e.C1(); e.D1();e.M1();e.E1();/main()/*EtotalClass*/程序清单3.7中用代码“public class EtotalClass implements E,M”完成了“EtotalClass”类的声明,同时也声明它要实现E接口和M接口,多个接口中用逗号隔开。第4章 Java语言基础 P35 变量的定义包括变量名、变量类型和作用域几个部分。P36 变量的作用域是指一个变量可以被访问的
33、代码程序段。声明一个变量的同时也就指明了变量的作用域。按作用域来分,变量可以有下面几种:局部变量、类变量、方法参数、例外处理参数。每一种变量都有其一定的应用场合和作用域。a局部变量在方法或方法的一块代码中声明,它的作用域为它所在的代码块,即整个方法或方法中的某块代码。b类变量是在类的开始声明中创立,而不在类的某个方法中声明,因此它的作用域是整个类。c方法参数传递给方法,它的作用域就是这个方法。d例外处理参数传递给例外处理代码,它的作用域就是例外处理部分。P36 String表示字符型常量。P37 局部变量在创建之后必须进行变量赋值,否则程序将无法编译,所以给局部变量赋值是编程者一个良好的习惯。
34、这种习惯的延伸是给类变量进行初始值赋值,尽管有时候类变量对初始值赋值不是那么重要。P37 常量:常量是一种特殊的变量,所以它的声明是和变量的声明一致的,只是需要在变量的声明类型前加“final”关键字来表明此变量是一个常量,同时一个常量需要进行初始值的确定。例如创建数学公式中的圆周率这一常量。final double PI = 3.1415926;常量的名称一般都是大写的,例如圆周率一般用大写“PI”而不用小写的“pi”。但是这并不是必须的,这只是一个良好的Java编程习惯,看到全部都是大写的变量的时候会想到这可能是一个常量,从而使程序更加的容易被理解。P38 基本数据类型:整型变量的类型有b
35、yte、short、int和long 4种。int类型是最常使用的一种整数类型。它所表示的数据范围为64位处理器。但对于大型计算,常会遇到很大的整数,超出int类所表示的范围,这时要使用long类型。由于不同的机器对于多字节数据的存储方式不同,可能是低字节向高字节存储,也可能是从高字节向低字节存储,这样,在分析网络协议或文件格时,为了解决不同机器上的字节存储顺序问题,用byte类型来表示数据是合适的。而通常情况下,由于其表示的数据范围很小,容易造成溢出,应避免使用。short类型则很少使用,它限制数据的存储为先高字节,后低字节,这样在某些机器中会出错。实际中使用哪一个数据类型完全取决于整数的实
36、际大小,恰当的选取数据类型可以节省空间,提高程序的运行效率。实数型数据类型有float和double两种,它们分别代表着单精度类型和双精度类型。char字符型数据类型用于存储单个字符,例如字母、数字、标点符号和其他符号。boolean布尔型数据类型用于存放true或者false关键字。以上8种数据类型为Java语言中基本的数据类型。同时Java中还有一些诸如Char和Boolean的类,它们的拼写和基本的数据类型基本一致,只是首写字母大小写不同。因为Java编程中是区分大小写的,所以它们有不同的功能,从属性上就可以看出,一方面是数据类型,另一方面是类。另外需要重点提出的是String数据类型,
37、它是“java.lang.String”类的对象类型。它表示一个顺序不可变的字符序列,该数据类型在Java编程中起着相当大的作用,但是它不是基本的数据类型。P38 数据类型值: 表4-3 常用的数据类型数据类型形式booleantrue或者falseint十进制:数字091099十六进制:0x或0x后面跟09、AF,如0x9AFlong同int数据类型,但后面跟1或者L,如0x9AFLfloat数字加小数点,后面跟f或者是F,如3.14fdouble数字加小数点或者是科学计数法,如3.14、3.14+15Fchar引号内的ASCII码,如 S、qString双引号内的一列字符,如LaoHuP3
38、9 数值型数据间的混合运算:整型、实型、字符型数据可以混合运算。在运算过程中当遇到不同类型的数据时,一般是先转换成同一数据类型,然后再进行运算。转换是按从低级到高级的转换原则。转换规则如下:(byte或short)op intint(byte或short或int)op longlong(byte或short或int或long)op floatfloat(byte或short或int或long或float)op doubledoublechar op intint其中“op”符号左边的表示主动参与运算的数据类型,“op”为运算符(如加、减、乘、除等),“op”符号右边的表示被动参与运算的数据类型
39、,“”符号右边的是转换完的数据类型。当需要将高级数据转换成低级数据时,需用到强制类型转换,例如将float型数据变量转换成int型数据变量,则:float f;int i = (int)f;提示:将高级数据转换成低级数据可能会导致数据的丢失,例如当f的值是3.14的时候,将其转换成整型类型i之后,i的值为3,这一点在强制转换的过程中需要注意。P40 注释的语法:Java编程中注释有3种方法,它们适用于不同的场合。 /comment 从“/”到语句末尾的所有内容都属于说明语句,只能用于单行。 /*comment*/ 从“/*”到“*/”之间的语句为说明语句,可以用于多行。 /*comment*/
40、 用于建档的说明语句,其内容是“/*”到“*/”之间的。其中comment为程序中的注释信息,“/*comment*/”语句是特殊的说明语句,称为Javadoc说明语句,是根据JSDK工具命名的,它的作用和“/*comment*/”语句相似。注释语句在程序运行阶段将被忽视,所以不影响程序的进行。但是“/*/”语句不能采用嵌套形式,即“/*/”语句内再一次进行“/*/”语句的注释,它的形式为“/* /* */ */”。这样第一个“*/”会终止说明语句,导致后面的说明注释语句无效而在编译或者是运行中执行。P40 至此已经介绍了Java语言的关键字、变量、常量、数据类型和注释等内容,这些内容实际上在
41、Java编程中都是很细小的部分,但是它们却是Java编程的基础,正确的理解和运用它们就是奠定了应用Java代码编程的基石。程序4.1对这些方面进行了综合运用,读者可以针对程序的具体细节来对应学习以上的内容。程序清单4.1 “dataInit.java”文本文件/*本例介绍和运用Java关键字、变量、常量、数据类型和注释等方面内容*并且采用它生成一个标准的javadoc文档*author Tiger*version 1.0*/public class dataInit/*主函数、完成所有功能。*param String arg*return 无*throws 无*/public static v
42、oid main(String arg )/单行注释,描述下一行子句功能。定义整型变量int roadLength = 1000;/定义单精度数据类型。进行初始化赋值,数字加小数,后面跟ffloat roadAddLength = 500.1f;/定义双精度常量圆周率PIfinal double PI = 3.1415926;/定义字符串对象变量String query = abcdefg;/*多行注释,此为第一行以上用到了public、class、static、void、int、float、final、double等关键字此为第三行*/返回实型的道路总长度float flRoadTotalL
43、ength = roadLength + roadAddLength;/返回整型的道路总长度int intRoadTotalLength = roadLength + (int)roadAddLength;/main()/*dataInit*/P42 运算符首先是特殊符号,它主要由算术运算符、关系运算符、布尔运算符、字符串操作符、赋值操作符、特殊操作符等组成。P44 布尔型操作符作用于布尔操作数并返回布尔值,用以实现标准的布尔代数运算。其基本运算为AND、OR、NOT、和XOR(异或)。 AND是二元“布尔与”操作,其符号是“&”。当两个布尔型操作数都为true的时候返回的结果为true。如果
44、两个布尔型操作数至少有一个为false,那么返回的结果就为false。 OR是二元“布尔或”操作,其符号是“|”。当两个布尔型操作数都为false的时候返回的结果为false。如果两个布尔型操作数至少有一个为true,那么返回的结果就为true。 NOT是“否”操作,其符号是“!”。当操作数是true的时候,则返回的结果是false。当操作数是false的时候,则返回的结果是true。 XOR是二元“异或”操作,其符号是“”。当两个布尔型操作数都为true或者都为false的时候,返回结果是false。当两个布尔型操作数一个为true而另外一个为false的时候,返回的结果为true。另外布尔
45、型操作符还有“&”(条件与)操作符和“|”(条件或)操作符,它们的运算情况和“布尔与”和“布尔或”相似,只不过前两个操作符是面向条件的真假来判断得到结果的,“布尔与”和“布尔或”是根据操作数的真假来判断结果的,在实际情况中“条件与”操作符和“条件或”操作符使用的频率比较高。P45 字符串操作符:字符串操作符只有一个“+”称之为结合操作符。它用于将字符串连接结合在一起生成一个新的字符串,它的优先级是5。例如:String sOld = I;String sNew = sOld+am a boy;sNew是一个新的字符串,其结果是“I am a boy”。如果一个字符串String和一个对象Object用“接合” 操作符进行连接,则Java自动调用对象的toString()方法,这样两者相加返回的还是一个字符串变量。例如:String sOld = I;String oldObject ;String sNew = sOld+oldObject;P46 特殊操作符:此外还有测试操作符和生成运算符。测试操作符的符号是“instanceof”,它的作用是判断一个变量是否是某一个类的实例,返回是