第2章Java编程基础知识本章主要内容:●了解Java编程语言●定义Java类●声明变量和常量●编写计算语句●编写判断语句●编写循环●声明和访问数组第1章介绍面向对象的系统开发、基本的OO概念和OO词汇,使您对OO及其简单的历史有一定的了解。在本章中,将介绍Java编程语言的基础知识。本书假定您熟悉某些编程语言的基础知识。虽然Java要求您了解新语法,但您可能熟悉许多Java语句,如,许多编程语言中类似的if-then-else语法和循环语句while和do。本章介绍如何声明变量、如何编写计算语句、判断语句和循环以及如何声明和访问数组。阅读完本章之后,您将了解基本的Java编程语法和识别Java与其他语言之间的区别。并应能够设计和编写简单的Java类。本章主要提供有关用Java编程的基础知识,第3章将Java作为面向对象的语言进行研究并提供对Java语法的引用。2.1介绍JavaJava是一种相对年轻的语言,1995年中首次发布,但是在短期内它已经普及并被广泛地接受。Java是由SunMicrosystems开发的,它被设计成为一种强大的、具有全面功能的、面向对象的开发语言,在任何计算平台上都很容易学习和使用。另外,Java还支持在联网环境中开发应用程序。Java的部分功能来自其大而有用的类库,类库包含有数百种预先写入的类,这些类可提供“完成从简单的数字格式化到建立网络连接和访问关系数据库这样的任务”的方法。本章和后面的章节将演示提供的一部分类及其方法。Java是面向对象的,这意味着它可以实现在第1章中所了解到的OO概念:类、实例、方法、属性、封装、继承性和多态性。通过采用OO模型,Java鼓励使用可以明显减少调试和维护等琐碎工作的优秀软件设计。第3章更加详细地讨论Java的OO方面。Java是简单的,因为它使用的关键字集合比其他大多数语言都要少。关键字在编程语言中有特殊的含义,编写语句时使用它们。COBOL和VisualBasic之类的关键字有数百个,但是Java只有48个关键字,这些关键字列在表2-1中。在许多Java编辑器中,Java的关键字都显示为第2章Java编程基础知识•19•蓝色,如if和for。在表2-1中,以粗体显示的关键字在本章中定义。注意当前不使用const和goto。表2-1Java关键字abstractbooleanbreakbytecaseCatchcharclassconstcontinuedefaultdodoubleelseextendsfinalfinallyfloatForgotoIfimplementsimportinstanceofintinterfacelongnativenewpackageprivateprotectedpublicreturnshortstaticstrictfpsuperswitchsynchronizedthisthrowthrowstransienttryvoidvolatilewhileJava的可移植性意味着可一次性编写和编译程序,然后在许多不同的处理器和操作系统上运行。可移植性对于Internet应用程序来说很重要,因为经常从服务器上将第3章中演示的名为applet的Java程序下载到客户端系统来执行。下载的代码必须在不需要重新编译的情况下即可在各种计算平台上运行。如果要访问WorldWideWeb,虽然可能没有注意,但是肯定已经下载并执行了JavaApplet。使用字节码和解释程序(interpreter)可以获得Java的可移植性。编译Java程序时,会产生字节码。随后Java字节码就会在专门为各种计算平台设计的解释程序的控制下执行。此解释程序称为Java虚拟机(JavaVirtualMachine,JVM)。字节码和JVM组合意味着在不知道它将使用哪种计算平台的情况下即可编写Java程序。例如,可以在MicrosoftWindows系统上编写程序,但是随后应该让该程序在使用UNIX操作系统的Sun工作站上执行。图2-1显示如何产生Java字节码。编写的程序称为源文件,而且文件名带有像HelloWorldWide.java中的java扩展名。编译源文件时,会产生字节码文件,字节码文件名带有像HelloWorldWide.class中的class扩展名。字节码文件由JVM来执行。如果您的计算机上安装有Java开发工具包(JavaDevelopmentKit,JDK),则可从命令行来编译Java源代码文件。JDK由Java编译器、预先编写的数百个类和JVM组成。可以从SunWeb站点上免费下载JDK的最新版本,网址为:。您还可以使用几种优秀的集成开发环境(IntegratedDevelopmentEnvironments,IDE)中的一种环境来开发使用Java的OO软件。这些IDE通过提供可与JDK交互作用的成熟编辑器来改进开发效率。编辑器可以提供各种工具,包括色彩编码以指示Java程序的各部分。另外,还提供有功能强大的调试和图形开发工具。表2-2列出几家JavaIDE供应商,他们提供产品以及可以在Web上找到有关这些产品的信息的位置。您在本书中看到的所有Java示例都是使用RealJ第Ⅰ部分面向对象和Java基础知识•20•编写并测试的。第3章详细演示如何使用SunMicrosystem的Forte。图2-1编译Java表2-2集成开发环境软件供应商产品URLAllaireKawa类编程惯例是通过编写代码以显示消息“HelloWorld”来开始了解一种新语言。因为Java是面向对象的语言,因此各源代码文件实际上都可以定义类。对于您的第一个Java类,可以继续使用此惯例,但是应将消息扩充为“HelloWorldWideWeb”。在第一个示例中,可以命名类HelloWorldWideWeb并将代码存储在名为HelloWorldWideWeb.java的文件中。程序清单2-1显示HelloWorldWideWeb.java列表。看一下程序清单2-1中的类列表且用以下代码来显示。第一行称为类头,因为它描述包含在源代码文件中的类。Java源代码HellowWorldWideWeb.java字节码编译器字节码文件HellowWorldWideWeb.classJVM第2章Java编程基础知识•21•程序清单2-1HelloWorldWideWeb.java列表PublicclassHelloWorldWindeWeb{//thisclasshasonemethodnamedmainpublicstaticvoidmain(String[]args){System.out.println(HelloWorkdWideWeb);}}该程序输出如下:HollWorldWideWeb关键字public表示该类是可公共访问的,意味着每个人都可以使用它。关键字class表示这行代码是类头,HelloWorldWideWeb是类名,也是标识符。Java标识符是类名、方法名或变量Java中标识符的规则很简单。●它们可以为所选择的任意长度。●它们可以包括空格之外的任何字符。●它们必须以字母表中的字母、美元符号($)或下划线字符(_)作为开头。Java使用打开花括号({}和关闭花括号())来描绘代码块。Java类中的所有代码被封装为一个代码快,该代码块本身可以包含其他块。在程序清单2-1显示的代码中,代码块以第一个打开的花括号开始,并以最后一个关闭的花括号结束,这显示在下面的代码中:{//thisclasshasonemethodnamedmainpublicstaticvoidmain(String[]args){System.out.printIn(HelloWorldWideWeb);}}Java使用代码块来组织语句。稍后您将看到Java如何将代码块用于方法、循环和if语句。注意HelloWorldWideWeb.java代码具有一组辅助的打开和关闭花括号,这组花括号用来定义第一个代码块中的代码块。方法的第二个代码块将在后面的段落中进行介绍。Java区分大小写。例如,Java区分public和Public以及class和Class(在这2个案例中,小写版本是正确的关键字)。如果已经用不区分大小写的语言编写了代码,那么在输入Java代码时一定要细心。另外,该编译器不要求缩排代码,但是好的编程设计习惯主张缩排代码,如本文中的示例所示。该编译器还允许将一个语句扩充到多行上——不需要连行符(注意不能在字符串字面值——双引号中的一个值的中间中断一行。要这样做,必须使用下一章中讲述的连接运算符)。在HelloWorldWideWeb代码中,注释行紧跟在类头和打开的花括号的后面。可使用注释行向编译器忽略的代码中添加解释。Java注释由一个双正斜杠//开始,而且它自己可以占据一行,第Ⅰ部分面向对象和Java基础知识•22•也可以用在某行代码的结尾。Java具有2个其他格式的注释语句。第一个称为多行注释,该注释由/*开始,由*/结束。第二个称为文档注释,也可以扩充到多行上。不过,它由/**开始,由*/结束。在本文中,许多Java编辑器都将Java注释显示为绿色。通常在每一个源代码的开头都有注释行,以便为该类提供内部文档。有时候就像在HelloWorldWideWeb中一样,也可以在方法的开头编写注释,如下面的代码中所示://thisclasshasonemethodnamedmain类中的Java代码通常由变量定义和一个或多个方法组成。HelloWorldWideWeb示例没有变量,但是它有一个名为main的方法。回想一下,调用方法是为了执行某操作以提供某项服务。类都有一个名为main的方法,就像HelloWorldWideWeb一样,将类文件加载到内存中之后就会自动调用此方法;main方法是执行的对象。这意味着将HelloWorldWideWeb.class文件加载到内存中之后,main方法就开始运行。方法由方法头开始,方法头类似于先前显示的类头。下面的代码由一个方法头开始。publicstaticvoidmain(String[]args)编写方法头是为了标识该方法并描述它的某些特征。注意,在此头中public、static和void是关键字。这些关键字和该方法头的语法将在第3章和第2部分中介绍。目前需要知道public意味着任何其他程序均可调用此方法,该方法具有公有的可访问性;Static意味着此方法与实例无关;void意味着该方法不会返回值。此main方法包含一个单一语句,执行此语句即可显示您的消息。System.out.printIn(HelloWorldWideWeb);此语句与您在Java中看到的许多语句一样,也会调用另一个方法执行显示消息的任务。System.out是一个对象,它可以提供完成各种任务的方法。其中的一个方法printIn会显示传递给它的文本。在此示例中,会将包含在圆括号中的称为参数的信息发送给printIn方法,该方法随后会显示它。由于该参数包含在引号之间(HelloWorldWideWeb),所以Java会将它识别为一个字符串字面值。字面值是指调用的在一个语句中定义的某个值。。该参数带有一个分号,表明该语句结束。所有的Java语句均以分号结尾。实用练习1(1)HelloWorldWideWeb.java中包含的所有Java示例均可从上下载。(