全套課件·Java簡明教程(第二版)_第1頁
全套課件·Java簡明教程(第二版)_第2頁
全套課件·Java簡明教程(第二版)_第3頁
全套課件·Java簡明教程(第二版)_第4頁
全套課件·Java簡明教程(第二版)_第5頁
已閱讀5頁,還剩744頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第1頁第1章 Java入門 本章概述 本章的學(xué)習(xí)目標(biāo)主要內(nèi)容第2頁本章概述Java是一種跨平臺的面向?qū)ο蟪绦蛟O(shè)計語言,自問世以來,受到越來越多開發(fā)者的喜愛。它不僅吸收了C+語言的各種優(yōu)點,而且摒棄了C+里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用等特征。本章將從Java的起源講起,詳細(xì)介紹Java的發(fā)展歷程、Java的特點、Java開發(fā)工具以及Java程序開發(fā)的基本步驟,并創(chuàng)建一個簡單的HelloWorld程序。第3頁本章的學(xué)習(xí)目標(biāo)了解Java語言的歷史和特點理解Java與其他編程語言的關(guān)系掌握J(rèn)ava程序的基本構(gòu)成了解流行的Java程序集成開發(fā)環(huán)境掌握J(rèn)ava Ap

2、plication的一般開發(fā)步驟掌握J(rèn)DK的安裝與配置第4頁主要內(nèi)容1.1 概述 1.2 第一個Java程序1.3 Java開發(fā)工具1.4 Java程序開發(fā)步驟1.5 本章小結(jié)1.6 思考和練習(xí)第5頁1.1 概述 Java是由美國Sun公司(現(xiàn)已被Oracle公司收購)開發(fā)的支持面向?qū)ο蟪绦蛟O(shè)計的計算機語言。它最大的優(yōu)勢就是借助于虛擬機機制實現(xiàn)的跨平臺特性,實現(xiàn)所謂的“一次編譯,隨處運行”,使移植工作變得不再復(fù)雜。 Microsoft、IBM、DEC、Adobe、SiliconGraphics、HP、Toshiba、Netscape和Apple等大公司均已購買Java的許可證,Microsof

3、t還在其IE瀏覽器中增加了對Java的支持。另外,眾多的軟件開發(fā)商也開發(fā)了許多支持Java的軟件產(chǎn)品。第6頁概述Java ME、Java SE、Java EE是Java針對不同的應(yīng)用而提供的不同服務(wù),即提供不同類型的類庫。初學(xué)者一般可從Java SE入手學(xué)習(xí)Java語言。Java SE是一個優(yōu)秀的開發(fā)環(huán)境,開發(fā)者可以基于這一環(huán)境創(chuàng)建功能豐富的交互式應(yīng)用,并且可以把這些應(yīng)用配置到其他平臺上。第7頁1.1.1 Java的起源與發(fā)展早在1990年12月,SUN 公司就由Patrick Naughton、Mike Sheridan和James Gosling成立了一個叫做Green Team的小組。1

4、992年9月3日,Green Team發(fā)表了一款名為Star Seven(*7)的機器,它有點像現(xiàn)在人們熟悉的PDA(個人數(shù)字助理),不過它有著比PDA更強大的功能Java語言的前身Oak就是在那個時候誕生的,其主要的目的當(dāng)然是用來撰寫在 Star 7上的應(yīng)用程序。第8頁JDK 1.x1996年1月,Sun公司發(fā)布了Java的第一個開發(fā)工具包(JDK 1.0),這是Java發(fā)展歷程中的重要里程碑,標(biāo)志著Java成為一種獨立的開發(fā)工具。9月,約8.3萬個網(wǎng)頁應(yīng)用了Java技術(shù)來制作。10月,Sun公司發(fā)布了Java平臺的第一個即時(JIT)編譯器。在JDK 1.0發(fā)布不久,Java的設(shè)計人員就著

5、手創(chuàng)建下一個版本。1997年2月,JDK 1.1面世,新版本添加了許多新的庫元素,改進(jìn)了事件處理方式,并且重新配置了JDK 1.0中庫的許多特性,也去掉了最初版本中的一些特性。第9頁Java 21998年12月8日,第二代Java平臺的企業(yè)版J2EE發(fā)布。1999年6月,Sun公司發(fā)布了第二代Java平臺(簡稱為Java 2)的3個版本:J2ME(Java 2 Micro Edition,Java2平臺的微型版),應(yīng)用于移動、無線及有限資源的環(huán)境;J2SE(Java 2 Standard Edition,Java 2平臺的標(biāo)準(zhǔn)版),應(yīng)用于桌面環(huán)境;J2EE(Java 2 Enterprise

6、Edition,Java 2平臺的企業(yè)版),應(yīng)用于基于Java的應(yīng)用服務(wù)器。Java 2平臺的發(fā)布,是Java發(fā)展過程中最重要的一個里程碑,標(biāo)志著Java的應(yīng)用開始普及。第10頁J2SE 5J2SE 1.4之后的下一個發(fā)布版本是J2SE 5(內(nèi)部版本號1.5.0),該版本也是革命性的。于2004年9月30日發(fā)布,成為Java語言發(fā)展史上的又一里程碑。它與先前的大多數(shù)Java升級不同,因為那些升級提供了重要、但是有規(guī)律的改進(jìn),而J2SE 5從根本上擴展了Java語言的應(yīng)用領(lǐng)域、功能和范圍。第11頁Java SE62005年6月,在Java One大會上,Sun公司發(fā)布了Java SE 6,內(nèi)部的

7、開發(fā)版本號是1.6。此時,Java的各種版本已經(jīng)更名,已取消其中的數(shù)字2,如J2EE更名為Java EE,J2SE更名為Java SE,J2ME更名為Java ME。Java開發(fā)工具包叫做JDK 6。 Java SE 6建立在J2SE 5的基礎(chǔ)之上,進(jìn)行了一些增量式的改進(jìn)。Java SE 6沒有為Java語言添加真正重要的新特性,但它確實增強了API庫,添加了幾個新的包,并且對運行時進(jìn)行了改進(jìn)。隨著幾次升級,在漫長的生命周期中,Java SE 6還進(jìn)行了幾次更新??傊?,Java SE 6進(jìn)一步鞏固了J2SE 5的發(fā)展成果。第12頁Java SE72009年,Oracle公司宣布收購Sun公司。

8、2010年,Java編程語言的共同創(chuàng)始人之一詹姆斯高斯林從Oracle公司辭職。2011年,Oracle公司舉行了全球性的活動,以慶祝Java 7的推出,隨后Java SE 7正式發(fā)布,內(nèi)部版本號為1.7。Java SE 7是自從Sun Microsystems被Oracle公司收購之后第一個重要的發(fā)布版本。Java SE 7包含許多新特性第13頁Java SE82014年3月,Oracle發(fā)布Java SE 8。這也是最新的Java發(fā)布版本,對應(yīng)的Java開發(fā)工具包稱為JDK 8,內(nèi)部版本號為1.8。JDK 8是Java語言的重要升級,包含了一個影響深遠(yuǎn)的新語言特性:lambda表達(dá)式。la

9、mbda表達(dá)式為Java添加了函數(shù)式編程特性。第14頁Java未來2017年9月發(fā)布的JDK9和2018年3月發(fā)布的JDK10都不是長期服務(wù)版本,即將發(fā)布的Java SE 11 LTS 是 Java SE 平臺的首個長期支持特性版本。Java 11將會獲得Oracle提供的長期支持服務(wù),直至2026年9月。目前企業(yè)中應(yīng)用較多的是Java 5Java 8,本書的內(nèi)容將使用較新的版本Java SE 8,并體現(xiàn)Java SE 8的新特性。第15頁1.1.2 Java的特點Java之所以流行,和它的優(yōu)秀特性是分不開的。促使Java誕生的基本動力是可移植性和安全性,但是在Java語言最終成型的過程中,其

10、他因素也扮演了重要角色。第16頁簡單性Java的設(shè)計目標(biāo)之一是讓專業(yè)程序員能夠高效地學(xué)習(xí)和使用。Java繼承了C/C+的語法以及許多面向?qū)ο筇匦裕O(shè)計者們把C+語言中一些復(fù)雜容易出錯的特征去掉了,例如,Java不支持go to語句,代之以提供break和continue語句以及異常處理:Java還剔除了C+的操作符重載和多繼承特征;另外,因為Java沒有結(jié)構(gòu),數(shù)組和字符串都是對象,所以不需要指針;Java能夠自動處理對象的引用和間接引用,實現(xiàn)自動的無用單元收集,使用戶不必為存儲管理問題煩惱,能更多的時間和精力花在研發(fā)上。對于一位有經(jīng)驗的C+程序員,只需要非常少的努力就可以使用Java進(jìn)行程序開

11、發(fā)。對于初學(xué)者,只要理解了面向?qū)ο缶幊痰幕靖拍?,學(xué)習(xí)Java也會變得非常容易。第17頁平臺獨立性平臺獨立性是Java語言的最大優(yōu)勢,它意味著Java可以在支持Java的任何平臺上“獨立于所有其他軟硬件”而運行。例如,不管操作系統(tǒng)是Windows、Linux、Unix還是Macintosh,也不管機器是大型機,小型機還是微機,甚至是PDA或者手機、智能家電,Java程序都能運行,當(dāng)然在這些平臺上都應(yīng)裝有相應(yīng)版本的JVM(Java虛擬機),即平臺必須支持Java。第18頁安全性Java語言主要用于網(wǎng)絡(luò)應(yīng)用程序的開發(fā),如果沒有安全保證,那么用戶運行從網(wǎng)絡(luò)上下載的Java語言應(yīng)用程序是十分危險的。J

12、ava語言通過一系列的安全措施,在很大程度上避免了病毒程序的產(chǎn)生和網(wǎng)絡(luò)程序?qū)Ρ镜叵到y(tǒng)的破壞,具體體現(xiàn)如下。(1) 去除指針操作。指針是C/C+中的一個高級話題,如果熟練掌握指針可以給程序的開發(fā)帶來很大的方便,但是,如果使用不當(dāng),就有可能帶來系統(tǒng)資源泄漏。Java語言放棄了指針操作,簡化了編程,更是避免了對內(nèi)存的非法訪問。(2) Java是一種強類型的程序設(shè)計語言,要求顯式的聲明,保證編譯器可以提前發(fā)現(xiàn)程序錯誤,提高程序的可靠性。(3) 垃圾自動回收機制,讓程序員從繁瑣的內(nèi)存管理工作中解脫出來,專注于程序開發(fā)。避免出現(xiàn)“內(nèi)存泄露”現(xiàn)象。(4) Java語言提供了異常處理機制。(5) Java程序

13、在運行時,解釋器會對其進(jìn)行數(shù)組和字符串等的越界檢查,確保程序的安全。第19頁多線程多線程的目的就是降低總程序的執(zhí)行粒度,讓子程序們“同時”并發(fā)執(zhí)行,這里的“同時”加引號是為了強調(diào)只是CPU執(zhí)行各個子程序速度很快,從宏觀上看,像是同時在執(zhí)行。如果要實現(xiàn)真正的同時,就要借助于多處理器,如現(xiàn)在已經(jīng)流行起來的雙核CPU。另外,隨著程序規(guī)模的擴大以及對效率的重視,在線程之后又出現(xiàn)了纖程技術(shù)。纖程對線程又做了進(jìn)一步細(xì)分,成為CPU調(diào)度的基本單位,使得人們設(shè)計并發(fā)程序時更加靈活。Java是支持多線程程序開發(fā)的,它提供了Thread類,由它負(fù)責(zé)線程的啟動運行、終止線程,并可測試線程狀態(tài)。第20頁分布式分布式包

14、括數(shù)據(jù)分布和操作分布。數(shù)據(jù)分布是指數(shù)據(jù)可以分散在網(wǎng)絡(luò)的不同主機上,操作分布是指把一個計算分散在不同主機上進(jìn)行。Java是針對Internet的分布式環(huán)境而設(shè)計的,因為它能處理TCP/IP協(xié)議。實際上,使用URL訪問資源與訪問文件沒有多大區(qū)別。Java既支持各種層次的網(wǎng)絡(luò)連接,又以Socket類支持可靠的流(stream)網(wǎng)絡(luò)連接,所以用戶可以產(chǎn)生分布式的客戶機和服務(wù)器。Java還支持遠(yuǎn)程方法調(diào)用(Remote Method Invocation,RMI)。允許程序通過網(wǎng)絡(luò)調(diào)用方法。第21頁面向?qū)ο箅S著軟件業(yè)的發(fā)展,面向?qū)ο蟮某绦蛟O(shè)計方法已經(jīng)流行起來,出現(xiàn)了很多面向?qū)ο蟮某绦蛟O(shè)計語言,如Java

15、、C+、SmallTalk等?,F(xiàn)在用面向?qū)ο蟮木幊陶Z言進(jìn)行軟件開發(fā)已很普遍。簡單說,面向?qū)ο笾饕峭ㄟ^引入類,使得原本的面向過程程序設(shè)計有了質(zhì)的飛躍。類中不僅包含數(shù)據(jù)部分,而且還包含操作方法。這個囊括了數(shù)據(jù)和算法的類成為面向?qū)ο蟪绦蛟O(shè)計中最關(guān)鍵的要素。可以說,所有功能的實現(xiàn)都是圍繞類而展開的。同樣,面向?qū)ο蠹夹g(shù)的特征也是由類體現(xiàn)出來的。第22頁1.1.3 Java與其他編程語言間的關(guān)系程序開發(fā)語言可分為4代:機器語言、匯編語言、高級語言和面向?qū)ο蟪绦蛟O(shè)計語言。機器語言是機器最終執(zhí)行時所能識別的二進(jìn)制序列,任何其他語言編寫的程序最后都要轉(zhuǎn)換為相應(yīng)的機器語言才能運行。在電子計算機剛剛誕生的一小段時

16、間內(nèi),人們只能用0、1進(jìn)行編程,后來為了提高編程效率,引入了英文助記符,才出現(xiàn)了匯編語言。第23頁1.1.3 Java與其他編程語言間的關(guān)系匯編語言的出現(xiàn),大大提升了代碼的編寫速度,同時也使代碼可讀性和可維護(hù)性大大提高。匯編對于程序員的自身要求還是很高的,為了普及計算機使之作為社會各行各業(yè)的一種工具,需要開發(fā)語法簡單,編寫容易的高級編程語言,如Basic、Pascal、Fortran、C等。隨著軟件業(yè)的不斷發(fā)展,軟件規(guī)模變得越來越大,迫切需要更高效的編程語言。應(yīng)此需求,Java、C+、Visual Basic和Delphi等面向?qū)ο笳Z言應(yīng)運而生。第24頁主要內(nèi)容1.1 概述 1.2 第一個Ja

17、va程序1.3 Java開發(fā)工具1.4 Java程序開發(fā)步驟1.5 本章小結(jié)1.6 思考和練習(xí)第25頁1.2 第一個Java程序用Java編寫的程序有兩種類型:Java應(yīng)用程序(Java Application)和Java小應(yīng)用程序(Java Applet)。雖然二者的編程語法是完全一樣的,但后者需要客戶端瀏覽器的支持才能運行,并且在運行前必須先將其嵌入HTML文件的和標(biāo)簽對(HTML 5中不支持標(biāo)簽,可使用標(biāo)簽替代)中。當(dāng)用戶瀏覽該HTML頁面時,首先從服務(wù)器端下載Java Applet程序,進(jìn)而被客戶端已安裝的Java虛擬機解釋和運行。另外,Java Applet沒有main()方法,而A

18、pplication一定要有main()方法。第26頁1.2.1 Java應(yīng)用程序Java源程序是以文本格式存放的,文件擴展名必須為.java。第27頁1.2.1 Java應(yīng)用程序類名后面的大括號標(biāo)識著類定義的開始和結(jié)束,而main方法后面的大括號則標(biāo)識著方法體的開始和結(jié)束。Java程序中的大括號都是成對出現(xiàn)的,因而在寫左大括號時,最好也把右大括號寫上。通常,習(xí)慣將類名的首字母大寫,而變量則以小寫字母打頭,變量名由多個單詞組成時,第一個單詞后邊的每個單詞首字母大寫。程序中應(yīng)適當(dāng)使用空格符和空白行來對程序語句元素進(jìn)行間隔,增加程序的可讀性。在編輯程序時,最好一條語句占一行。另外,雖然Java允許

19、一條長的語句分開寫在幾行中,但前提是不能從標(biāo)識符或字符串的中間進(jìn)行分割。另外,文件名與public類名在拼寫和大小寫上必須保持一致。一個Java Application程序必須定義有且僅有一個main方法,它是程序的執(zhí)行入口。除了main方法外,程序還可以有其他方法,后面章節(jié)會介紹。第28頁1.2.2 Java AppletJava Applet就是用Java語言編寫的這樣的一些小應(yīng)用程序,它們可以直接嵌入到網(wǎng)頁中,并能夠產(chǎn)生特殊的效果。包含Applet的網(wǎng)頁被稱為Java-powered頁。當(dāng)用戶訪問這樣的網(wǎng)頁時, Applet被下載到用戶的計算機上執(zhí)行,但前提是用戶使用的是支持Java的網(wǎng)

20、絡(luò)瀏覽器。隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,出現(xiàn)了很多網(wǎng)頁特效和動畫技術(shù),而且這些技術(shù)不需要客戶端的瀏覽器支持Java,因此,使用Applet的網(wǎng)頁已經(jīng)不多了,本書不對Applet做過多的介紹,這里給出一個最簡單的示例。第29頁1.2.2 Java Appletimport java.applet.Applet;import java.awt.*;public class HelloWorldApplet extends Appletpublic void paint(Graphics g )g.drawString(Hello World!,10,50); /end class HelloWorld

21、AppletApplet 類沒有定義main()方法,本例中包含的一個方法是paint()方法,在paint()方法中,調(diào)用g的drawString()方法,在坐標(biāo)(10,50)處輸出字符串“Hello World!”,其中的坐標(biāo)是用像素點表示的,且以顯示窗口的左上角作為坐標(biāo)系的原點(0,0)。第30頁主要內(nèi)容1.1 概述 1.2 第一個Java程序1.3 Java開發(fā)工具1.4 Java程序開發(fā)步驟1.5 本章小結(jié)1.6 思考和練習(xí)第31頁1.3 Java開發(fā)工具編寫Java源程序的工具軟件有很多,只要是能編輯純文本的都可以,如Windows自帶的記事本(notepad)和寫字板(wordp

22、ad)程序、UltraEidt、EditPlus等。Java軟件開發(fā)人員一般用一些IDE(Integreted Development Environment,集成開發(fā)環(huán)境)來編寫程序,以提高效率和縮短開發(fā)周期。第32頁常用IDE1. Borland的JBuilder2. IBM的Eclipse3. Oracle的JDeveloper4. Macromedia公司的JRUN5. Sun公司的NetBeans與Sun Java Studio 56. BEA公司的WebLogic Workshop7. Apache開放源碼組織的Ant8. IntelliJ IDEA9. Android Studi

23、o第33頁主要內(nèi)容1.1 概述 1.2 第一個Java程序1.3 Java開發(fā)工具1.4 Java程序開發(fā)步驟1.5 本章小結(jié)1.6 思考和練習(xí)第34頁1.4 Java程序開發(fā)步驟要編譯和運行Java程序,首先要下載并安裝JDK。然后配置環(huán)境變量。JDK的安裝文件可以從Oracle網(wǎng)站/technetwork/java/javase/ downloads/index.html下載,找到JDK 8的下載鏈接,目前更新的補丁為8u191,JDK的安裝文件有多個不同操作系統(tǒng)的版本,每種操作系統(tǒng)又分64位和32位兩個不同的版本,這些我們選擇下載的是Windows操作系統(tǒng)中的32位版本,下載得到的文件為

24、jdk-8u191-windows-i586.exe第35頁1.4.1 安裝JDKjdk-8u191-windows-i586.exe是一個自解壓文件,雙擊即可解壓縮,并進(jìn)行安裝工作。安裝程序首先收集一些信息,用于安裝的選擇,然后才開始復(fù)制文件、設(shè)置Windows注冊表等。安裝過程中,只需按照提示一步一步操作即可。默認(rèn)的安裝目錄為“C:Program Files (x86)Javajdk1.8.0_191”(注意:該路徑后面配置環(huán)境變量時要用到),讀者也可根據(jù)自己需要更改安裝路徑第36頁1.4.1 安裝JDK(1) bin文件夾:bin文件夾中包含編譯器(javac.exe)、解釋器(java

25、.exe)、Applet 查看器(appletviewer.exe)等Java命令的可執(zhí)行文件。 (2) lib文件夾:lib文件夾存放了一系列Java類庫。(3) jre文件夾:jre文件夾存放Java運行時可能需要的一些可執(zhí)行文件和類庫。(4) include文件夾:include文件夾存放一些頭文件。第37頁1.4.2 環(huán)境變量配置(1) 在桌面上右擊“我的電腦”圖標(biāo),從彈出的快捷菜單中選擇“屬性”命令,打開“系統(tǒng)屬性”對話框。(2) 打開“系統(tǒng)屬性”對話框中的“高級”選項卡,單擊“環(huán)境變量”按鈕,打開“環(huán)境變量”對話框。該對話框分為兩部分,上半部分用于設(shè)置用戶環(huán)境變量,下半部分則用于設(shè)

26、置系統(tǒng)環(huán)境變量。它們的區(qū)別是:用戶變量只對本用戶有效,且設(shè)置后無須重新啟動計算機;系統(tǒng)變量對任何用戶均有效,但設(shè)置后需要重啟機器才能生效。一般情況下,配置為用戶變量即可。這里共需要配置兩個用戶變量:path和classpath。第38頁1.4.2 環(huán)境變量配置若原本沒有path用戶變量,就新建一個,并將變量值設(shè)置為“C:Program Files (x86)Javajdk1.8.0_191bin”如果已經(jīng)存在path用戶變量,則直接將JDK的bin目錄配置到環(huán)境變量path中。打開“編輯用戶變量”對話框,在“變量值”文本框中的最前面添加如下內(nèi)容:“C:Program Files (x86)Ja

27、vajdk1.8.0_191bin;”(注意在引號的內(nèi)容中,最后有一個分號,這個一定不能缺少)第39頁1.4.2 環(huán)境變量配置若原本沒有classpath用戶變量,則新建一個,設(shè)置其變量值為“C:Program Files (x86)Javajdk1.8.0_191lib”。此外,當(dāng)運行所編寫的Java程序時,一般還需要將相應(yīng)的工作目錄(即存放Java程序及編譯過的字節(jié)碼文件的目錄)也添加到classpath的變量值中,以便程序運行時能找到用戶所編寫的Java類。這一點一定要格外注意,因為很多人在初學(xué)Java時會忘記,導(dǎo)致程序運行失敗。第40頁 查看環(huán)境變量命令set第41頁1.4.3 編譯運

28、行假定程序HelloWorld.java存放在“D:workspace第1章”文件夾中,打開DOS命令行窗口,輸入“javac HelloWorld.java”命令對源程序進(jìn)行編譯操作,編譯出錯,編譯器找不到文件,解決辦法是進(jìn)入HelloWorld所在的文件夾,然后再運行“javac Hello.java”命令,此時,源程序編譯成功,系統(tǒng)自動在工作目錄下生成一個字節(jié)碼文件HelloWorld.class,這是一個二進(jìn)制格式的文件,供解釋運行時使用。第42頁1.4.3 編譯運行編譯成功后就可以執(zhí)行該程序了,運行Java程序的命令為“java HelloWorld”。這里要注意的是,java命令和

29、字節(jié)碼文件名(不含擴展名.class)之間要至少有一個空格間隔開。然后按回車鍵第43頁1.4.3 編譯運行有些初學(xué)者可能會得不到圖1-12所示的正確結(jié)果,而是出現(xiàn)錯誤信息,如圖1-13所示。這是怎么回事呢?試圖運行HelloWorld字節(jié)碼文件,卻失敗了。提示“找不到或無法加載主類 HelloWorld” (如果是英文版可能提示:Exception in thread main java.lang.NoClassDefFoundError: HelloWorld)。這是因為classpath不包含當(dāng)前路徑,解決上述問題的有效辦法是將當(dāng)前路徑(可以用英文句點“.”表示)添加到classpath環(huán)

30、境變量中(編輯classpath環(huán)境變量,在原“變量值”的最前面添加“.;”),這樣在執(zhí)行程序就沒有問題了。第44頁1.4.3 編譯運行初學(xué)者還可能會碰到這樣的情形,上次編譯運行成功的程序,后來再運行卻失敗了,而程序一點也沒動! 細(xì)心的讀者可能會發(fā)現(xiàn)這次執(zhí)行命令的路徑變成了“C:UsersAdministrator”,與原來應(yīng)用程序所在的目錄不一樣,原來的路徑保證可以找到本路徑下的字節(jié)碼文件,而現(xiàn)在路徑不一樣了,所以無法找到主類了。解決這一問題的有效辦法就是切換到應(yīng)用程序所在目錄在執(zhí)行,或者將應(yīng)用程序所在目錄添加到classpath環(huán)境變量中,這樣不管當(dāng)前路徑是什么都能找到相應(yīng)的class字節(jié)

31、碼文件,但是,不建議這樣做,因為通常我們會在工作目錄下面建多個文件夾分類存放不同的文件,如果要運行的文件較多且在不同的目錄時,需要添加到classpath中的目錄太多。第45頁編譯運行Java AppletApplet的編譯過程跟編譯Java應(yīng)用程序相同,也是使用javac命令生成字節(jié)碼文件。下面以前面的HelloWorldApplet.java為例介紹Java Applet的編譯和運行過程。打開命令行窗口,切換到應(yīng)用程序所在目錄,然后輸入“javac HelloWorldApplet.java”命令對源程序進(jìn)行編譯操作,編譯成功后生成字節(jié)碼文件HelloWorldApplet.class。A

32、pplet的運行與應(yīng)用程序不同,applet要運行在瀏覽器中,所以我們還需要創(chuàng)建一個HTML文件。然后可以直接用瀏覽器(IE或Chrome等)或者使用appletviewer來加載并顯示這個HTML文件。第46頁編譯運行Java Applet新建一個名為HelloApplet.html的HTML文件,輸入如下代碼:HelloWorld Applet第47頁編譯運行Java Applet可以直接雙擊HTML文件用瀏覽器打開該頁面,查看Applet運行效果,也可以在命令行使用appletviewer工具(appletviewer也是JDKbin目錄下的一個可執(zhí)行文件)來運行,命令格式如下:appl

33、etviewer HelloApplet.html 第48頁主要內(nèi)容1.1 概述 1.2 第一個Java程序1.3 Java開發(fā)工具1.4 Java程序開發(fā)步驟1.5 本章小結(jié)1.6 思考和練習(xí)第49頁1.5 本章小結(jié) 本章對Java做了初步的介紹,使讀者對Java的特點有所了解,并通過經(jīng)典的HelloWorld程序介紹了Java應(yīng)用程序和Java Applet開發(fā)、編譯和運行的基本步驟。首先介紹了Java的起源與發(fā)展歷程、Java的特點以及Java與其他編程語言的關(guān)系。接下來用Java語言分別創(chuàng)建了兩種類型的HelloWorld程序:Java應(yīng)用程序和Java Applet。然后對比較流行的

34、Java開發(fā)工具做了簡單介紹。最后講述了Java程序的開發(fā)步驟,包括下載和安裝JDK、配置環(huán)境變量、編寫Java源程序、編譯Java源程序和執(zhí)行字節(jié)碼文件等。第50頁主要內(nèi)容1.1 概述 1.2 第一個Java程序1.3 Java開發(fā)工具1.4 Java程序開發(fā)步驟1.5 本章小結(jié)1.6 思考和練習(xí)第51頁1.6 思考和練習(xí)1. 簡述Java的發(fā)展歷程。2. Java語言有哪些特點?3. 配置JDK環(huán)境變量時,需要配置哪兩個環(huán)境變量? 4. 簡述Java應(yīng)用程序的開發(fā)步驟。5. 上機練習(xí):編寫一個Java應(yīng)用程序,實現(xiàn)分行顯示字符串“Welcome to Java programming”中的

35、4個單詞。第52頁第2章 Java編程基礎(chǔ) 本章概述 本章的學(xué)習(xí)目標(biāo)主要內(nèi)容第53頁本章概述學(xué)習(xí)一門語言,總是從它的基本語法學(xué)起,本章將從Java程序的基本元素講起,詳細(xì)介紹Java的基本語法,包括標(biāo)志符與關(guān)鍵字、常量與變量、數(shù)據(jù)類型、Java運算符與表達(dá)式以及流程控制語句等。這些都是編程的基礎(chǔ),內(nèi)容不難,但要掌握好卻不易,尤其需要理解變量以及不同的數(shù)據(jù)類型的含義。第54頁本章的學(xué)習(xí)目標(biāo)掌握J(rèn)ava語言的基本語法理解數(shù)據(jù)類型及變量的含義掌握變量的聲明與使用掌握J(rèn)ava的運算符及其優(yōu)先級理解復(fù)合語句的概念第55頁主要內(nèi)容2.1 引 言2.2 基本數(shù)據(jù)類型2.3 程序語句2.4 本章小結(jié)2.5 思

36、考和練習(xí)第56頁2.1 引言 對于初學(xué)者而言,學(xué)習(xí)一門編程語言好比學(xué)習(xí)一門外語,首先要掌握它的語法,只有語法正確了,程序才能通過編譯系統(tǒng)的編譯并被執(zhí)行。第57頁2.1.1 符號Java程序中包含的基本符號元素有如下幾類:字母:AZ,az,美元符號$和下劃線(_)。數(shù)字:09。算術(shù)運算符:+,-,*,/,%。關(guān)系運算符:,=,=,!=,=。邏輯運算符:!,&和|。位運算符:,&,|,。賦值運算符:=。其他符號:(),等。第58頁標(biāo)識符本書中的標(biāo)識符特指用戶自定義的標(biāo)識符。在Java中,標(biāo)識符必須以字母、美元符號或者下劃線打頭,后接字母、數(shù)字、下劃線或美元符號串。另外,Java語言對標(biāo)識符的有效字

37、符個數(shù)不做限定。合法的標(biāo)識符如a、b、c、x、y、z、result、sum、value、a2、x3、_a、$b等。非法的標(biāo)識符如2a、3x、byte、class、&a、x-value、new、true、www等。為了提高程序的可讀性,以下特別列舉幾個較為流行的標(biāo)識符命名約定。(1) 一般標(biāo)識符定義應(yīng)盡可能達(dá)意,如value、result、number、getColor、getNum、setColor、setNum等。(2) final變量的標(biāo)識符一般全部用大寫字母,如final double PI=3.1415(3) 類名一般用大寫字母開頭,如Test、Demo。第59頁關(guān)鍵字關(guān)鍵字是Java

38、語言內(nèi)置的標(biāo)識符,有特定的作用。所有Java關(guān)鍵字都不能被用作用戶的標(biāo)識符,關(guān)鍵字用英文小寫字母表示。第60頁2.1.2 分隔符Java中的分隔符可分兩大類;空白符和可見分隔符。1. 空白符空白符在程序中主要起間隔作用,編譯系統(tǒng)利用它來區(qū)分程序的不同元素??瞻追崭?、制表符、回車和換行符等,程序各基本元素之間通常用一個或多個空白符進(jìn)行間隔。第61頁可見分隔符可見分隔符也是用來間隔程序基本元素的,Java中,主要有6種可見分隔符。(1) “/”:單行注釋符,該符號以后的本行內(nèi)容均為注釋,輔助程序員閱讀程序,注釋內(nèi)容將被編譯系統(tǒng)忽略。(2) “/*”和“*/”:“/*”和“*/”是配對使用的多

39、行注釋符,以“/*”開始,至“*/”結(jié)束的部分均為注釋內(nèi)容。(3) “;”:分號用來標(biāo)識一個程序語句的結(jié)束,在編寫完一條語句之后,一定要記得添加語句結(jié)束標(biāo)志分號,這點是多數(shù)初學(xué)者容易遺忘的。(4) “,”:逗號一般用來間隔同一類型的多個變量的聲明,或者間隔方法中的多個參數(shù)。(5) “:”:冒號可以用來說明語句標(biāo)號,或者用于switch語句中的case分句。(6) “”和“”:花括號也是成對出現(xiàn)的,“”標(biāo)識開始,“”標(biāo)識結(jié)束,可以用來定義類體、方法體、復(fù)合語句或者進(jìn)行數(shù)組的初始化等。第62頁2.1.3 常量在Java程序中使用的直接量稱為常量。它是用戶在程序中“寫死”的量,這個量在程序執(zhí)行過程中

40、都不會改變。布爾類型的取值范圍只有true或false兩個值,因而其常量值只能是true或false,而且true或false只能賦值給布爾類型的變量。不過,Java語言還規(guī)定布爾表達(dá)式的值為0可以代表false,而1(或其他非0值)則表示true。第63頁整數(shù)常量整數(shù)常量在程序中是經(jīng)常出現(xiàn)的,一般習(xí)慣上以十進(jìn)制表示,如10、100等,但同時也可以以其他進(jìn)制,如八進(jìn)制或十六進(jìn)制進(jìn)行表示。用八進(jìn)制表示時,需要在數(shù)字前加0示意,而十六進(jìn)制則需加0 x(或0X)標(biāo)識,如010(十進(jìn)制值8)、070(十進(jìn)制值56)、0 x10(十進(jìn)制值16)、0Xf0(十進(jìn)制值240)。程序中出現(xiàn)的整數(shù)值一般默認(rèn)分配

41、4個字節(jié)的空間進(jìn)行存儲,即其數(shù)據(jù)類型為int。但當(dāng)整數(shù)值超出int的取值范圍(詳見表2-2)時,系統(tǒng)則自動用8個字節(jié)空間來存儲,即其類型為long型。若要將數(shù)值不大的整數(shù)常量也用long類型來存儲,可以在數(shù)值后添加L (或小寫l)后綴,如22L。第64頁浮點數(shù)浮點數(shù)即實數(shù),它包含小數(shù)點,可以用兩種方式進(jìn)行表示:標(biāo)準(zhǔn)式和科學(xué)記數(shù)式。標(biāo)準(zhǔn)式是由整數(shù)部分、小數(shù)點和小數(shù)部分構(gòu)成,如1.5、2.2、80.5等都是標(biāo)準(zhǔn)式的浮點數(shù)??茖W(xué)記數(shù)法是由一個標(biāo)準(zhǔn)式跟上一個以10為底的冪構(gòu)成,兩者之間用E(或e)間隔開,如1.2e+6、5e-8和3E10等都是以科學(xué)記數(shù)法表示的浮點數(shù)。在程序中,一般浮點數(shù)的默認(rèn)數(shù)據(jù)類

42、型為double,即用8個字節(jié)空間來存放,當(dāng)然也可以用F(或f)后綴來限定其類型為float,如55.5F、22.2f等。第65頁字符常量字符常量是指用一對單引號括起來的字符,如A、a、1、和*等。所有的可見ASCII碼字符都可以用單引號括起來作為字符常量。此外,Java語言還規(guī)定了一些轉(zhuǎn)義字符,這些轉(zhuǎn)義字符以反斜杠開頭,將其后的字符轉(zhuǎn)變?yōu)榱硗獾暮x,如表2-1所示。需要注意的是,反斜杠后的數(shù)字表示Unicode字符集的字符,而不是ASCII碼字符集。第66頁字符串常量字符串常量早在本書第1章中就接觸過了:System.out.println(Hello World!);上述語句中,用雙引號括

43、起來的Hello World!就是一字符串常量需要注意的是,單個的字符加上雙引號,也是字符串常量,如:N (字符串常量)N (字符常量)第67頁2.1.4 變量在程序執(zhí)行過程中其值可以改變的數(shù)據(jù),稱為變量。每個變量都必須有唯一的名稱來標(biāo)識它,即變量名。變量名由程序設(shè)計者命名,但要注意必須是合法的標(biāo)識符。為了提高程序的可讀性,建議應(yīng)根據(jù)變量的實際意義進(jìn)行命名。一般地,一個變量只能屬于某一種數(shù)據(jù)類型,并應(yīng)在定義該變量時就給出聲明,數(shù)據(jù)類型確定了該變量的取值范圍,同時也確定了對該變量所能執(zhí)行的操作或運算。Java語言提供了8種基本的數(shù)據(jù)類型:byte、short、int、long、char、bool

44、ean、float和double。第68頁2.1.4 變量byte age; (存放某人的年齡)short number; (存放某大學(xué)的人數(shù))char gender; (存放某人的性別)double balance; (存放某賬戶的余額)boolean flag; (存放布爾值)變量的定義方式很簡單:在數(shù)據(jù)類型后加上變量名,并在結(jié)尾添加分號“;”,但要注意數(shù)據(jù)類型和變量名之間至少要間隔一個空格。如果要同時定義同一類型的多個變量,可以在變量名之間用逗號分隔,例如:byte my_age,his_age,her_age;變量一經(jīng)定義,系統(tǒng)將會為其分配一定長度的存儲空間,在程序中用到該變量時,就需

45、要在對應(yīng)的內(nèi)存中進(jìn)行讀數(shù)據(jù)或?qū)憯?shù)據(jù)操作,通常稱這種操作為對變量的訪問。第69頁final變量final變量的定義與普通變量類似,但其所起的作用卻是類似于前面講的常量。定義final變量的方式有兩種:定義的同時初始化和先定義后初始化。(1) 定義的同時初始化final double PI = 3.14;(2) 先定義后初始化final double PI ;PI = 3.14;在程序設(shè)計時,一般將程序中多次要用到的常量值定義為final變量,這樣在程序中就可以通過final變量名來引用該常量值,以減少程序的出錯概率,將來如果常量值發(fā)生變化只需修改一處即可。雖然final變量名也可以用小寫字母,但

46、為了便于識別,通常使用大寫字母命名final變量。第70頁主要內(nèi)容2.1 引 言2.2 基本數(shù)據(jù)類型2.3 程序語句2.4 本章小結(jié)2.5 思考和練習(xí)第71頁2.2 基本數(shù)據(jù)類型Java提供了8種基本數(shù)據(jù)類型,它們在內(nèi)存中所占據(jù)的存儲空間如表2-2 所示。這8種基本數(shù)據(jù)類型可以分為以下4組。(1) 布爾型:boolean。(2) 整型:byte、short、int和long。(3) 浮點型(實型):float和double。(4) 字符型:char。第72頁2.2.1 布爾型布爾類型用關(guān)鍵字boolean來標(biāo)識,其取值只有兩種:true(邏輯真)和false(邏輯假)。它是最簡單的數(shù)據(jù)類型。布

47、爾類型的數(shù)據(jù)可以參加邏輯運算,并構(gòu)成邏輯表達(dá)式,其結(jié)果也是布爾值,常用來作為分支、循環(huán)結(jié)構(gòu)中的條件表達(dá)式。boolean flag1 = true;boolean flag2 = 35;boolean flag3 = 1;第73頁2.2.2 整型 用關(guān)鍵字byte、short、int和long聲明的數(shù)據(jù)類型都是整數(shù)類型,簡稱整型。整型的值可以是正整數(shù)、負(fù)整數(shù)或者零。Java不支持無符號的、只是正值的整數(shù)。例如,222、-211、0、2000、-2000等都是合法的整型值,而222.2、2a2等是非法的,222.2有小數(shù)點,不是整型(后面會知道它是浮點型),2a2含有非數(shù)字字符,也不可能是整型值

48、。第74頁bytebyte類型是整型中最小的,它只占據(jù)1個字節(jié)的存儲空間,由于采用補碼方式,其取值范圍為-128127,適合用來存儲如下幾類的數(shù)據(jù):人的年齡、定期存款的存儲年限、圖書館借書冊數(shù)、樓層數(shù)等,這類數(shù)據(jù)一般取值都在該范圍之內(nèi)。若用byte變量來存放較大的數(shù),就會產(chǎn)生溢出錯誤,如:byte rs = 10000;/定義rs變量存放清華大學(xué)的學(xué)生人數(shù)第75頁shortshort類型可以存放的數(shù)值范圍為:-32768 +32767,因而如下語句是正確的。short rs = 10000;/正確一個short類型的整型變量占據(jù)的存儲空間為2個字節(jié),占據(jù)的空間大了,其表示能力(取值范圍)自然就

49、大。同樣的,假如變量rs要用來存放當(dāng)前全國高校的在讀大學(xué)生數(shù)量,則short類型又不夠了,而需要用更大的,如int類型。第76頁intint類型占據(jù)4個字節(jié),可以存儲大概在-21億21億范圍之間的任意整數(shù)。該類型在程序設(shè)計中是較常用的數(shù)據(jù)類型之一,且程序中整型常量的默認(rèn)數(shù)據(jù)類型就是int,因為一般情況,int就夠用了,但是現(xiàn)實生活中,還是有不少情況需要用到更大的數(shù),如世界人口、某銀行的存款額、世界巨富的個人資產(chǎn)、某股票的市值等,所以Java還提供了更大的整型long類型。第77頁longlong類型占據(jù)8個字節(jié),能表示的數(shù)值范圍為-9.21018 +9.21018。一般如不是應(yīng)用需要,應(yīng)盡量少

50、用,可以減少存儲空間的支出。當(dāng)然,long也不是無限的,在一些特殊領(lǐng)域,如航空航天,它也會不夠用。這時可以通過定義多個整型變量來組合表示這樣的數(shù)據(jù),即對數(shù)據(jù)進(jìn)行分段表示。不過,在真正的實踐中,這些領(lǐng)域的計算任務(wù)一般會由支持更大數(shù)據(jù)類型的計算機系統(tǒng)來完成,如大型機、巨型機。第78頁2.2.3 浮點型浮點型有兩種,分別用關(guān)鍵字float和double來標(biāo)識。其中,double的精度較高,表示范圍也更廣在某些處理器上,單精度運算速度更快,并且占用的空間是雙精度的一半,但是當(dāng)數(shù)值非常大或非常小時會變得不精確。在針對高速數(shù)學(xué)運算進(jìn)行了優(yōu)化的某些現(xiàn)代處理器上,實際上雙精度數(shù)值的運算速度更快。大部分?jǐn)?shù)學(xué)函數(shù)

51、,如sin()、cos()和sqrt(),都返回雙精度值。如果需要在很多次迭代運算中保持精度,或是操作非常大的數(shù)值,則需要使用double類型。第79頁floatpublic class Exam2_3 public static void main(String args) float pi = 3.1415f; float r = 6.5f; float v = 2*pi*r; System.out.println(該圓周長為:+v); 該圓周長為:40.8395第80頁doubledouble為雙精度浮點型,程序中出現(xiàn)的浮點數(shù)在默認(rèn)情況下即為double類型public class Ex

52、am2_4 public static void main(String args) double pi = 3 double r =6.5; double v = 2*pi*r; System.out.println(該圓周長為:+v); 該圓周長為:40.84070449654第81頁2.2.4 字符型Java語言用Unicode字符集來定義字符型這量,因此一個字符需要兩個字節(jié)的存儲空間,這點與C/C+不同。前面介紹過字符常量,下面請看字符型變量的定義。char ch; /定義字符型變量chch = 1; /給ch賦初值為1字符型變量在程序中可用作代號,例如ch為

53、1可代表成功,為0則代表失??;為F表示女性,為M表示男性等。第82頁2.2.5 數(shù)據(jù)類型轉(zhuǎn)換不同數(shù)據(jù)類型的變量之間最好不要互相賦值,但在特定的情況下,存在變量類型轉(zhuǎn)換的需要,如將一個int類型的值賦給一個long類型的變量,或?qū)⒁粋€double類型的值賦給一個float類型的變量。前者的轉(zhuǎn)換不會破壞變量的原有值,這種轉(zhuǎn)換一般系統(tǒng)會自動進(jìn)行,而后者的轉(zhuǎn)換很可能會破壞變量的原有值,這種轉(zhuǎn)換需要程序員在程序中明確指出,即進(jìn)行強制類型轉(zhuǎn)換。第83頁自動類型轉(zhuǎn)換數(shù)值類型(包括整型和浮點型)是相互兼容的,只要目標(biāo)類型范圍大于源類型就會發(fā)生自動類型轉(zhuǎn)換,如byte到short或int、short到int、f

54、loat到double等,系統(tǒng)都能自動進(jìn)行轉(zhuǎn)換。然而,不存在從數(shù)值類型到char或boolean類型的自動轉(zhuǎn)換。char和boolean之間也不存在自動轉(zhuǎn)換。第84頁自動類型轉(zhuǎn)換當(dāng)將字面整數(shù)常量保存到byte、short、long或char類型的變量中時,Java也會執(zhí)行自動類型轉(zhuǎn)換。需要特別說明的是,在Java中,字面整數(shù)常量的默認(rèn)類型為int,例如下面聲明一個long型變量并將其初始化為一個很大的整數(shù):long g = 9223372036854775807;解決的方法是在數(shù)值后面加上L,指明這個字面常量是long型數(shù)據(jù): long value = 9223372036854775807L

55、;第85頁強制類型轉(zhuǎn)換而對于變窄轉(zhuǎn)換,如long到short、double到float,不兼容轉(zhuǎn)換;如float到short、char到short等,則需要進(jìn)行強制轉(zhuǎn)換。強制類型轉(zhuǎn)換是一種顯式類型轉(zhuǎn)換,它的一般形式如下:target-type varName=(target-type) value第86頁表達(dá)式中的自動類型提升byte a = 40;byte b = 50;byte c = 100;int d = a * b / c;在計算a*b的結(jié)果時,很容易超出byte操作數(shù)的范圍。為了解決這類問題,當(dāng)對表達(dá)式求值時,Java自動將每個byte、short或char操作數(shù)提升為int類型。

56、因此,盡管a和b都被指定為byte類型,但是在計算a*b時,兩者都被提升為int類型,結(jié)果也是int類型,所以中間表達(dá)式(50*40)的結(jié)果2000(超出byte的范圍)是合法的。這就是表達(dá)式中的自動類型提升。第87頁表達(dá)式中的自動類型提升盡管自動類型提升很有用,但是有時也會導(dǎo)致難以理解的編譯時錯誤。例如,下面的代碼看起來是正確的,但是卻會產(chǎn)生編譯錯誤:byte b = 50;b = b - 2; 上面的代碼試圖將50-2,一個完全有效的byte值保存到一個byte變量中。但是,編譯器會提示“Type mismatch: cannot convert from int to byte”(不兼容

57、的類型: 從int轉(zhuǎn)換到byte可能會有損失)。這是因為,當(dāng)計算表達(dá)式的值時,操作數(shù)被自動提升為int類型,所以結(jié)果也被提升為int類型。因此,應(yīng)當(dāng)使用顯式的強制類型轉(zhuǎn)換,byte b = 50;b = (byte)(b - 2);第88頁表達(dá)式中的自動類型提升(1) 所有byte、short和char類型的值都被提升為int類型。(2) 如果有一個操作數(shù)是long類型,就將整個表達(dá)式提升為long類型。(3) 如果有一個操作數(shù)是float類型,就將整個表達(dá)式提升為float類型。(4) 如果有一個操作數(shù)為double類型,結(jié)果將為double類型。第89頁主要內(nèi)容2.1 引 言2.2 基本數(shù)

58、據(jù)類型2.3 程序語句2.4 本章小結(jié)2.5 思考和練習(xí)第90頁2.3 程序語句到目前為止,前面出現(xiàn)過的程序語句有:輸出語句System.out.println()以及變量聲明語句。每一條程序語句的末尾都必須加上分號結(jié)束標(biāo)志。本節(jié)介紹一些其他常用程序語句。第91頁2.3.1 賦值語句variable = expression;這里的“=”不是數(shù)學(xué)中的等號,而是賦值運算符,其功能是將右邊表達(dá)式的結(jié)果賦值(即傳遞或存入)給左邊的變量,例如:int i, j;char c;i = 100;c =a;j = i +100;i = j * 10;第92頁2.3.1 賦值語句特別地,對于形如“i=i+1;

59、”這樣的賦值語句,可以將其簡寫為“i+;”或者“+i;”,并稱之為自增語句,同樣還有自減語句“i-;”或者“-i;”,它們等價于“i=i-1;”語句?!?”和“-”叫做自增和自減運算符,它們寫在變量的前面與后面有時是有區(qū)別的第93頁2.3.1 賦值語句public class Exam2_6 public static void main(String args) int i, j , k = 1; i = k+; j = +k; System.out.println(i=+i); System.out.println(j=+j); i = 1j = 3第94頁2.3.1 賦值語句當(dāng)自增符號“

60、+”寫在變量后面時,先訪問后自增,即“i = k+;”語句等價于“i=k;”和“k=k+1;”兩條語句。而自增符號“+”寫在變量前面時,則先自增后訪問,即“j = +k;”語句相當(dāng)于“k=k+1;”和“j=k;”兩條語句,因此得到上述的運行結(jié)果。這點對于自減語句也是一樣的。第95頁復(fù)合賦值語句+= /加后賦值-= /減后賦值*= /乘后賦值/= /除后賦值%= /取模后賦值“k %=i+j;”語句等價于“k=k%(i+j);”語句,初學(xué)者常犯的錯誤是,將其等價于沒有小括號的“k=k%i+j;”語句,而二者結(jié)果是截然不同的。第96頁2.3.2 條件表達(dá)式條件表達(dá)式的一般形式如下:Exp1?Exp

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論