《java入门基础.docx》由会员分享,可在线阅读,更多相关《java入门基础.docx(95页珍藏版)》请在优知文库上搜索。
1、JAVA从入门到精通理想情况下,在阅读本书前,你应该对Java程序语言已经有了相当程度的掌握。但或许你已经很久没有用Java,或者你只是想通学习Java知识来进行手机游戏编程。如果你属于上述情况,那么本教程正是为你准备的。本教程不是要教你Java的所有细节,因为已经有大量的优秀书籍在做这些工作。相反,本教程只是想为你提供开发手机游戏程序所需的核心JaVa知识。1. 1Hello,World!学习一门语言的最好方法是直截r当地去看看一个真正的程序是如何编写的。与传统介绍性的语言实例一样,这里是一个的JaVa版的经典的“Hello,Workr程序。classHelloWorldpublicstat
2、icvoidmain(Stringargs)System.out.printin(Hello,World!);有必要指出的是,这个程序并不是为了在手机上运行而设计的。记住,本教程是一个一般性1.JaVa编程入门,而不是专门针对手机开发的。事实上,本教程所涉及的大部分实例都是在JaVa应用程序的命令行运行的,它们是所有JaVa程序中最简单的。Java编译器(javac)编译HeIloWorId程序后,你可以在Java解释器中运行它了OJaVa编译器生成了一个叫做“Hell。WOrkl.class”的可执行文件。这个命名规则可能看上去有点怪,因为事实上大多数程序语言都是用.exe作为可执行程序的扩
3、展名。JaVa偏偏没有这样。按照JaVa而向对象的特性,所有JaVa程序都存储在JaVa类中,它们在JaVa运行环境中作为对象被生成并执行。在命令行中输入javaHelloWorld,就可以运行HelloWorld程序。如果已经安装了JaVa软件开发包(SoftWareDeVek)PmenKit,SDK),计算机屏幕上会显示出aHello,World!。为了彻底理解在HeIk)WorkI中发生的情况,让我们检查程序中的每行代码。首先,必须要明2. Java非常倚重于类。事实上,HeIk)WOrId的第一行语句就揭示了HeIk)WOrkl不仅仅是一个程序,而且是一个类。通过进一步查看类实体中的语
4、句,你可以看到这个类的名称被定义为HelIoWorIdoJaVa编译器用这个名称作为可执行输出类的名字。HeIk)WOrkl类包括一个成员方法。现在,你可以把这个方法看作一个和类关联的标准程序方法。HenoWorld中这个唯一的方法叫做main(),如果你曾经用过C或C+,那么你应该对它很熟悉。类在JaVa解释器中执行时,是从main。方法并始的。main()方法定义为带有一个Void返回类型的“publicstaticopublic”意味着该方法可以在类内和类外任意地方调用。sialic”意味着该方法在这个类的所有实例中都是相同的。返回类型“void”意味着main()没有返回值。main(
5、)方法只有一个参数Stringargsoargs是一个String对象的数组,表示程序执行时所传递的命令行参数。由于HelloWorld没有使用任何命令行参数,所以可以忽略args参数。在本教程后边,你可以学到更多关于字符串的知识。HelloWorld类执行时会调用main()方法。main。只包含一行语句,用来把消息“Hello,World”作为标准输出流打印到屏琴上,如下所示:System.out.printIn(Hello,World!);由于对象嵌套,这条语句乍看上去有点混乱。为了帮助你把它弄清楚,我们从右向左来分析这句话。首先注意到这条语句的结尾是一个分号,它是从C/C+借用过来的标
6、准的JaVa语法。再左边可以看到一对括号中的字符串“Hell。,WOrkI!”,这表明它是一个方法调用所用到的参数。实际上,这个被调用的方法就是out对象的PrinUn()方法。Println()方法和C中的PrinIf方法很相似,只不过它是在字符串结尾附加一行新的字符(n)。OUt对象是SyStem对象的一个成员变量,用来表示标准输出流。最后,System对象是Java环境中封装系统功能的一个全局对象。这基本上就是HelIoWoHd类的全部内容,它是我们的第一个JaVa程序。如果你对HelloWorld类的说明还不是很明白,那也没什么关系。我们没有对JaVa语言进行说明就开始介绍HeIIoW
7、ork1,仅仅是为了让你到实践中去学习Java代码。木教程剩下的部分更多是对Java语言的基本原理进行结构化的讨论。1.2标记当你提交一个Java程序给Java编译器时,编译器解析文本并提取每个单独的标记。标记(oken)是语言中对于编译器有意义的最小元素,它定义了JaVa语言的结构。JaVa包含的所有标记又叫做JaVa标记集(JaVatokenset)。JaVa标记集可以分为5类:标识符、关键字、字而量(literals)运算符以及分隔符。JaVa编译器也可以识别并丢弃注释和空白。Java编译器在标记化一个源文件时丢弃了所有注释和空白。得到的结果标记被编译成与机器无关的JaVa字节码(byt
8、ecode),它可以在一个有解释能力的JaVa环境中运行。字节码符合JaVa虚拟机的要求,Java虚拟机把处理器间的差异归结成一个虚拟处理器。记住,一个有解释能力的Java环境可以是JaVa命令行解释器,也可以是JaVa浏览器,还可以是本书大多数示例所用到的支持Java功能的手机。1.2.1 标识符标识符是表示名字的标记。这些名字可以指定给变量、方法和类,使得编译器能够唯一地识别它们。程序员为这些标识符起了一些有含义的名字。HelloWorld是一个标识符,它分配名称HelIoWorld给HelloWorldjava源文件中的类。尽管在Java中你可以为标识符起一些有创意性的名称,但是这里还是
9、有些限制。所有Java标识符都区分大小写,而且必须以字母、下划线J)或者$开头。字母包括大写字母和小写字母。后边的标识符字符可以包括数字。到9。对标识符还有一个限制是,不能使用我们在下一部分列出的Java的关键字。表A.1是一个合法和不合法标识符名称的对比表。表.1合法和不合法的Java标识符合法不合法HeIloWorldHello(UseSaspace)HLMOmHi-Mom!(usesaspaceandpunctuationmark)heyDude33heyDude(bcginswithanumeral)Tallsho11(thisisaJavakeyword)poundage#age(d
10、oesnotbeginwithletter)除了上述对JaVa标识符命名的限制外,你还应该遵循以下格式规范从而使你的程序更加简单、更加一致。命名多个单词组成的标识符的时候,除了名字中间的每个单词的首写字母大写外,其他全部用小写,这是JaVa标准的命名规范。例如,变量toughGuy是正确的JaVa格式,而toughguy、TOUghGUy和ToUGHGUY都不合乎这种格式规则。这种规则不是一成不变的,它只是一种应该遵循的良好规则,因为大多数的JaVa代码都遵循这个规则。1.2.2 关键字关键字是Java为了特定的用途而保留的预定义标识符,只能以受限制的、特定的方式使用。下面列出了Java中保留
11、的关键字:abstractdoubleintStrictfpbooleanelseinterfacesuperbreakextendslongswitchbytefinalnativesynchronizedcasefinallynewthiscatchfloatpackagethrowcharforprivatethrowsclassgotoprotectedtransientconstifpubliccontinueimplementsreturnvoiddefaultimportshortvolatiledoinstanceofstaticwhile除了这些关键字外,JaVa还保留了nu
12、ll,true和false这几个词,所以它们也是受限的。1.2.3 字面量以固定不变的方式使用的程序元素,叫做字面量或常量。字面量可以是数字、字符或字符串。数字字面量包括整数、浮点数和布尔量。字符型字面量总是指一个UniCode字符。包括多个字符的字符串也看作是字而量,尽管它们在JaVa中以对象的形式实现。依笈拉Unicode字符集是一个16位的字符集,它取代了ASCII字符集。因为它是16位字符集,所以它有足够的条目来表示其他语言中众多的符号和字符。1 .整数型字面量整数型字面量是JaVa程序中最常用的字面量。整数型字面量主要有三种不同的格式:十进制、十六进制和八进制。这些格式对应字面量所使
13、用的数字系统的基本类型。十进制字面量的表现形式就是普通的数字,没有什么特别注意的地方。十六进制数的表现形式是以Ox或OX开头,表现方法与C/C+中很相似。八进制数的表现形式是在数字前加0。例如十进制数是12的整型字面量在JaVa中用十进制表示是12,用十六进制表示是OXC,用八进制表示是014。整数型字面量缺省存储为int型,它是32位的有符号值。如果你需要一个很大的数,可以在数字末尾加上1或L,把整型字面量强制存储为long型,如79L。Iong型是64位有符号值。2 .浮点型字面量浮点型字面量指的是像3.142这样带小数部分的十进制数。它们可以用标准的或特殊的符号表示,就是说数字563.8
14、4也可以写成5684e20同整型字面量不同,浮点型字面量缺省是64位的double型。如果你知道64位没有必要,也可以选择使用小一点的32位的Aoai型。指定为float型需要在数字末尾加上f或F,如5.6384e2f如果你是个注意细节的人,你也可以明确指明你想为你的字而量选择double型作为存储单元,如3.142d.但由于浮点数缺省存储已经是double型,这个后缀也就没什么必要了。开垓杠不因为本教程是Java编程的入门基础,所以我介绍了浮点数字面量。然而,值得注意的是在MlDP(移动信息设备平台,它是手机所用到的Java设备平台)中不支持浮点数据类型和字面量。换句话说,在Java手机游戏
15、代码中,不支持double型和float型。3 .布尔型字面量如果你使用过C/C+,那么肯定会非常喜欢布尔型字面量。在C中没有boolean型,也没有布尔型字面量,用整数1和0替代布尔型中的真和假。JaVa通过提供b。Iean型解决了这个问题,boolean型有两种状态:真或假。无疑,JaVa语言中的这两种状态用关键字true和false表示。JaVa编程中,布尔型的字面量和整数型字面量一样常用,因为它们几乎出现在每一种类型的控制结构中。当你必须表示有两种可能的值的一个条件或状态的时候,boolean类型总是你所需要的类型。在这部分稍后你将了解到更多有关b。Iean类型的知识。现在,只需要记住两个布尔型字面量:1rue和false04 .字符型字面量字符型字面量表示单个的Unico加字符,是由一对单引号括起来。特殊字符(控制字符和不能被打印的字符)用反斜杠(”)加字符表示。特殊字符的一个典型例子就是n,它在打印输出时强制从新的一行开始。表A.2显示了Java支持的特殊字符。表A.2JaVa支持的特殊字符5三一示方法反斜杠W续行符头退格b回车r换页f水平制表符Vt换行Nn单引号,双引号