




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java2入门经典教程 1.1什么是Java?作者: HYPERLINK /incSearch/search_author.asp?in=%CF%FE%D3%F0 t _blank 晓羽来源:希赛教育2009年6月23日 HYPERLINK /incSearch/search_bbstitle.asp?t=Java2%C8%EB%C3%C5%BE%AD%B5%E4%BD%CC%B3%CC+1%2E1%CA%B2%C3%B4%CA%C7Java%3F&c=%D0%C2%CA%D6%BD%CC%B3%CC%7C%7CJava t _blank 发表评论 HYPERLINK /incSearch/s
2、earch_board.asp?c=%D0%C2%CA%D6%BD%CC%B3%CC%7C%7CJava t _blank 进入社区 HYPERLINK /incsearch/search.asp?key=Java t _blank Java程序设计是一个庞大的、发展迅速的领域。自从 HYPERLINK /incsearch/search.asp?key=Java t _blank Java发布以来,作为一种面向对象的程序设计语言,不论在Internet程序设计中,还是在程序设计的教学中,都呈现出显著的优势。Java 2平合对于支持应用程序的开发来说,是一个具有重要影响的成熟软件。实际上,Ja
3、va本身并不复杂,只是内容稍多了一些。使用它进行软件开发会更快、更好。 Java的另一个主要特性可能就是面向对象(object oriented ).用面向对象的方法进行程序设计是所有Java程序的一个隐含特性,在本章的稍后部分,我们将会看到它的含义。Java不仅面向对象,而且还设法避免其他面向对象语言中继承的难度和复杂度,因此你将会发现Java是一个非常简单、容易学习的语言。 在本教程中,我们力求让你对Java语言有个全面的了解,并适当地体验该语言环境的应用,最终使你对每个核心内容有一个清楚的认识。在对本书内容深入理解之后。你就可以开始编写功能强大、高效的Java程序了。 本教程中入门(Be
4、ginning)这个词,更多的是指教学方式而不是你的技能水平。把它称之为直接进入Java可能更贴切,因为它的教学结构就是按此设计的,也就是说,不管你是一名受过其他语言训练的 HYPERLINK /incsearch/search.asp?key=%B3%CC%D0%F2%D4%B1 t _blank 程序员,还是一名程序设计的 HYPERLINK /incsearch/search.asp?key=%D0%C2%CA%D6 t _blank 新手,本教程都会将你直接领入Java世界。Java2入门经典教程 1.2 学习Java作者: HYPERLINK /incSearch/search_au
5、thor.asp?in=%CF%FE%D3%F0 t _blank 晓羽来源:希赛教育2009年6月23日 HYPERLINK /incSearch/search_bbstitle.asp?t=Java2%C8%EB%C3%C5%BE%AD%B5%E4%BD%CC%B3%CC+1%2E2+%D1%A7%CF%B0Java&c=%D0%C2%CA%D6%BD%CC%B3%CC%7C%7CJava t _blank 发表评论 HYPERLINK /incSearch/search_board.asp?c=%D0%C2%CA%D6%BD%CC%B3%CC%7C%7CJava t _blank 进入社
6、区 HYPERLINK /incsearch/search.asp?key=Java t _blank Java并不难,只是包含的内容比较多。语言本身相当精练,但功能非常强大。为了能够更加有效地使用 HYPERLINK /incsearch/search.asp?key=Java t _blank Java编制程序,你需要学习该语言所包含的库,其中的内容十分丰富。在本书中。你将依次了解语言如何运行以及如何应用它。学习这些内容的顺序经过精心地安排,通过一些相对简单、明了的过程,你就可以获得一定的专业知识,建立运用Java进行程序设计的信心。每一章都尽量避免使用你还没有学习到的东西。这样一来,你不
7、能马上编写嵌入Weh网页的Java程序,但是这确实是一种诱人的想法,有点像冒险跳入深水学习游泳。一般说来,比较好的做法是在学习游泳之前,先在浅水池中学习如何漂浮,这样溺水的可能性就被降到了最低程度,很可能最后你还会成为一名优秀的游泳运动员。 java程序正像我们己经提到的。你可以用Java编写两种类型的程序。嵌入 HYPERLINK /incsearch/search.asp?key=Web t _blank Web网页的程序被称作Java小应用程序(applet),一般单独运行的程序称作应用程序(application ).你还可以进一步将Java应用程序细分为控制台应用程序(console
8、 application ),即只能够将字符输出到计算机屏幕上(例如,在PC机的 HYPERLINK /incsearch/search.asp?key=Windows t _blank Windows下的DOS窗口中),还有窗口化的Java应用程序C windowed Java application ),即可以建立、管理多个窗口,并且使用典型的基于窗口程序的图形用户界面(GUI )的技术。 在学习Java语言基础阶段,我们将使用控制台应用程序作为例子来说明其运行过程。这是因为我们可以将注意力集中在语言的特征上,而不用担心那些建立、管理窗日时遇到的复杂问题。一旦你熟练掌握了java语言的所有
9、特点,就可以转到窗口化的应用程序和小应用程序上。 学习java一一前面的路 在开始学习之前,仔细考虑一下从哪儿开始,以及选择什么样的学习路线,非常有益,所以让我们先来看看学习Java的主要路线图。在使用本书学习Java时,你将经过五个阶段逐步提高。 1.第一阶段是本章。开始介绍一些有关Java程序结构的基本概念及Java程序的运行方式。其中包括 HYPERLINK /incsearch/search.asp?key=%C3%E6%CF%F2%B6%D4%CF%F3%B3%CC%D0%F2%C9%E8%BC%C6 t _blank 面向对象程序设计的有关概念:如何将一个Java源文件建成一个可执
10、行程序等等内容。在一开始就接触这些概念,会使你感到学习编写Java程序是一件很容易的事情。 2.第二阶段,你将学习如何将语句组织在一起,在程序中如何 HYPERLINK /incsearch/search.asp?key=%B4%E6%B4%A2 t _blank 存储基本数据,如何进行计算以及如何根据结果作出判断。这些都是你进一步学习所需要解决的难题。 3.第二阶段,你将学习有关类的知识,即如何定义一个类,如何应用类。这些是你需要掌握的3ava语言的面向对象特性。到此为I匕你已经学习了所有关于Java语言运行的基木知识,具备了进一步深入学习如何应用它们的基础。 4.第四阶段,你将学习如何将一
11、个应用程序分成可并发执行的程序段。当你在一个Web网页中包括几个小应用程序,并且一个小应用程序的开始执行并不需要等待另一个小应用程序结束时,这一点显得尤为重要。例如,在你玩一个游戏时,可以让置于同一个Web网页中的另一个有趣的动画片同时演播。 5.第五阶段,你将更加详细地学习如何实现一个应用程序,或者一个带有图形用户界面的小应用程序,以及如何处理在此环境中的用户交互,这将应用Java类库所提供的能力。与学习GUI工具一样,你也将学习用不同的方法来处理图像和使用Java的数据库访问工具。完成这个阶段的学习,你就具备了自己编写成熟的应用程序和小应用程序的能力。 本教程结束后,你应该是一名知识丰富的
12、Java HYPERLINK /incsearch/search.asp?key=%B3%CC%D0%F2%D4%B1 t _blank 程序员,欠缺的只是经验。我们将以完整的例子来揭示,Java的制作作过程。你应该建立并且运行所有这些实例,即使是最简单的,也最好山你亲自录入,不要害怕实验。对于不是很清楚的所有内容,你都应该变换一个例子来分析它的运行过程,最好你自己编写一个例子。假如你对已经学习过的Java某些方面的内容还不是很明确,请不要马上在书中查找,先试试看,能够发现错误是学习的一个有效途径。Java2入门经典教程 1.3 Java环境1作者: HYPERLINK /incSearch/
13、search_author.asp?in=%CF%FE%D3%F0 t _blank 晓羽来源:希赛教育2009年6月23日 HYPERLINK /incSearch/search_bbstitle.asp?t=Java2%C8%EB%C3%C5%BE%AD%B5%E4%BD%CC%B3%CC+1%2E3+Java%BB%B7%BE%B3%5B1%5D&c=%D0%C2%CA%D6%BD%CC%B3%CC%7C%7CJava t _blank 发表评论 HYPERLINK /incSearch/search_board.asp?c=%D0%C2%CA%D6%BD%CC%B3%CC%7C%7CJ
14、ava t _blank 进入社区 你可以在各种类型的计算机上使用各种 HYPERLINK /incsearch/search.asp?key=%B2%D9%D7%F7%CF%B5%CD%B3 t _blank 操作系统运行 HYPERLINK /incsearch/search.asp?key=Java t _blank Java程序。 HYPERLINK /incsearch/search.asp?key=Java t _blank Java程序在PC机的Windaws 95/98/NT上运行,与在Sun Solaris工作站上运行的效果一样出色。这是由于Java程序不直接在计算机上运行,
15、它运行在一个 HYPERLINK /incsearch/search.asp?key=%B1%EA%D7%BC t _blank 标准的被称为Java虚拟机(Java virtual machine)的假想计算机中,这种虚拟机是在你的计算机中用程序仿真的,如下图所示。 你编写的Java源代码被Java编译器转换为由字节码( byte codes)组成的二进制程序。字节码是Java虚拟机的机器指令。在你执行Java程序时,一个称为Java解释器(Javainterpreter)的程序将检查、解释这些字节码,验证并确保它没有被篡改,可以 HYPERLINK /incsearch/search.as
16、p?key=%B0%B2%C8%AB t _blank 安全运行。然后,在Java虚拟机内执行解释的字节码。3ava解释器可以单独地运行,也可以作为 HYPERLINK /incsearch/search.asp?key=Web t _blank Web浏览器的一部分运行。比如Netscape Navigator或者Micrasaft Internet Explorer,都可以自地调用并执行包含在Web网页中的小应用程序。 因为Java程序是由字节码组成的,而不是原始的机器指令,所以与运行它的特定硬件完全无关。任何计算机只要实现Java的环境,就可以像其他计算机一样运行Java程序。由于Jav
17、a解释器位于程序和物理机器之间,它可以阻止执行那些在程序中未经认一可的操作。在过去,所有这些灵活性和保护作用的获得都伴随着性能的损失,这主要反映在执行速度上。一个被解释的Java程序的运行速度仅是使用内部机器指令的相应程序的十分之一。例如,对于那些主要不是用于计算的程序(包含在Web网页中的程序就属于这类程序),你不必很注重速度问题。如果你碰巧有一个支持程序实时编译(Just-In-Time compilation)的Java环境,就不必担心这些性能的损失。当它们被加载时,快速编译器可以把你的Java程序转换为内部的机器指令。程序的加载时间会稍长一些,但加载成功后,就会以最高的速度运行。 Ja
18、va HYPERLINK /incsearch/search.asp?key=%B3%CC%D0%F2%BF%AA%B7%A2 t _blank 程序开发有很多优秀的Java程序开发环境,包括Sun, Borland、Symanteu的产品。它们都提供了非常友好的环境来建立、编辑源代码,编译和调试源程序。价格最低的Java程序开发包无疑是免费获得的Sun公司的Java开发工具IDK ),但使用起来并不很方便。对于不同的硬件 HYPERLINK /incsearch/search.asp?key=%C6%BD%CC%A8 t _blank 平台和操作系统,你可以从公司Sun Java站点的htt
19、p:ffjava. HYPERLINK /incsearch/search.asp?key=sun t _blank 网址中 HYPERLINK /incsearch/search.asp?key=%CF%C2%D4%D8 t _blank 下载。即使你正在使用这种或者那种交互式的开发环境,我也建议你安装JDk,它为你提供了一个优秀的引用环境来检查可能出现的问题。使用Java产品提供的Java版本并不一定是最新的,所以如果你在一个商业化的Java开发系统下运行书中的例子出现了问题,就应该用JDK试看。这个环境会使程序很好地运行。Java2入门经典教程 1.4 面向对象的程序设计1作者: HYP
20、ERLINK /incSearch/search_author.asp?in=%CF%FE%D3%F0 t _blank 晓羽来源:希赛教育2009年7月1日 HYPERLINK /incSearch/search_bbstitle.asp?t=Java2%C8%EB%C3%C5%BE%AD%B5%E4%BD%CC%B3%CC+1%2E4+%C3%E6%CF%F2%B6%D4%CF%F3%B5%C4%B3%CC%D0%F2%C9%E8%BC%C6%5B1%5D&c=%D0%C2%CA%D6%BD%CC%B3%CC%7C%7CJava t _blank 发表评论 HYPERLINK /incSe
21、arch/search_board.asp?c=%D0%C2%CA%D6%BD%CC%B3%CC%7C%7CJava t _blank 进入社区 正像本章开始所说的, HYPERLINK /incsearch/search.asp?key=Java t _blank Java是一个面向对象的程序设计语言。在使用非面向对象的程序设计语言时,你必须用数值、字符,即语言中可以处理的基本数据类型,来求解各种问题。 而在像 HYPERLINK /incsearch/search.asp?key=Java t _blank Java这样的面向对象语言中,情况就截然不同了。当然,你还是要对数值和字符进行操作
22、,它们被称为蔫本数据类型(basic data types ),但你也可以定义与特定问题相关的其他实体类型。你将依据与问题相关的实体或对象解决问题。这不但影响一个程序的结构,而且解决问题所表达的术语也不尽相同。如果你的程序涉及到棒球运动员,Java程序中就可能需要包括一个BaseballPlayer对象;如果你编制一个程序涉及California的水果产品,就有可能需要包含Oranges对象。实际上,除了外在感觉外,面向对象的程序通常比较容易理解。在Java语言中,几乎所有事物都是对象。如果你以前没有学习过面向对象的程序设计,可能会感到一丝恐惧。请不要害怕,Java中的对象非常简单。事实上,我
23、们马上就要开始了解在Java对象背后的一些概念。这样一来,从一开始你就站在了正确的跑道上。 这并不意味着我们马上就陷入用Java描述和使用对象的细节,在此我们只给出概念。我们从在Java代码中使用奇数位这一基础开始学习,逐步帮助我们理清概念。对于这里的所有代码,我们将在后续章节中讲解。首先,我们集中理解清楚对象的含义,然后就可以轻松地在实践中将它分析、研究透彻,使之不断深入。 什么是对象? 任何事物都可以被看成是一个对象,对象随处可见。你可以把Tree(树)看作是一个特殊的对象类,一般所说的树是一个非常抽象的类,这是由于你很难找到一种能够概括所有树种的树。因此,在我的花园中,橡树,我就叫它my
24、oak;在你的花园中,枝树,你叫它thatDarnedTree;而generalSherrnan是一种闻名的红木。它们都是树的特例,也就是说,橡树、按树和红木都是树的子类。注意,在这里我们将引入类(class)这个犬语,它是一个描述具有共同特性的对象集合的规格说明( specification).类是表达规格说明或者模板的程序段,它定义了特定对象的组织方式。子类也是一个类,它继承了父类的所有特性,除此之外又有自己的特殊属性。当然,定义的类要符合你的需求,它并没有绝对的框架。对于一个很小的问题,Tree类的规格说明可能只包含树的种类和高度。如果你是一个树木栽培家,有关树的信息要求得可能更加复杂,
25、可能是一个类集,它包含了很多种树木。 程序中使用的每个对象都会在某处有与之对应的类定义,这一点对于lava语言或其他面向对象的语言来说都是相同的。在程序设计中,类的基本概念与现实世界中的物种分类基本一致,它是将事物组织在一起的一种习惯,并且是一种极好的定义方式。 类的实例(instance)是一个技术术语。它描述了一个己有的对象。Ash是一个对象的规格说明,而yourAsh就是构成该规格说明的一个对象,因此yourAsh就是类Ash的一个实例。一旦你定义了一个类,就可以说明其对象,又称该类的实例。这就产生了一个问题。Java2入门经典教程 1.5 Java程序桔构1作者: HYPERLINK
26、/incSearch/search_author.asp?in=%CF%FE%D3%F0 t _blank 晓羽来源:希赛教育2009年7月2日 HYPERLINK /incSearch/search_bbstitle.asp?t=Java2%C8%EB%C3%C5%BE%AD%B5%E4%BD%CC%B3%CC+1%2E5+Java%B3%CC%D0%F2%BD%DB%B9%B9%5B1%5D&c=%D0%C2%CA%D6%BD%CC%B3%CC%7C%7CJava t _blank 发表评论 HYPERLINK /incSearch/search_board.asp?c=%D0%C2%CA
27、%D6%BD%CC%B3%CC%7C%7CJava t _blank 进入社区 程序结构的必要元素如下: 一个 HYPERLINK /incsearch/search.asp?key=Java t _blank Java程序包含一系列的类。 每个程序中至少有一个类,也可以有多个类。 每个类的程序代码存放在一个单独的文件中,其文件名必须与内部定义的类名相同。 HYPERLINK /incsearch/search.asp?key=Java t _blank Java源文件必须使用扩展名。java.比如类Hat的文件名为Hat.java, BaseballPlayer类的文件名为BaseballP
28、layer_java 由几个文件组成的一个典型程序如下所示。 很显然,这个程序主要是针对服装的,5个类中有4个类用来描述服饰。每一个源文件都包含一个类定义,组成这个程序的文件被 HYPERLINK /incsearch/search.asp?key=%B4%E6%B4%A2 t _blank 存储在同一个目录中。程序的源文件将包含需要的全部代码,但是这并不意味着所有事物都已包含在程序中。除此之外,还有在前面提到的Java HYPERLINK /incsearch/search.asp?key=%B1%EA%D7%BC t _blank 标准类库中引用的代码,所以让我们来看一看Java标准类库的
29、用途。 Java类库 java中的库是一个类集,其中的类提供了常用的相关功能,它们可以在程序中直接使用。java类库为你提供了大量引人注目的内容,其中一些主要是为运行你的程序提供服务,另外一些则便于你更加容易地编写程序。标准类库覆盖了很广泛的范围,在这里我们不可能很详尽地进行讨论,在本书中我们只讲述如何应用它所提供的功能。 因为类库是一个类集,所以它以一组文件的形式存储,每个文件都包含一个类定义。所有类按其相关性被分成若干个组,我们将这些组称为包(package)每个包都存储在一个独立的目录中,包中的类可以访问同一包中的其他类,而有可能不能访问另一个包中的类。有关这点我们将在第5章中进行详细的
30、论述。 包的名称以这个包所属类的存储路径为基础。例如,包java.lang中的类被存储在目录路径javalang中(或在 HYPERLINK /incsearch/search.asp?key=Unix t _blank Unix的java/lang中).这个路径与一个特定的目录有关,此目录可被执行代码的3ava运行环境自动识别。为了在不同的地方重复使用有关的类,你也可以建立包括自定义类的包。 JDK包含的标准包数量不断增长,我最后一次统计的结果大约为60个包。其中有一些包使用得非常频繁,如下表所示。包的名字描述java.lang这些类支持基本语言的特征,其中包括处理数组和串的类。该包中的类在
31、程序中被设定为默认有效,它们由程序自动地加载。 我们看一下Java程序是如何工作的。,你可以使用最喜欢的文本编辑器来编辑这个程序代码,假如你有附带编辑器的Java开发系统,也可以使用它将这个例子的代码输入进去。输入代码后,使用类名再加上扩展名java作为文件名,将其保存起来。例如,文件名为OurFristProgram.java程序代码如下所示: 我们将这个程序命名为OurFirstProgram,它由一个类定义组成在类定义中只包含一个方法main()第一行是对方法main()的定义,它的格式定义总是如下所示:Java2入门经典教程 1.6 Java和Unicode作者: HYPERLINK
32、/incSearch/search_author.asp?in=%B4%F3%CE%AA t _blank 大为来源:希赛教育2009年7月3日 HYPERLINK /incSearch/search_bbstitle.asp?t=Java2%C8%EB%C3%C5%BE%AD%B5%E4%BD%CC%B3%CC+1%2E6+Java%BA%CDUnicode&c=%D0%C2%CA%D6%BD%CC%B3%CC%7C%7CJava t _blank 发表评论 HYPERLINK /incSearch/search_board.asp?c=%D0%C2%CA%D6%BD%CC%B3%CC%7C
33、%7CJava t _blank 进入社区 程序设计如何支持除了拉丁文字符集外的任何语言,己成为一个大问题。许多国家语言定义的是8位字符集,但是如果你要在一个文件中同时使用拉丁文字符集和西里尔字符集(Cyrillic)就会产生问题。如果你要处理日文,用8位字符集表示将是不可能的。Unicode是一个 HYPERLINK /incsearch/search.asp?key=%B1%EA%D7%BC t _blank 标准字符集,它是为满足所有语言的字符需要而制定的。它用16位编码表示一个字符,即一个字符占两个字节,从而可以表达多达65535个不同的字符。这样就叮对许多字符进行编码,也就有足够的空
34、间设置每个国家的字符集编码。其中可以包含日文使用的需要数千个字符编码的Kanji字符集。 我们将在第2章中看到, HYPERLINK /incsearch/search.asp?key=Java t _blank Java源代码使用的也是Unicode字符集。严格地说,只有注释、标识符、字符和文本串可以使用Unicode前128个之外的字符。 HYPERLINK /incsearch/search.asp?key=Java t _blank Java内部也支持Unicode来表示字符和串,所以它潜在地具有理解国际性语言的能力。你熟悉的ASCII码与Unicade前l28个字符是一一对应的,所不
35、同的是每个字符占用两个字节,你不必在意所要处理的字符编码,当然除非你从一开始就要建立一种支持多语言的应用程序。Java2入门经典教程 2.1 数据和变量1作者: HYPERLINK /incSearch/search_author.asp?in=%B4%F3%CE%AA t _blank 大为来源:希赛教育2009年7月3日 HYPERLINK /incSearch/search_bbstitle.asp?t=Java2%C8%EB%C3%C5%BE%AD%B5%E4%BD%CC%B3%CC+2%2E1+%CA%FD%BE%DD%BA%CD%B1%E4%C1%BF%5B1%5D&c=%D0%C
36、2%CA%D6%BD%CC%B3%CC%7C%7CJava t _blank 发表评论 HYPERLINK /incSearch/search_board.asp?c=%D0%C2%CA%D6%BD%CC%B3%CC%7C%7CJava t _blank 进入社区 变量(varialble)是一块取了名字的、用来 HYPERLINK /incsearch/search.asp?key=%B4%E6%B4%A2 t _blank 存储 HYPERLINK /incsearch/search.asp?key=Java t _blank Java程序信息的内存区域,它是一些有意义的数据。在程序中,定
37、义的每块被命名的内存区域都只能存储一种特定类型的数据。如果你定义了一个存储整数的变量,就不能用它来存储0.75这样的数据类型,假如你定义了一个引用Hat对象的变量,就只能用它来引用一个Hat类的对象(或它的任何子类,正像我们在第1章中所介绍的).因为每个变量能够存储的数据类型是固定的,所以不论什么时候在程序中使用变量,编译器都要对它进行检查,检查是否出现类型不匹配或操作不当的地方。如果程序中有一个处理整数的方法,而你不小心地用它处理了其他类型的数据,比如。一个字符串或一个非整型的数值,编译器就会将它检查出来。 在程序中直接给出的数值被称作直接纽(literal).每个直接量也属于一个特定的类型
38、,例如,25属于整型int在我们讨论每种变量类型的同时,将同时探讨所应用的各种类型的直接量特性。使用变量前,你必须用一个声明(declaration)语句说明它的名字和类型。在介绍如何定义变量之前,我们先介绍一下如何选择变量名称。 变量名 为变量选定的名称,更确切地讲,是为 HYPERLINK /incsearch/search.asp?key=Java t _blank Java中每个成分选定的名称,被称作标识符(identifier).标识符可以是任意的长度,但是必须以字母、下划线(_)或美元符号($)开头。标识符的其余部分可以包含除了那些在Java中被用来作为运算符(像十,一或*)以外的
39、任何字符,但最好使用字母、数字和下划线 Java语言是大小写敏感的,所以名称republican和Republican是不相同的。庄名称中不能包括空格或制表符,因而Betty May是非法的,但你可以使月BcttyMay或者Betty_May注意,10up是一个非法的名称,因为名称不能以数字开头。当然,你可以将它替换为tenup。 按照上面提到的命名限定,你几乎可以用你喜欢的任何名字来命名一个变量,但还有两条限制需要注意;一条是不能使用Java的关键字(keyword);另一条是名称不能为任何常量。关键字是Java语一言中作为基本成分的单词。在前一章中,我们已经看到了一些关键字,在本章中,我们
40、将会更多地了解一些。如果你希望知道全部的关键字,请参阅附录C中给出的关键字列表。限制用常量命名是因为名称不可能是1234或37.5 ,这是显而易见的,但常量也有一字母型的,比如true和false.本章稍后,我们将会讲述如何声明常量。当然,指定这些规则的基本原因,是编译器必须能够辨别变量与程序中的其他内容。如果你试图为变量应用,个不可辨别的名字,就会得到一个非法的名称。 很显然,为变量选定的名称最好能够反映变量存储的数据意义。假如你要记录一顶帽子的尺寸,hatSize.就是一个不错的选择,而qqq就不尽如人意。在java中有一个普遍的习惯,即变量名的第一个字母为小写,名字可以由儿个单词组合而成
41、的,这时每个单词的第一个字母为大写,比如hat5ize或moneyWellSpent.我们并不强迫你遵守这个习惯,只是ELI于几乎所有Java领域都是如此,所以这样做会对你有益。 如果你希望咋命名习惯上以及一般的编码习惯上获得更多的指导,请访问可以用来 HYPERLINK /incsearch/search.asp?key=%B4%E6%B4%A2 t _blank 存储整型数值的变量类型有四种。它们都是有符号数,即可以存储正的或负的数值。这四种整数类型所存储的数值范围有所不同,因此,为变量指定哪种类型将取决于所需要的数值范围。 HYPERLINK /incsearch/search.asp?
42、key=Java t _blank Java中的四种整数类型是: 上述每条语句都声明了一个特定类型的变量。 对于 HYPERLINK /incsearch/search.asp?key=Java t _blank Java,无论你使用何种机型,每种整数类型所存储的数值范围均如上表所列,范围都是相同的。这点对于本章稍后介绍的其他基本类型也是成立的,并且最有利的是,你的程序在完全不同的计算机环境下可以用相同的方式运行。使用其他程序设计语言不一定能够做到这点。 当然,我们是用十进制来表示每种类型取值范围,在内部,整型数值是以二进制形式存储的,存储每种类型可用的二进制位数决定了它的最大值和最小值,如下
43、图所示。 这里显示的每个二进制数的最左面一位是符号位,用S标记。符号位为O表示正数,为1表示负数。二进制负数用二进制补码的形式表示。如果对此不太熟悉,请参阅附录E中有关内容。 整型数值 整型变量存储整型数值,所以在使用整型变量之前,我们需要研究一下怎样书写各种形式的整型数值。正如前面所看到的,Java中的任何一种数值都被称为直接(li1teral),比如1、10.5和This is text都是直接量。 任何整型直接量(integer literal)的默认类型都是整型(int.因此,1、-9999. 123456789都是int型直接量。如果你要定义一个长型(long)的整型变量,并且赋给该
44、变量一个大于int型的数值,就需要在该数值后面追加一个L.1L, -9999L, 123456789L都属于long型的。你也可以用小写字母l,但最好不这样用,因为它与数字1太容易混淆了。 你可能想知道如何指定字节型(byte)或短型(short)的直接量。实际上你绝对没有这个必要,在稍后你会看到其中的缘由,由于java,中整型算术运算的方式,基本上不需要这两种类型的直接量。在后面我们将看到一对整型直接量被编译器解释为 byte或short型的例子,然而这些情况纯属异常。 整型直接量也可以被指定为基数16,也就是十六进制数值。在java中,一十六进制数值的直接量要以Ox或OX为前缀,常用的AF
45、(或of)跟随其后,它们分别表示lO,15之间的数值。 如果你愿意的话,也可以将一行声明扩展到几行来完成。这样也可以提高程序的可读性。例如:Int miles =0, /one mile is 8 furlongs Furlongs =0, /one furlong is 22 yards Yards =0, /one yard is 3 feet Feet =0; 当然,你必须确保变量的初始值在对应的类型取值范围内,否则,编译器将会报错。你的编译器有足够的能力辨别出用存储位数少的类型变量放置存储位数多的类型数值的情形,也就是说,把一个long型常量赋给了一个int,short或byte型的变
46、量。 下面两条语句将完成声明和初始化一个byte型和一个short型的变量:byte luckyNumber = 7;short smallNumber = 1234; 这里,编译器能够推断出整数直接量分别为byte和short型。绝大多数情况下,你会发现你涉及的整型变量用int类型就够了。当你确实需要处理较大的整型数值时,才需要一个long型变量。byte和short型变量可以节省一些内存,但除非你有很多这样的数据需要存储,否则,这些变量的取值范围非常有限,不值得为节省这点空间量而费心。当然,当你从外部源读取数据时,例如,一个磁盘文件,你需要按照所期望读取的类型定义每个数据值的类型。Java
47、2入门经典教程 2.3 浮点数据类型作者: HYPERLINK /incSearch/search_author.asp?in=%B4%F3%CE%AA t _blank 大为来源:希赛教育2009年7月28日 HYPERLINK /incSearch/search_bbstitle.asp?t=Java2%C8%EB%C3%C5%BE%AD%B5%E4%BD%CC%B3%CC+2%2E3+%B8%A1%B5%E3%CA%FD%BE%DD%C0%E0%D0%CD&c=%D0%C2%CA%D6%BD%CC%B3%CC%7C%7CJava t _blank 发表评论 HYPERLINK /incS
48、earch/search_board.asp?c=%D0%C2%CA%D6%BD%CC%B3%CC%7C%7CJava t _blank 进入社区 非整型数值被 HYPERLINK /incsearch/search.asp?key=%B4%E6%B4%A2 t _blank 存储为浮点型(floating point)数值。浮点型数值有固定的精度,但是它的取值范围非常大。虽然数字位数是固定的,但山于小数点可以浮动,所以可以获得一个非常大的取值范围。例如,O,000005, 500.0和5000000000000.0可以分别书写成5*10的负6方, 5*10的平方和5*10的12次方。我们只用
49、5这一位数字,而通过移动小数点的位置可以获得不同的数值。 在 HYPERLINK /incsearch/search.asp?key=Java t _blank Java中有两种基本的浮点类型:float和double.这两种类型使你能够对表示的数据精确度以及取值范围进行选择:数据类型 描述 Float该类型的变量表示-3.14E38(-3.14*1038)+3.4E38(+3.4*1038)之间的数值,占用4个字节的内存空间。表示的数值精确度大约为7位. Double该类型的变量可表示-1.7E308(-1.7*10308)+1.7E308(+1.7*10308)之间的数值,占用8个字节的内
50、存空间。表示的数值精确度大约为17位,你可以使用的最小非0数值为4.9*10-324 在 HYPERLINK /incsearch/search.asp?key=Java t _blank Java中,所有的浮点运算以及float类型的double类型的数值浮点型数值的定义都遵循IEEE754 HYPERLINK /incsearch/search.asp?key=%B1%EA%D7%BC t _blank 标准。 如同整型运算一样,在任何计算机上,Java中的浮点型运算都将产生相同的结果。 浮点型直接量的默认类型为double,比如,1.0和345.678都是double型数值。若你要说明一
51、个float类型数值,就需要在其后追加字母f或F.比如,1.0f和345.578F都是float类型的常数。对于非常大或非常小的浮点数值,通常使用指数形式进行书写,即一个十进制小数乘以10的幂次。在Java中,你可以用十进制小数后跟E或e,之后再跟10的幂次来表示。 例如,地球到太阳的距离大约为14960O000千米,但可方便地写成1.496E8.由于E(或e) 后面表示的是指数,所以这个数值等于1.438x 10的8次方。与此数值形成极大反差的是分子质量大约为0.00000000000000000000009克。它写成9.0E-28克的形式更加方便、可读。 声明浮点型变量 声明浮点型变量和声
52、明整型变量的方法相同。我们可以用语句来声明和初始化一个 Double类型变量: Double HYPERLINK /incsearch/search.asp?key=sun t _blank sunDistance=1.49EB; 声明一个float变量的方法也完全相同,例如: Float eletronass=9E-28F 当然你可以在一条语句中声明多个同一种类型的变量: Folat hisweight=185.2F,herweight=105.5p 注意,你必须在每个float类型的直接量后面放置F或f.假如你忽略了这一点,该直接量将被视为double类型,并且编译器不会自动地将它转换为f
53、loat类型。现在,我们己经知道了如何声明和初始化基本类型的变量,差不多可以准备编写程序了。在此之前,我们再了解一下如何进行计算以及将计算的结果保存起来。Java2入门经典教程 2.4 算术运算1作者: HYPERLINK /incSearch/search_author.asp?in=%B4%F3%CE%AA t _blank 大为来源:希赛教育2009年7月28日 HYPERLINK /incSearch/search_bbstitle.asp?t=Java2%C8%EB%C3%C5%BE%AD%B5%E4%BD%CC%B3%CC+2%2E4+%CB%E3%CA%F5%D4%CB%CB%E
54、3%5B1%5D&c=%D0%C2%CA%D6%BD%CC%B3%CC%7C%7CJava t _blank 发表评论 HYPERLINK /incSearch/search_board.asp?c=%D0%C2%CA%D6%BD%CC%B3%CC%7C%7CJava t _blank 进入社区 你可以使用赋值语句(assignment statement)将计算的结果 HYPERLINK /incsearch/search.asp?key=%B4%E6%B4%A2 t _blank 存储到一个变量中。赋值语句由一个变量名后跟一个赋值运算符(assignment operator)算术表达式和
55、分号组成。这里是一个简单的赋值语句: numFrruit=numApples+numPranges; /Calculate the total fruit 其中,赋值运算符为等号(=).计算等号右侧表达式的值,并将计算结果存储到等号左侧的变量中。在本例中,是把变量numApples和numOranges的值相加,并将结果存储到变量numFruit中。当然,我们必须在这条语句之前声明这三个变量。 在程序中,经常要求变量按照给定的数值递增。请看下面这条赋值语句: numApples=numApples+1 等号右侧表达式的计算结果比变量numApples的值大1.这个结果存储回变量numApple
56、s中,因此,执行这条语句的最终结果是将变量numApples的值增1.不久,我们将会看到另外一种产生同样效果的更简明的方法。你可以在一条语句中书写多个赋值。假设你有a, b, c三个int型变量,并且要把它们都赋值为777,就可以用下面这条语句实现: a=b=b=777 注意,赋值语句与声明语句中的初始化是有区别的。初始化将使变量在建立时有一个给定的常数值。赋值包含将内存中一个地方的数据复制到另一个地方的操作。对于上面的赋值语句,编译器将分配一些内存(4个字节)来存储int型的常量777.然后,这个值将被复制到变量c, c中的数值将被提取出来并复制到b中。最后,b中的数值将复制到a中。(但是,
57、严格地说,在编译这些代码时,编译器会优化这些赋值语句以提高相同数值被连续赋值的效率)。 HYPERLINK /help/zt/java2/ t _blank Java2入门经典在线教程完整版用一条简单的赋值语句将一个常数赋给short或byte类型的变量。此常数将被 HYPERLINK /incsearch/search.asp?key=%B4%E6%B4%A2 t _blank 存储为等号左侧变量的类型,而不县int类型,例如: short value=0; value=10; 当编译和运行这条声明语句时,将为变量value分配空间,并设置它的初始值为0.因为value是short类型,所以
58、赋值操作把10作为short类型的整型直接量,并占用2个字节。然后将数值10复制到变量value中。现在,让我们更加详细地介绍如何进行整型运算。 整型运算 在整型中可使用的基本运算符有+、一、*和/,它们分别表示加、减、乘和除。它们都是二元运算符(binary operator)即将两个操作数结合产生一个结果值。例如2+3,操作数(operand)是运算符的操作对象。当表达式使用这些运算符进行计算时,所应用的优先级或先后次序同你在学校里学习的一样。乘法和除法在加法和减法前执行,所以表达式: 20-3*3-9/3 结果为8,这是因为它等价于20一9一3正像在学校中学过的一样,你可以在算术运算中使
59、用括号来改变运算顺序。括号内的表达式总是最先计算。当有多层括号时,最内层的表达式最先计算。因此表达式: (20-3)*(3-9)/3 等价于17*(-6)/3,其结果为一34 当然,这些运算符也可以应用于存储整型数值的变量和整型直接量。你可以使用存储在变量length和breadth中的数值计算area,编写成: area-length=breadth 至此我们已经描述的算术运算符都是二元运算符,这样称呼是因为它们都需要两个操作数。还有一元(unary)形式的+和一运算符,它们在运算符右侧应用一个单一的操作数。注意,一元运算符一不仅仅是一个-345这样的直接量符号中,而且还具有一定的运算符效能
60、。当把它应用到一个变量时,结果为存储在该变量中数值的相反数。例如,变量taunt的值为一10,表达式一count的结果为+10.当然,将一元运算符十应用于变量,结果与该变量的内容相同。 让我们在一个控制台应用程序中试验一些简单的算术运算: 试试看-苹果和橘子(或选你自己喜欢的水果) 这是本例中的关键字,并将它保存到名为Fruit.java的文件中,你会记得上一章中每一个文件都包括一个类,文件名称就是类名加上扩展名 HYPERLINK /incsearch/search.asp?key=Java t _blank Java. public class Fruit public static vo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 修建性设计合同范本
- 10万吨煤矿合同范本
- 单位只交社保合同范本
- 公司销售代理合同范本
- 出售机械板车合同范本
- 医药培训销售合同范本
- 个人精装房租赁合同范例
- 保洁大扫除合同范本
- 买汽车有没有三包合同范本
- 加工基地 合同范本
- 《道路建筑材料绪论》课件
- 医学遗传学教案-山东大学医学遗传学
- 海南省澄迈县2024-2025学年七年级上学期期末考试地理试题(含答案)
- 2025年湖南现代物流职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 第二十章手术减肥及体形塑造美容手术美容外科学概论讲解
- 2025年苏州卫生职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 履带式剪叉高空作业平台安全操作规程
- 男科话术完整版本
- 中国心力衰竭诊断和治疗指南2024解读(完整版)
- 榆神矿区郭家滩煤矿(700 万吨-年)项目环评
- 统编版五年级道德与法治下册全册完整课件
评论
0/150
提交评论