教學(xué)課件:《JAVA語(yǔ)言程序設(shè)計(jì)》_第1頁(yè)
教學(xué)課件:《JAVA語(yǔ)言程序設(shè)計(jì)》_第2頁(yè)
教學(xué)課件:《JAVA語(yǔ)言程序設(shè)計(jì)》_第3頁(yè)
教學(xué)課件:《JAVA語(yǔ)言程序設(shè)計(jì)》_第4頁(yè)
教學(xué)課件:《JAVA語(yǔ)言程序設(shè)計(jì)》_第5頁(yè)
已閱讀5頁(yè),還剩374頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Java基本語(yǔ)法第1章學(xué)習(xí)目標(biāo):了解Java語(yǔ)言產(chǎn)生的歷史和工作原理,以及Java語(yǔ)言的發(fā)展Java語(yǔ)法機(jī)制概述,掌握J(rèn)ava程序的結(jié)構(gòu)、編程規(guī)范掌握J(rèn)ava的運(yùn)行系統(tǒng)基本原理與Java虛擬機(jī)(JVM)的作用了解Java程序開(kāi)發(fā)的工具,并掌握安裝Java開(kāi)發(fā)環(huán)境的方法第1章 Java基本語(yǔ)法本章主要介紹了Java語(yǔ)言的發(fā)展歷史、主要特點(diǎn)、Java平臺(tái)家族,以及Java程序開(kāi)發(fā)基礎(chǔ)環(huán)境(即JDK和集成開(kāi)發(fā)環(huán)境)。通過(guò)本章學(xué)習(xí),讀者將對(duì)Java語(yǔ)言的基本原理,語(yǔ)法結(jié)構(gòu)與編程方法有一定的了解,能夠簡(jiǎn)單地編輯、調(diào)試和運(yùn)行Java程序代碼。1.1 Java的起源與發(fā)展一、Java的起源 二、Java的發(fā)

2、展一、Java的起源 1991年,美國(guó)Sun Microsystems公司的某個(gè)研究小組為了能夠在消費(fèi)電子產(chǎn)品上開(kāi)發(fā)應(yīng)用程序,積極尋找合適的編程語(yǔ)言。消費(fèi)電子產(chǎn)品種類(lèi)繁多,包括PDA、機(jī)頂盒、手機(jī)等,即使是同一類(lèi)消費(fèi)電子產(chǎn)品所采用的處理芯片和操作系統(tǒng)也不相同,存在著跨平臺(tái)的問(wèn)題。當(dāng)時(shí)最流行的編程語(yǔ)言是C和C+語(yǔ)言,Sun公司的研究人員就考慮是否可以采用C+語(yǔ)言來(lái)編寫(xiě)消費(fèi)電子產(chǎn)品的應(yīng)用程序,但是研究表明,對(duì)于消費(fèi)電子產(chǎn)品而言,C+語(yǔ)言過(guò)于復(fù)雜和龐大,并不適用,安全性也并不令人滿意。于是,Bill Joy先生領(lǐng)導(dǎo)的研究小組就著手設(shè)計(jì)和開(kāi)發(fā)出一種語(yǔ)言,稱之為Oak。該語(yǔ)言采用了許多C語(yǔ)言的語(yǔ)法,提高

3、了安全性,并且是面向?qū)ο蟮恼Z(yǔ)言,但是Oak語(yǔ)言在商業(yè)上并未獲得成功。時(shí)間轉(zhuǎn)到了1995年,互聯(lián)網(wǎng)在世界上蓬勃發(fā)展,Sun公司發(fā)現(xiàn)Oak語(yǔ)言所具有的跨平臺(tái)、面向?qū)ο蟆踩愿叩忍攸c(diǎn)非常符合互聯(lián)網(wǎng)的需要,于是改進(jìn)了該語(yǔ)言的設(shè)計(jì),要達(dá)到如下幾個(gè)目標(biāo): (1) 創(chuàng)建一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,而不是面向過(guò)程的語(yǔ)言; (2) 提供一個(gè)解釋執(zhí)行的程序運(yùn)行環(huán)境,是程序代碼獨(dú)立于平臺(tái); (3) 吸收C和C+的優(yōu)點(diǎn),使程序員容易掌握; (4) 去掉C和C+中影響程序健壯性的部分,使程序更安全,例如指針、內(nèi)存申請(qǐng)和釋放; (5) 實(shí)現(xiàn)多線程,使得程序能夠同時(shí)執(zhí)行多個(gè)任務(wù); (6) 提供動(dòng)態(tài)下載程序代碼的機(jī)制; (

4、7) 提供代碼校驗(yàn)機(jī)制以保證安全性。 最終,Sun公司給該語(yǔ)言取名為Java語(yǔ)言,造就了一代成功的編程語(yǔ)言。 二、Java的發(fā)展 1995年,美國(guó)Sun Microsystems公司正式向IT業(yè)界推出了Java語(yǔ)言,該語(yǔ)言具有安全、跨平臺(tái)、面向?qū)ο?、?jiǎn)單、適用于網(wǎng)絡(luò)等顯著特點(diǎn),當(dāng)時(shí)以Web為主要形式的互聯(lián)網(wǎng)正在迅猛發(fā)展,Java語(yǔ)言的出現(xiàn)迅速引起所有程序員和軟件公司的極大關(guān)注,程序員們紛紛嘗試用Java語(yǔ)言編寫(xiě)網(wǎng)絡(luò)應(yīng)用程序,并利用網(wǎng)絡(luò)把程序發(fā)布到世界各地進(jìn)行運(yùn)行,包括IBM、Oracle、微軟、Netscape、Apple、SGI等大公司紛紛與Sun Microsystems公司簽訂合同,授權(quán)

5、使用Java平臺(tái)技術(shù)。微軟公司總裁比爾蓋茨先生在經(jīng)過(guò)研究后認(rèn)為:“Java語(yǔ)言是長(zhǎng)時(shí)間以來(lái)最卓越的程序設(shè)計(jì)語(yǔ)言”。目前,Java語(yǔ)言已經(jīng)成為最流行的網(wǎng)絡(luò)編程語(yǔ)言,許多大學(xué)紛紛開(kāi)設(shè)Java課程,Java正逐步成為世界上程序員最多的編程語(yǔ)言。 在經(jīng)歷了以大型機(jī)為代表的集中計(jì)算模式和以PC為代表的分散計(jì)算模式之后,互聯(lián)網(wǎng)的出現(xiàn)使得計(jì)算模式進(jìn)入了網(wǎng)絡(luò)計(jì)算時(shí)代。網(wǎng)絡(luò)計(jì)算模式的一個(gè)特點(diǎn)是計(jì)算機(jī)是異構(gòu)的,即計(jì)算機(jī)的類(lèi)型和操作系統(tǒng)是不一樣的,例如SUN工作站的硬件是SPARC體系,軟件是UNIX中的Solaris操作系統(tǒng),而PC的硬件是INTEL體系,操作系統(tǒng)是Windows或者是Linux,因此相應(yīng)的編程語(yǔ)

6、言基本上只是適用于單機(jī)系統(tǒng),例如COBOL、FORTRAN、C、C+等;網(wǎng)絡(luò)計(jì)算模式的另一個(gè)特點(diǎn)是代碼可以通過(guò)網(wǎng)絡(luò)在各種計(jì)算機(jī)上進(jìn)行遷移,這就迫切需要一種跨平臺(tái)的編程語(yǔ)言,使得用它編寫(xiě)的程序能夠在網(wǎng)絡(luò)中的各種計(jì)算機(jī)上能夠正常運(yùn)行,Java就是在這種需求下應(yīng)運(yùn)而生的。正是因?yàn)镴ava語(yǔ)言符合了互聯(lián)網(wǎng)時(shí)代的發(fā)展要求,才使它獲得了巨大的成功。1.2 什么是Java技術(shù) Java技術(shù),簡(jiǎn)而言之就是一種獨(dú)立于操作系統(tǒng)平臺(tái)的編程語(yǔ)言與開(kāi)發(fā)平臺(tái)。 1.3 Java的語(yǔ)法機(jī)制概述一、Java源程序的組成部分二、源文件的命名規(guī)則三、其他命名約定一、Java源程序的組成部分package語(yǔ)句; /該部分至多只有一

7、句,必須放在源程序的第一句import語(yǔ)句; /該部分可以有若干import語(yǔ)句或者沒(méi)有,必須放在所有的類(lèi)定義之前public classDefinition; /公共類(lèi)定義部分,至多只有一個(gè)公共類(lèi)的定義/Java語(yǔ)言規(guī)定該Java源程序的文件名必須與該公共類(lèi)名完全一致classDefinition; /類(lèi)定義部分,可以有0個(gè)或者多個(gè)類(lèi)定義interfaceDefinition; /接口定義部分,可以有0個(gè)或者多個(gè)接口定義二、源文件的命名規(guī)則 如果在源程序中包含有公共類(lèi)的定義,則該源文件名必須與該公共類(lèi)的名字完全一致,字母的大小寫(xiě)都必須一樣。這是Java語(yǔ)言的一個(gè)嚴(yán)格的規(guī)定,如果不遵守,在編譯

8、時(shí)就會(huì)出錯(cuò)。因此,在一個(gè)Java源程序中至多只能有一個(gè)公共類(lèi)的定義。如果源程序中不包含公共類(lèi)的定義,則該文件名可以任意取名。如果在一個(gè)源程序中有多個(gè)類(lèi)定義,則在編譯時(shí)將為每個(gè)類(lèi)生成一個(gè).class文件。三、其他命名約定 包名:包名是全小寫(xiě)的單詞,中間由“.”分隔開(kāi),例如:Java.awt.event; 類(lèi)名:首字母大寫(xiě),通常由多個(gè)單詞合成一個(gè)類(lèi)名,要求每個(gè)單詞的首字母也要大寫(xiě),如:HelloWorldApp; 接口名:命名規(guī)則與類(lèi)名相同,如:Collection; 方法名:往往由多個(gè)單詞合成,第一個(gè)單詞通常為動(dòng)詞,首字母小寫(xiě),中間的每個(gè)單詞的首字母都要大寫(xiě),如:balanceAccount、i

9、sButtonPressed; 變量名:全小寫(xiě),一般為名詞,如:length; 常量名:基本數(shù)據(jù)類(lèi)型的常量名為全大寫(xiě),如果是由多個(gè)單詞構(gòu)成,可以用下劃線隔開(kāi),例如:YEAR,WEEK_OF_MONTH;如果是對(duì)象類(lèi)型的常量,則是大小寫(xiě)混合,由大寫(xiě)字母把單詞隔開(kāi)。 Java的運(yùn)行系統(tǒng)是一個(gè)完整、有機(jī)的程序設(shè)計(jì)系統(tǒng),其功能主要由JVM、JDK以及開(kāi)發(fā)平臺(tái)組成。1.4 Java運(yùn)行系統(tǒng)與JVM一、Java虛擬機(jī)JVM二、JVM的組成三、垃圾自動(dòng)回收機(jī)制四、代碼安全性檢查機(jī)制一、Java虛擬機(jī)JVM JVM(Java Virtual Machine),Java虛擬機(jī),是軟件模擬的計(jì)算機(jī),可以在任何處理

10、器上(無(wú)論是在計(jì)算機(jī)中還是在其他電子設(shè)備中)安全并且兼容的執(zhí)行保存在.class文件中的字節(jié)碼。Java虛擬機(jī)的“機(jī)器碼”保存在.class文件中,也可以稱之為字節(jié)碼文件。Java程序的跨平臺(tái)主要是指字節(jié)碼文件可以在任何具有Java虛擬機(jī)的計(jì)算機(jī)或者電子設(shè)備上運(yùn)行,Java虛擬機(jī)中的Java解釋器負(fù)責(zé)將字節(jié)碼文件解釋成為特定的機(jī)器碼進(jìn)行運(yùn)行。Java源程序需要通過(guò)編譯器編譯成為.class文件,Java程序的編譯和執(zhí)行過(guò)程如圖1-1所示 圖1-1 Java程序的編譯和執(zhí)行過(guò)程二、JVM的組成 JVM為下列各項(xiàng)做出了定義:指令集(相當(dāng)于中央處理器CPU)注冊(cè)集類(lèi)文件格式棧垃圾收集堆存儲(chǔ)區(qū)三、垃圾

11、自動(dòng)回收機(jī)制 在程序的執(zhí)行過(guò)程中,部分內(nèi)存在使用過(guò)后就處于廢棄狀態(tài),如果不及時(shí)進(jìn)行無(wú)用內(nèi)存的回收,就會(huì)造成內(nèi)存泄漏,進(jìn)而導(dǎo)致系統(tǒng)崩潰。在C+語(yǔ)言中是由程序員進(jìn)行內(nèi)存回收的,程序員需要在編寫(xiě)程序的時(shí)候把不再使用的對(duì)象內(nèi)存釋放掉;但是這種人為的管理內(nèi)存釋放的方法卻往往由于程序員的疏忽而致使內(nèi)存無(wú)法回收,同時(shí)也增加了程序員的工作量。而在Java運(yùn)行環(huán)境中,始終存在著一個(gè)系統(tǒng)級(jí)的線程,專(zhuān)門(mén)跟蹤內(nèi)存的使用情況,定期檢測(cè)出不再使用的內(nèi)存,并進(jìn)行自動(dòng)回收,避免了內(nèi)存的泄露,也減輕了程序員的工作量。四、代碼安全性檢查機(jī)制 字節(jié)碼的執(zhí)行需要經(jīng)過(guò)三個(gè)步驟,首先由類(lèi)裝載器(class loader)負(fù)責(zé)把類(lèi)文件(.

12、class文件)加載到Java虛擬機(jī)中,在此過(guò)程需要檢驗(yàn)該類(lèi)文件是否符合類(lèi)文件規(guī)范;其次字節(jié)碼校驗(yàn)器(bytecode verifier)檢查該類(lèi)文件的代碼中是否存在著某些非法操作,例如Applet程序中寫(xiě)本機(jī)文件系統(tǒng)的操作;如果字節(jié)碼校驗(yàn)器檢驗(yàn)通過(guò),由Java解釋器負(fù)責(zé)把該類(lèi)文件解釋成為機(jī)器碼進(jìn)行執(zhí)行。Java虛擬機(jī)采用的是“沙箱”運(yùn)行模式,即把Java程序的代碼和數(shù)據(jù)都限制在一定內(nèi)存空間里執(zhí)行,不允許程序訪問(wèn)該內(nèi)存空間外的內(nèi)存,如果是Applet程序,還不允許訪問(wèn)客戶端機(jī)器的文件系統(tǒng)。1.5.1 JDK的安裝和配置1.5 Java程序開(kāi)發(fā)一、下載并安裝JDK二、認(rèn)識(shí)JDK三、配置JDK環(huán)境

13、變量一、下載并安裝JDK Java開(kāi)發(fā)工具包(Java Development Kits,簡(jiǎn)稱JDK)是Java應(yīng)用程序開(kāi)發(fā)的基礎(chǔ)工具包,開(kāi)發(fā)Java應(yīng)用程序首先必須下載JDK(JDK可以從Sun公司的官方網(wǎng)站上去下載)。下載完成后,雙擊圖標(biāo)進(jìn)行安裝,安裝過(guò)程中可以自定義安裝目錄等信息。例如我們可以選擇安裝目錄為D:jdk1.5。二、認(rèn)識(shí)JDK 在安裝完成后,可以發(fā)現(xiàn)在安裝目錄下具有如下文件夾,bin、include、jre、lib、sample、demo、src.zip等,其作用如表1-1所示:Binbin目錄提供了工具程序,包括Javac、Java、Javado等Jrejre目錄下的文件是

14、JDK附帶的JRE資源包Liblib目錄下提供了Java工具所需要的資源文件DemoDemo目錄下提供了Java編寫(xiě)的范例程序Src.zipSrc.zip目錄下提供了API類(lèi)的源代碼壓縮文件表1-1 JDK包的目錄及其作用三、配置JDK環(huán)境變量(1) 右擊“我的電腦”,選擇“屬性”命令,如圖1-2所示: 圖1-2 配置JDK系統(tǒng)路徑1(2) 切換到“高級(jí)”選項(xiàng)卡,單擊“環(huán)境變量”按鈕,如圖1-3所示:圖1-3 配置JDK系統(tǒng)路徑2 (3) 在“系統(tǒng)變量”中,設(shè)置3項(xiàng)屬性,Java_HOME、PATH、CLASSPATH(不區(qū)分大小寫(xiě)),若已存在則點(diǎn)擊“編輯”按鈕,不存在則點(diǎn)擊“新建”按鈕,如圖

15、1-4所示:圖1-4 配置JDK系統(tǒng)路徑3 (4) Java_HOME指明JDK安裝路徑,就是剛才安裝時(shí)所選擇的路徑D:jdk1.4,此路徑下包括lib,bin,jre等文件夾(此變量最好設(shè)置,因?yàn)橐院筮\(yùn)行tomcat,eclipse等都需要依靠此變量);Path使得系統(tǒng)可以在任何路徑下識(shí)別Java命令,設(shè)為: %Java_HOME%bin;%Java_HOME%jrebinCLASSPATH為Java加載類(lèi)(class或lib)路徑,只有類(lèi)在classpath中,Java命令才能識(shí)別,設(shè)為: .;%Java_HOME%lib;%Java_HOME%libtools.jar (要加“.”表示當(dāng)

16、前路徑) %Java_HOME%就是引用前面指定的Java_HOME。圖1-5 配置JDK系統(tǒng)路徑41.5.2 Eclipse簡(jiǎn)介一、Eclipse簡(jiǎn)介二、下載并安裝Eclipse一、Eclipse簡(jiǎn)介 在實(shí)際應(yīng)用中,任何開(kāi)發(fā)者都會(huì)選擇一個(gè)好的IDE(集成開(kāi)發(fā)環(huán)境)。常用的Java的IDE主要有:JCreater,JBuilder,Eclipse等。其中Eclipse是一款非常優(yōu)秀的開(kāi)源的IDE,基于Java的可擴(kuò)展平臺(tái)?,F(xiàn)在Eclipse憑借其靈活的擴(kuò)展能力,優(yōu)良的性能與插件技術(shù),受到了越來(lái)越多的開(kāi)發(fā)者的喜愛(ài)。 盡管Eclipse是使用Java語(yǔ)言開(kāi)發(fā)的,但它的用途并不限于Java語(yǔ)言。例如

17、,支持諸如C/C+、COBOL和Eiffel等編程語(yǔ)言的插件已經(jīng)可用,或預(yù)計(jì)會(huì)推出。Eclipse框架還可用來(lái)作為與軟件開(kāi)發(fā)無(wú)關(guān)的其他應(yīng)用程序類(lèi)型的基礎(chǔ),比如內(nèi)容管理系統(tǒng)。 基于Eclipse的應(yīng)用程序的突出例子是IBM的WebSphere Studio Workbench,它構(gòu)成了IBM Java開(kāi)發(fā)工具系列的基礎(chǔ)。例如,WebSphere Studio Application Developer添加了對(duì)JSP、Servlet、EJB、XML、Web服務(wù)和數(shù)據(jù)庫(kù)訪問(wèn)的支持。 二、下載并安裝Eclipse 目前最新的版本是Eclipse3.2.2,下載地址為: /downloads 點(diǎn)擊Ecl

18、ipse SDK3.22進(jìn)入下載頁(yè)面,下載面向Windows系列操作系統(tǒng)的最新版本Eclipse-SDK資源包。該資源包包括了適合于Windows平臺(tái)的Eclipse開(kāi)發(fā)環(huán)境、Java開(kāi)發(fā)環(huán)境、Plug-in開(kāi)發(fā)環(huán)境、所有源代碼和文檔。如需下載面向其他平臺(tái)Eclipse-SDK或插件可點(diǎn)擊other download for 3.2.2,其他版本的資源包可點(diǎn)擊All versions進(jìn)入下載頁(yè)面下載。下載完成后將其解壓。 Eclipse是一個(gè)綠色軟件,無(wú)需安裝即可執(zhí)行。如需中文版的集成開(kāi)發(fā)環(huán)境,可在Eclipse官方網(wǎng)站下載中文語(yǔ)言包NLpack1-eclipse-SDK-3.2.2- win

19、32.zip。解壓后,分別將其features、plugins目錄下的文件復(fù)制到Eclipse安裝目錄下的features、plugins目錄中,重新啟動(dòng)Eclipse即可。1.6 任務(wù)1.1 第一個(gè)Java程序一、任務(wù)引入Java程序分為Java Application(Java應(yīng)用程序)和Java Applet(Java小應(yīng)用程序)兩種。怎樣在開(kāi)發(fā)平臺(tái)上開(kāi)發(fā)、編譯以及運(yùn)行Java程序呢?下面讓我們開(kāi)始編寫(xiě)第一個(gè)Java應(yīng)用程序。二、任務(wù)目標(biāo)掌握編寫(xiě)、編譯、運(yùn)行Java程序的基本方法。三、任務(wù)內(nèi)容 編寫(xiě)一個(gè)Java應(yīng)用程序,它能夠利用來(lái)自Java標(biāo)準(zhǔn)庫(kù)的System對(duì)象的多種方法,打印出與當(dāng)

20、前運(yùn)行的系統(tǒng)有關(guān)的資料。其中“/”代表一種注釋方式,表示從這個(gè)符號(hào)開(kāi)始到這行結(jié)束的所有內(nèi)容都是注釋。在每個(gè)程序文件的開(kāi)頭,如果這個(gè)文件的代碼中用到了系統(tǒng)所提供的額外的類(lèi),就必須放置一個(gè)import語(yǔ)句。說(shuō)它是額外的是因?yàn)橐粋€(gè)特殊的類(lèi)庫(kù)“Java.lang.*”會(huì)自動(dòng)導(dǎo)入到每個(gè)Java文件。/*源程序文件名:Ex0101.Java*/import Java.util.Date;import Java.util.Properties;public class Ex0101 /創(chuàng)建公共類(lèi),名為Ex0101public static void main(String args) System.out.

21、println(new Date( );Properties p=System.getProperties( ); p.list(System.out); System.out.println( Memory Usage:); Runtime rt=Runtime.getRuntime( ); System.out.println(Total Memory= +rt.totalMemory()/打印總內(nèi)存大小+ Free Memory = +rt.freeMemory();/打印空閑內(nèi)存大小四、程序清單五、運(yùn)行結(jié)果圖1-6 Ex0101.Java的運(yùn)行結(jié)果 該任務(wù)的主要目的是使大家對(duì)Java的

22、編程結(jié)構(gòu)有一個(gè)總體認(rèn)識(shí),在Java中所有的東西都是對(duì)象,程序就是由一大堆對(duì)象組合而成的,同時(shí)每個(gè)對(duì)象又屬于某個(gè)類(lèi),所有的代碼都是在某一個(gè)類(lèi)中完成的。六、任務(wù)小結(jié) 通過(guò)本章的學(xué)習(xí),大家已經(jīng)可以閱讀一些簡(jiǎn)單的Java程序了。 Java語(yǔ)言的產(chǎn)生源于Sun Microsystems公司為消費(fèi)電子產(chǎn)品上應(yīng)用程序的開(kāi)發(fā)尋找一門(mén)編程語(yǔ)言的過(guò)程中,而隨著互聯(lián)網(wǎng)時(shí)代的到來(lái),原有的Oak軟件就順理成章的改造成Java語(yǔ)言推向了市場(chǎng),其跨平臺(tái)、面向?qū)ο?、安全等特點(diǎn)使其得到廣泛的應(yīng)用。 通過(guò)在不同的軟硬件上實(shí)現(xiàn)的Java虛擬機(jī),Java的字節(jié)碼文件就可以跨平臺(tái)的進(jìn)行運(yùn)行,無(wú)用內(nèi)存自動(dòng)回收器也給程序員帶來(lái)了極大的方便

23、。 Java是一門(mén)純粹的面向?qū)ο蟮木幊陶Z(yǔ)言。面向?qū)ο缶幊痰乃悸氛J(rèn)為程序都對(duì)象的組合,因此要克服面向過(guò)程編程的思路,直接按照對(duì)象和類(lèi)的思想去組織程序,面向?qū)ο笏哂械姆庋b性、繼承性、多態(tài)性等特點(diǎn)使其具有強(qiáng)大的生命力。 Sun公司為全世界Java開(kāi)發(fā)人員提供了一套免費(fèi)的軟件開(kāi)發(fā)包JDK,它不僅是Java的開(kāi)發(fā)平臺(tái),還是Java的運(yùn)行平臺(tái)。 Java源程序存放在.Java文件中,可以使用任意一種文本編輯器編輯。源程序經(jīng)過(guò)“Javac”命令編譯過(guò)后,就生成了相應(yīng)的.class文件。而用“Java”命令則可以運(yùn)行.class文件。 作為面向?qū)ο缶幊倘藛T來(lái)說(shuō),還必須掌握一些常用的IDE開(kāi)發(fā)環(huán)境的使用?,F(xiàn)階

24、段最受程序員喜愛(ài)的IDE環(huán)境是Eclipse。本章小結(jié)什么Java編程語(yǔ)言?對(duì)比J2SE、J2EE和J2ME的特點(diǎn)及使用方向(2) 作為Java程序員,可以選擇哪些IDE集成開(kāi)發(fā)環(huán)境來(lái)開(kāi)發(fā)程序?(3) 為什么說(shuō)Java語(yǔ)言是與平臺(tái)無(wú)關(guān)的語(yǔ)言?這種機(jī)制是由什么技術(shù)來(lái)實(shí)現(xiàn)的?(4) 下載并安裝JDK5,配置Java命令路徑和類(lèi)路徑。(5) 下載并安裝Eclipse,使用Eclipse編輯、調(diào)試并運(yùn)行任務(wù)1.1。思考與練習(xí)綜合訓(xùn)練 (1) 參照本章任務(wù),創(chuàng)建一個(gè)名為HelloWorldApp的Java Application,在屏幕上簡(jiǎn)單的顯示一句話“Hello World!”。 (2) 編寫(xiě)一個(gè)名

25、為PrintArguments的程序,打印從命令行中獲取的四個(gè)參數(shù)。例如在命令行中輸入“Java PrintArguments 10 20 30 40”時(shí),將打印出“10 20 30 40”。第2章Java基本語(yǔ)法學(xué)習(xí)目標(biāo) 掌握變量的聲明和初始化方法,理解變量的作用域 掌握算術(shù)運(yùn)算符、關(guān)系與條件運(yùn)算符、位運(yùn)算符、賦值運(yùn)算符和其他運(yùn)算符的使用方法,掌握運(yùn)算符的優(yōu)先級(jí),掌握類(lèi)型轉(zhuǎn)換的概念和方法 掌握分支控制、循環(huán)控制和中斷控制等流程控制語(yǔ)句的使用方法和技巧 掌握一維、多維數(shù)組的聲明、初始化和使用方法 掌握String類(lèi)和StringBuffer類(lèi)的使用方法,理解兩者之間的異同 語(yǔ)法是程序設(shè)計(jì)的基礎(chǔ)

26、,任何一種程序設(shè)計(jì)語(yǔ)言,都有一套自己的語(yǔ)法規(guī)則。本章將向大家介紹Java語(yǔ)言中所使用到的一些基本的語(yǔ)法和要求,包括變量、運(yùn)算符、表達(dá)式和流程控制語(yǔ)句以及Java中數(shù)組和字符串的定義和使用方法。 2.1 變 量2.1.1 任務(wù)2.1 聲明和使用變量2.1.2 變量的聲明和初始化2.1.3 變量的作用域2.1.1 任務(wù)2.1 聲明和使用變量一、任務(wù)引入 在一個(gè)程序中,我們將會(huì)使用到很多數(shù)據(jù),這些數(shù)據(jù)有的是事先給定的,比如圓周率;有的是事先我們不知道,在程序運(yùn)行中會(huì)不斷變化的,比如計(jì)算結(jié)果。那么,我們?cè)鯓邮褂煤筒倏v這些數(shù)據(jù)呢?請(qǐng)看下面的例子:二、任務(wù)目標(biāo)掌握聲明和初始化變量的方法,了解變量的類(lèi)型。三

27、、任務(wù)內(nèi)容由給定的半徑,計(jì)算圓的面積。四、程序清單/*源程序文件名:Ex0201.java*/import java.io.*;public class Ex0201public static void main(String args)double pai = 3.14;double fR, fArea;tryBufferedReader inObj = new BufferedReader(new InputStreamReader(System.in);System.out.println(請(qǐng)指定圓的半徑:);fR = Double.parseDouble(inObj.readLine(

28、);inObj.close();fArea = pai*fR*fR;System.out.println(圓的半徑是:t+fR);System.out.println(圓的面積是:t+fArea);catch(Exception e)System.out.println(e);五、運(yùn)行結(jié)果六、任務(wù)小結(jié) 我們來(lái)關(guān)注這些語(yǔ)句: double pai = 3.14; double fR, fArea; 這是對(duì)變量的聲明和初始化。所謂聲明,就是在使用一個(gè)變量前,為這個(gè)變量取一個(gè)名字,并規(guī)定它能夠存放的數(shù)據(jù)類(lèi)型,而初始化則是為變量設(shè)定一個(gè)初始值。在這里,我們聲明了三個(gè)變量:pai、fR和fArea,它們

29、都是double類(lèi)型,即雙精度實(shí)型量。其中變量pai已經(jīng)被初始化為3.14,fR和fArea還沒(méi)有初始化,此時(shí)它們沒(méi)有具體的值。2.1.2 變量的聲明和初始化 要使用一個(gè)變量,必須先聲明變量的名字、類(lèi)型等特征,并對(duì)其進(jìn)行初始化后才能使用它。簡(jiǎn)單變量的聲明和初始化格式如下: type name = value;一、數(shù)據(jù)類(lèi)型二、標(biāo)識(shí)符 標(biāo)識(shí)符用于對(duì)變量、類(lèi)和方法的命名。 標(biāo)識(shí)符是除關(guān)鍵字外的任意一串以合法字母、下劃線(_)或美元符號(hào)($)開(kāi)頭的,由合法字母、數(shù)字、下劃線(_)和美元符號(hào)($)組成的字符串。 abstractbooleanbreakbytecasecatchcharclasscons

30、tcontinuedefaultdodoubleelseextendsfinalfinallyfloatforgotoifimplementsimportinstanceofintinterfacelongnativenewpackageprivateprotectedpublicreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransienttryvirtualvoidvolatilewhile表2-1 Java的關(guān)鍵字2.1.3 變量的作用域 變量經(jīng)過(guò)聲明和初始化后就可以使用了,但并不是一個(gè)變量聲明和初始化后就可以隨便在哪里使

31、用,這里涉及一個(gè)作用域的問(wèn)題。變量的作用域就是該變量能被訪問(wèn)的區(qū)間,在程序源代碼中通常以程序段來(lái)劃分。2.2 運(yùn)算符和表達(dá)式2.2.1 任務(wù)2.2 四則運(yùn)算一、任務(wù)引入 在很多程序設(shè)計(jì)中,程序員都會(huì)遇到關(guān)于數(shù)值計(jì)算的問(wèn)題,這其中就包括我們常見(jiàn)的加減乘除四則運(yùn)算。在Java中是怎么樣進(jìn)行這些基本計(jì)算的呢?請(qǐng)看下面的例子:二、任務(wù)目標(biāo) 掌握算術(shù)運(yùn)算符的使用方法。三、任務(wù)內(nèi)容 四則運(yùn)算。四、程序清單/*源程序文件名:Ex0202.java*/import java.io.*;public class Ex0202 public static void main(String args)int a =

32、 5+4;/a=9int b = a*2;/b=18int c = b/4;/c=4int d = b-c;/d=14int e = -d;/e=-14int f = e%4;/f=-2double g = 18.4;double h = g%4;/h=2.4int i = 3;int j = i+;/i=4,j=3int k = +i;/i=5,k=5System.out.print(a = +a);System.out.println(b = +b);System.out.print(c = +c);System.out.println(d = +d);System.out.print(e

33、 = +e);System.out.println(f = +f);System.out.print(g = +g);System.out.println(h = +h);System.out.print(i = +i);System.out.println(j = +j);System.out.println(k = +k);五、運(yùn)行結(jié)果六、任務(wù)小結(jié) 這是一個(gè)很簡(jiǎn)單的例子,在這個(gè)例子中,我們使用了Java提供的全部八個(gè)算術(shù)運(yùn)算符,除了大家熟悉的加(+)減(-)乘(*)除(/)運(yùn)算之外,還有取余(%)、求反(-)、自增(+)以及自減(-)運(yùn)算,在下一小節(jié)中,我們將詳細(xì)介紹這八個(gè)運(yùn)算符的使用方法

34、和注意事項(xiàng)。2.2.2 算術(shù)運(yùn)算符算術(shù)運(yùn)算符用于完成算術(shù)運(yùn)算。Java提供了兩大類(lèi)共八個(gè)算術(shù)運(yùn)算符。運(yùn)算符運(yùn)算示例功能+加a+b求a與b相加的和-減a-b求a與b相減的差*乘a*b求a與b相乘的積/除a/b求a除以b的商%取余a%b求a除以b的余數(shù)表2-2 雙目算術(shù)運(yùn)算符運(yùn)算符運(yùn)算示例功能+自增a+或+a等價(jià)于a=a+1-自減a-或-a等價(jià)于a=a-1-求反-a等價(jià)于-1*a表2-3 單目算術(shù)運(yùn)算符2.2.3 任務(wù)2.3 比較大小一、任務(wù)引入 除了基本的算術(shù)運(yùn)算之外,我們還會(huì)對(duì)遇到的數(shù)據(jù)進(jìn)行大小比較,以決定它們的性質(zhì)或者是程序運(yùn)行的順序,下面我們來(lái)看一看Java中是如何比較大小的。請(qǐng)看下面的例

35、子:二、任務(wù)目標(biāo) 掌握J(rèn)ava中關(guān)系運(yùn)算符的使用方法。三、任務(wù)內(nèi)容 將三個(gè)數(shù)按大小順序輸出。四、程序清單/*源程序文件名:Ex0203.java*/import java.io.*;public class Ex0203 public static void main(String args)int a = 5, b = 12, c = 8;int temp = 0;if(ab)temp = a; a = b; b = temp;if(bc)temp = b; b = c; c = temp;if(a大于aba大于b時(shí)結(jié)果為true小于a=大于等于a=ba大于或等于b時(shí)結(jié)果為true=小于等于

36、a=ba小于或等于b時(shí)結(jié)果為true表2-4 關(guān)系運(yùn)算符運(yùn)算符運(yùn)算示例功能&非簡(jiǎn)潔與x&yx,y都為true時(shí)結(jié)果為true&簡(jiǎn)潔與x&y|非簡(jiǎn)潔或x|yx,y中有一個(gè)為true結(jié)果為true|簡(jiǎn)潔或x|y異或xyx,y相同時(shí)結(jié)果為false!取反!xx為false時(shí)結(jié)果為true表2-5 條件運(yùn)算符2.2.5 任務(wù)2.4 使用標(biāo)記位一、任務(wù)引入 在很多RPG游戲中,人物角色所掌握的多種技能通常使用一個(gè)變量存儲(chǔ),這就是標(biāo)記位存儲(chǔ)方法,而其所使用的運(yùn)算就是位運(yùn)算符。下面我們通過(guò)一個(gè)游戲程序片段來(lái)看一看Java中是如何使用位運(yùn)算符的。請(qǐng)看下面的例子:二、任務(wù)目標(biāo)掌握J(rèn)ava中位運(yùn)算符的使用方法。三

37、、任務(wù)內(nèi)容設(shè)計(jì)函數(shù),讓人物角色學(xué)習(xí)各種技能。四、程序清單/*源程序文件名:Ex0204.java*/public class Ex0204 public static void main(String args)int sCook = 1, sFish = 2, sProject = 4, sForge = 8;/各技能標(biāo)記character ch1 = new character();ch1.learnSkill(sCook);/學(xué)習(xí)烹飪技能ch1.learnSkill(sForge);/學(xué)習(xí)鍛造技能if(ch1.haveSkill(sCook)System.out.println(+會(huì)烹飪

38、。);elseSystem.out.println(+不會(huì)烹飪。);if(ch1.haveSkill(sFish)System.out.println(+會(huì)釣魚(yú)。);elseSystem.out.println(+不會(huì)釣魚(yú)。);class characterString name = smith;String sex = m;int skill = 0;/技能標(biāo)記位void learnSkill(int skillCode)/學(xué)習(xí)技能this.skill = this.skill|skillCode;boolean haveSkill(int skillCode)/判斷是否擁有技能return

39、(this.skill&skillCode)=skillCode);五、運(yùn)行結(jié)果六、任務(wù)小結(jié) 位運(yùn)算是針對(duì)二進(jìn)制數(shù)進(jìn)行操作的,所以我們?cè)诜治鲞@個(gè)例子的時(shí)候,要先將其中的一些整型量轉(zhuǎn)為二進(jìn)制形式后才能更好地理解。如人物技能標(biāo)記位skill的初始值為(0000) 2,烹飪技能標(biāo)記為(0001) 2,釣魚(yú)技能標(biāo)記為(0010)2,工程技能標(biāo)記為(0100)2,鍛造技能標(biāo)記為(1000)2。 注意兩個(gè)函數(shù)中的語(yǔ)句:this.skill = this.skill|skillCode;return(this.skill&skillCode)=skillCode); 第一條語(yǔ)句使用的是按位或(|),即(00

40、00)2|(0001)2=(0001)2,人物技能標(biāo)記位的最后一位為1,表示人物學(xué)會(huì)了烹飪技能。第二條語(yǔ)句使用的是按位與(&),即(0101)2&(0001)2=(0001)2,再將結(jié)果與相應(yīng)技能標(biāo)記比較,這樣來(lái)判斷人物是否掌握這種技能。 除按位運(yùn)算符外,還有移位運(yùn)算符,在下一小節(jié)中,我們將詳細(xì)介紹按位和移位運(yùn)算符的使用方法。2.2.6 位運(yùn)算符運(yùn)算符運(yùn)算示例功能&按位與a&b將a和b按二進(jìn)制進(jìn)行與運(yùn)算|按位或a|b將a和b按二進(jìn)制進(jìn)行或運(yùn)算按位異或ab將a和b按二進(jìn)制進(jìn)行異或運(yùn)算按位取反a將a按二進(jìn)制進(jìn)行取反運(yùn)算表2-6 按位運(yùn)算符運(yùn)算符運(yùn)算示例功能左移a右移ab將a右移b位無(wú)符號(hào)右移ab將

41、a右移b位,左邊空位填零表2-7 移位運(yùn)算符2.2.7 賦值運(yùn)算符與類(lèi)型轉(zhuǎn)換一、賦值運(yùn)算符 賦值運(yùn)算符用于將運(yùn)算符右邊表達(dá)式的值賦給左邊的變量,基本使用格式如下: 變量 = 表達(dá)式;如: i = 1; k = i+j/4;二、類(lèi)型轉(zhuǎn)換 賦值運(yùn)算的基本要求是運(yùn)算符左右兩邊的數(shù)據(jù)類(lèi)型必須一致,如果遇到賦值號(hào)兩邊的數(shù)據(jù)類(lèi)型不一致的情況,就需要把右邊的數(shù)據(jù)類(lèi)型轉(zhuǎn)換成左邊的數(shù)據(jù)類(lèi)型。通常情況下,如果類(lèi)型不一致,需要程序員在程序中進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換,在某些特殊情況下,Java也可以自動(dòng)進(jìn)行類(lèi)型轉(zhuǎn)換。三、快捷賦值運(yùn)算符運(yùn)算符示例等價(jià)于+=a+=ba=a+b-=a-=ba=a-b*=a*=ba=a*b/=a/=

42、ba=a/b%=a%=ba=a%b&=a&=ba=a&b|=a|=ba=a|b運(yùn)算符示例等價(jià)于=a=ba=ab=a=ba=a=a=ba=ab=a=ba=ab表2-8 快捷賦值運(yùn)算符續(xù)表2.2.8 其他運(yùn)算符運(yùn) 算 符描 述? :一種簡(jiǎn)化的條件判斷語(yǔ)句定義數(shù)組,創(chuàng)建數(shù)組,以及訪問(wèn)數(shù)組元素.訪問(wèn)對(duì)象的成員函數(shù)和成員變量(參數(shù)1,參數(shù)2,.)函數(shù)的參數(shù),多個(gè)參數(shù)之間以逗號(hào)分隔(變量類(lèi)型)強(qiáng)制類(lèi)型轉(zhuǎn)換new創(chuàng)建新對(duì)象或新數(shù)組instanceof判斷對(duì)象是否是類(lèi)的一個(gè)實(shí)例2.2.9 運(yùn)算符的優(yōu)先級(jí)優(yōu)先級(jí)類(lèi)型運(yùn)算符1后綴運(yùn)算符 . (參數(shù)) a+ a-2一元運(yùn)算符+a -a -a !3新建與類(lèi)型轉(zhuǎn)換new

43、 (變量類(lèi)型)4乘除法* / %5加減法+ -6移位 7關(guān)系運(yùn)算符 = instanceof8相等與不等= !=9按位與&10按位異或11按位或|12邏輯與&13邏輯或|14條件判斷? :15賦值= += -= *= /= %= &= = |= = =表2-10 運(yùn)算符的優(yōu)先級(jí)2.3 流程控制2.3.1 任務(wù)2.5 根據(jù)條件輸出一、任務(wù)引入 當(dāng)編寫(xiě)程序的時(shí)候,在沒(méi)有流程控制語(yǔ)句的情況下,Java程序是按照源代碼中每條語(yǔ)句出現(xiàn)的順序一條一條順序執(zhí)行的。而流程控制語(yǔ)句的作用就是讓語(yǔ)句不按照順序執(zhí)行,包括分支控制語(yǔ)句、循環(huán)控制語(yǔ)句和中斷控制語(yǔ)句。首先請(qǐng)看下面的例子:二、任務(wù)目標(biāo) 掌握J(rèn)ava中分支控

44、制語(yǔ)句的使用方法。三、任務(wù)內(nèi)容 編寫(xiě)程序,計(jì)算數(shù)值變量a的正負(fù)號(hào),以測(cè)試條件分支語(yǔ)句。四、程序清單/*源程序文件名:Ex0205.java*/public class Ex0205 public static void main(String args)int a = -23;if(a=0)System.out.println(a的值大于等于零。);elseSystem.out.println(a的值小于零。);五、運(yùn)行結(jié)果六、任務(wù)小結(jié) 這是一個(gè)使用分支控制語(yǔ)句if()else的簡(jiǎn)單程序,在變量a有一個(gè)確定值的情況下,使用if()語(yǔ)句判斷分支條件,也就是(a=0)是否成立,如果成立,程序就執(zhí)行

45、if()語(yǔ)句后面的大括號(hào)()里的語(yǔ)句;如果不成立,程序就執(zhí)行else后面的大括號(hào)里的語(yǔ)句。這樣,根據(jù)某一個(gè)判斷條件,我們可以讓程序分別執(zhí)行不同的語(yǔ)句,實(shí)現(xiàn)不同的操作。 除了ifelse這樣的分支控制語(yǔ)句外,還有if、ifelse ifelse以及switch等也可實(shí)現(xiàn)分支控制的語(yǔ)句,在下一個(gè)小節(jié)中我們來(lái)一起學(xué)習(xí)。2.3.2 分支控制語(yǔ)句一、if語(yǔ)句 if語(yǔ)句是最基本的分支控制語(yǔ)句,它可以讓程序根據(jù)某些條件選擇性地執(zhí)行語(yǔ)句。if語(yǔ)句的形式如下: if(關(guān)系表達(dá)式)語(yǔ)句 它的含義是:如果關(guān)系表達(dá)式的值為true,則執(zhí)行后面大括號(hào)里的語(yǔ)句,否則就不執(zhí)行大括號(hào)里的語(yǔ)句。 二、ifelse語(yǔ)句 有時(shí),程

46、序需要控制當(dāng)條件滿足和不滿足時(shí)分別執(zhí)行不同的語(yǔ)句,這時(shí)可以使用ifelse語(yǔ)句,通過(guò)判斷一個(gè)條件,可以決定程序到底執(zhí)行那些語(yǔ)句。具體應(yīng)用在任務(wù)2.5里面已經(jīng)很詳細(xì)了,這里不再贅述。三、ifelse嵌套 如果我們的程序需要有兩個(gè)以上的分支,那么單純的ifelse結(jié)構(gòu)就不能滿足需要了,這時(shí)我們可以使用嵌套的ifelse結(jié)構(gòu)。 四、switch語(yǔ)句switch語(yǔ)句用于處理多分支選擇,它的一般形式是:switch(intVar)case Var1 :語(yǔ)句1;break;case Var2 :語(yǔ)句2;break;case Varn :語(yǔ)句n;break;default:語(yǔ)句n+1;2.3.3 任務(wù)2.6

47、 循環(huán)多次輸出一、任務(wù)引入 程序設(shè)計(jì)中有時(shí)需要將一段代碼反復(fù)執(zhí)行,這時(shí)就需要用到循環(huán)控制語(yǔ)句。使用循環(huán)控制語(yǔ)句可以提高代碼的使用率,減輕程序員負(fù)擔(dān),增加程序運(yùn)行效率,讓我們用很簡(jiǎn)潔的語(yǔ)句完成重復(fù)的、復(fù)雜的操作。請(qǐng)看下面的例子:二、任務(wù)目標(biāo) 掌握J(rèn)ava中循環(huán)控制語(yǔ)句的使用方法和技巧。三、任務(wù)內(nèi)容 編寫(xiě)程序,計(jì)算19、29、99的結(jié)果并輸出。四、程序清單/*源程序文件名:Ex0206.java*/public class Ex0206 public static void main(String args)for(int i = 1; i = 9; i+)System.out.println(i

48、+x9=+i*9);五、運(yùn)行結(jié)果六、任務(wù)小結(jié) 按照以前的程序設(shè)計(jì)思路,要進(jìn)行9次計(jì)算和輸出,至少需要9條語(yǔ)句,分別計(jì)算19、2999的結(jié)果并輸出。但是這些語(yǔ)句里面,除了乘數(shù)有變化,而且是有規(guī)律的變化之外,其他的計(jì)算和輸出都是一樣的。所以我們使用了循環(huán)控制語(yǔ)句for,通過(guò)循環(huán)控制變量i,來(lái)控制計(jì)算時(shí)的乘數(shù)以及計(jì)算的次數(shù)。這樣,原本需要使用9條語(yǔ)句完成的程序,在這里被簡(jiǎn)化為了一個(gè)for語(yǔ)句段。 for語(yǔ)句是常見(jiàn)的一種循環(huán)控制語(yǔ)句,另外,Java還提供了do.while和while兩種循環(huán)控制語(yǔ)句,下一個(gè)小節(jié)中我們將詳細(xì)介紹。2.3.4 循環(huán)控制語(yǔ)句一、for語(yǔ)句 for語(yǔ)句是最常用的一種循環(huán)控制語(yǔ)

49、句,它通常用于循環(huán)次數(shù)已知的情況。for語(yǔ)句的一般格式如下: for(初始化表達(dá)式;循環(huán)條件表達(dá)式;迭代表達(dá)式) 循環(huán)體 二、while語(yǔ)句 while語(yǔ)句實(shí)現(xiàn)“當(dāng)”型循環(huán),即先判斷循環(huán)條件,如果條件滿足,則執(zhí)行循環(huán)體,否則就結(jié)束循環(huán)。while語(yǔ)句的一般格式如下: while(條件表達(dá)式) 循環(huán)體 三、do.while語(yǔ)句 do.while語(yǔ)句的判斷過(guò)程與while語(yǔ)句正好相反,它是先執(zhí)行循環(huán)體,再進(jìn)行判斷以決定是否進(jìn)行下一次循環(huán)。do.while語(yǔ)句的一般格式如下: do 循環(huán)體 while(條件表達(dá)式);2.3.5 任務(wù)2.7 從循環(huán)中跳出一、任務(wù)引入 在一些循環(huán)結(jié)構(gòu)中,我們可能遇到某種

50、情況,需要中止循環(huán),但Java沒(méi)有提供goto語(yǔ)句,不能使用直接跳轉(zhuǎn)語(yǔ)句跳出循環(huán),但是Java針對(duì)這種情況,提供了break、continue和return語(yǔ)句,用于不同情況下的中斷控制。比如下面的例子:二、任務(wù)目標(biāo)掌握J(rèn)ava中中斷控制語(yǔ)句的使用方法。三、任務(wù)內(nèi)容設(shè)計(jì)函數(shù),求100200間的所有素?cái)?shù)。四、程序清單/*源程序文件名:Ex0207.java*/public class Ex0207 public static void main(String args)int n = 0;outer: for(int i = 101; i 200; i+)int k = 15;for(int j

51、 = 2; j = k; j+)if(i%j=0)continue outer;System.out.print( +i);n+;if(n10)continue;System.out.println();n = 0;五、運(yùn)行結(jié)果六、任務(wù)小結(jié) 在這個(gè)任務(wù)里,我們使用嵌套的for語(yǔ)句,其中外層for語(yǔ)句用于控制變量i,也就是用來(lái)判斷是否是素?cái)?shù)的那個(gè)數(shù)的遞增,內(nèi)層for語(yǔ)句用于控制對(duì)i是否是素?cái)?shù)的判斷。 2.3.6 中斷控制語(yǔ)句 一、break語(yǔ)句 在switch語(yǔ)句中,break用來(lái)終止switch語(yǔ)句的執(zhí)行,程序流程轉(zhuǎn)到switch語(yǔ)句塊后的第一條語(yǔ)句。同樣在循環(huán)語(yǔ)句for、while和dowh

52、ile中,break將立即終止正在執(zhí)行的循環(huán),程序流程轉(zhuǎn)到循環(huán)語(yǔ)句后的第一條語(yǔ)句。 二、continue語(yǔ)句 continue語(yǔ)句只能用在循環(huán)語(yǔ)句中,用于中斷本次循環(huán),開(kāi)始下一次循環(huán)。在任務(wù)2.7中,第二個(gè)continue語(yǔ)句就是中斷一次循環(huán),即不執(zhí)行后面的輸出和賦值語(yǔ)句,開(kāi)始下一次循環(huán)。三、return語(yǔ)句 return語(yǔ)句從當(dāng)前函數(shù)中返回到調(diào)用該函數(shù)的語(yǔ)句處,并繼續(xù)執(zhí)行后面的語(yǔ)句(有關(guān)函數(shù)的內(nèi)容將在第三章中介紹)。 2.4 數(shù) 組2.4.1 任務(wù)2.8 存儲(chǔ)學(xué)生單科成績(jī)一、任務(wù)引入 在前面的學(xué)習(xí)中,我們知道了一個(gè)變量可以存儲(chǔ)一個(gè)數(shù)據(jù),但是很多程序中的數(shù)據(jù)量很大,如果每一個(gè)數(shù)據(jù)都用一個(gè)變量來(lái)

53、存儲(chǔ)的話,在變量的命名和使用上會(huì)有很大的麻煩。當(dāng)這些數(shù)據(jù)類(lèi)型相同的時(shí)候,我們可以使用數(shù)組來(lái)存儲(chǔ),這樣可以簡(jiǎn)化程序設(shè)計(jì)的難度。請(qǐng)看下面的例子:二、任務(wù)目標(biāo) 掌握J(rèn)ava中一維數(shù)組的使用方法。三、任務(wù)內(nèi)容 編寫(xiě)程序,統(tǒng)計(jì)全班學(xué)生單科成績(jī)的合格率。四、程序清單/*源程序文件名:Ex0208.java*/public class Ex0208 public static void main(String args)int mathRecord = 76,56,89,100,60,70,61,59,0,88,94,99;int Total = mathRecord.length;double pass

54、= 0;for(int i = 0; i =60)pass+;System.out.println(全班總?cè)藬?shù)為:+Total);System.out.println(及格率為:+pass/Total*100+);五、運(yùn)行結(jié)果六、任務(wù)小結(jié) 數(shù)組可以用來(lái)存儲(chǔ)數(shù)據(jù)類(lèi)型一致的多個(gè)數(shù)據(jù),通常和for循環(huán)配合,訪問(wèn)數(shù)組中的每一個(gè)元素。數(shù)組元素的標(biāo)號(hào)(數(shù)組下標(biāo))從0開(kāi)始,這和其他一些程序設(shè)計(jì)語(yǔ)言有所不同。數(shù)組的長(zhǎng)度可以用“數(shù)組名.length”來(lái)獲得,但不能使用這個(gè)方法在程序中重新設(shè)置數(shù)組長(zhǎng)度。2.4.2 一維數(shù)組的使用一、一維數(shù)組的聲明 一維數(shù)組的聲明方式有兩種: 數(shù)據(jù)類(lèi)型 數(shù)組名; 數(shù)據(jù)類(lèi)型 數(shù)組名;

55、二、一維數(shù)組的初始化 在使用已經(jīng)聲明好的數(shù)組之前,需要對(duì)其進(jìn)行初始化操作,即為數(shù)組分配內(nèi)存空間,并為每個(gè)數(shù)組元素設(shè)置一個(gè)默認(rèn)的初始化值。這里需要使用到運(yùn)算符new,其格式如下: 數(shù)組名 = new 數(shù)據(jù)類(lèi)型數(shù)組長(zhǎng)度三、一維數(shù)組的使用 我們可以通過(guò)下面的格式訪問(wèn)數(shù)組中的任意一個(gè)元素: 數(shù)組名下標(biāo)2.4.3 任務(wù)2.9 存儲(chǔ)學(xué)生多科成績(jī)一、任務(wù)引入 任務(wù)2.8為大家展示了怎樣使用一維數(shù)組來(lái)存儲(chǔ)學(xué)生的單科成績(jī),接下來(lái)我們很容易想到,如果有多科成績(jī),是否也可以用一個(gè)數(shù)組來(lái)存儲(chǔ)呢?答案是肯定的,那就是使用二維數(shù)組。請(qǐng)看下面的例子:二、任務(wù)目標(biāo) 掌握J(rèn)ava中多維數(shù)組的使用方法。三、任務(wù)內(nèi)容 編寫(xiě)程序,使

56、用二維數(shù)組統(tǒng)計(jì)全班學(xué)生多科成績(jī)的合格率。四、程序清單/*源程序文件名:Ex0209.java*/public class Ex0209 public static void main(String args)int allRecord = 70,85,59,65,59,60, 90,95,65,50,50,50;double pass = new double2;int Total = allRecord.length;for(int i = 0; i Total; i+)for(int j = 0; j = 60)passj+;System.out.println(全班總?cè)藬?shù)為:+Total

57、);System.out.println(語(yǔ)文及格率為:+ pass0/Total*100+ );System.out.println(數(shù)學(xué)及格率為:+ pass1/Total*100+ );五、運(yùn)行結(jié)果六、任務(wù)小結(jié) 與一維數(shù)組類(lèi)似,多維數(shù)組通常也和for循環(huán)配合使用,以訪問(wèn)多維數(shù)組中的每一個(gè)元素,只是根據(jù)數(shù)組維數(shù)的多少,而使用多重循環(huán)來(lái)達(dá)到目的。多維數(shù)組的定義和使用與一維數(shù)組基本一致,只是由于多維數(shù)組的復(fù)雜性,在使用過(guò)程中要多加注意。2.4.4 多維數(shù)組的使用一、二維數(shù)組的聲明 二維數(shù)組的聲明方式為: 數(shù)據(jù)類(lèi)型 數(shù)組名;二、二維數(shù)組的初始化 對(duì)二維數(shù)組來(lái)說(shuō),分配內(nèi)存空間有兩種方法。一種是直接

58、分配,即一次性指定兩個(gè)維數(shù)上的長(zhǎng)度,如: int a = new int23; 這樣分配后的數(shù)組相當(dāng)于一個(gè)矩陣,其每一行的長(zhǎng)度是一樣的。三、二維數(shù)組的使用 同一維數(shù)組類(lèi)似,我們可以通過(guò)給出二維數(shù)組的兩個(gè)下標(biāo)來(lái)訪問(wèn)數(shù)組中的元素。2.5 字 符 串2.5.1 任務(wù)2.10 使用字符串對(duì)象一、任務(wù)引入 在許多語(yǔ)言中,字符串是一種基本數(shù)據(jù)類(lèi)型,但在Java語(yǔ)言中,字符串是一種對(duì)象,我們可以通過(guò)使用String或StringBuffer兩個(gè)類(lèi)來(lái)對(duì)其進(jìn)行處理。請(qǐng)看下面的例子:二、任務(wù)目標(biāo) 掌握J(rèn)ava中String類(lèi)的使用方法。三、任務(wù)內(nèi)容 編寫(xiě)程序,對(duì)String對(duì)象進(jìn)行連接、替換、比較和查找等操作。四

59、、程序清單/*源程序文件名:Ex0210.java*/public class Ex0210 public static void main(String args)String s1 = Hello, world!;String s2 = new String(Hello, world!);s2 = +s2+ ;String s3 = s1.replace(w,W);if(s3.equals(s1)System.out.println(s3等于s1。);elseSystem.out.println(s3不等于s1。);if(s3.equalsIgnoreCase(s1)System.out.

60、println(s3等于s1(忽略大小寫(xiě))。);elseSystem.out.println(s3不等于s1(忽略大小寫(xiě))。);System.out.println(s2去除首尾空格后:+s2.trim();System.out.println(s1中第一個(gè)o字母出現(xiàn)在第+ s1.indexOf(o)+位置。);System.out.println(s1中第一個(gè)e字母和最后一個(gè)l字母之間的字符串是:+ s1.substring(s1.indexOf(e), s1.lastIndexOf(l);五、運(yùn)行結(jié)果六、任務(wù)小結(jié) 在這個(gè)任務(wù)中我們可以看到,由于Java將字符串視為對(duì)象,所以可以使用一些很便

溫馨提示

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

評(píng)論

0/150

提交評(píng)論