程序設(shè)計(jì)基礎(chǔ)整套課件完整版電子教案課件匯總(最新)_第1頁(yè)
程序設(shè)計(jì)基礎(chǔ)整套課件完整版電子教案課件匯總(最新)_第2頁(yè)
程序設(shè)計(jì)基礎(chǔ)整套課件完整版電子教案課件匯總(最新)_第3頁(yè)
程序設(shè)計(jì)基礎(chǔ)整套課件完整版電子教案課件匯總(最新)_第4頁(yè)
程序設(shè)計(jì)基礎(chǔ)整套課件完整版電子教案課件匯總(最新)_第5頁(yè)
已閱讀5頁(yè),還剩234頁(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、程序設(shè)計(jì)基礎(chǔ)(Java版) 第1章 程序設(shè)計(jì)基礎(chǔ) 學(xué)習(xí)目標(biāo)理解計(jì)算機(jī)系統(tǒng)的組成了解計(jì)算機(jī)軟件和程序的基本概念會(huì)使用流程圖表示程序邏輯了解Java語(yǔ)言的發(fā)展和特點(diǎn)能夠獲得、安裝和使用Java SDK能夠編譯、解釋和運(yùn)行第一個(gè)簡(jiǎn)單Java程序能夠大致了解Java程序的結(jié)構(gòu)對(duì)面向?qū)ο笥谐醪降闹R(shí)Java程序的編輯、解釋和運(yùn)行1.1 計(jì)算機(jī)系統(tǒng)概述 1.1.1 計(jì)算機(jī)系統(tǒng)的組成1.1.2 計(jì)算機(jī)軟件概述 1.1.1 計(jì)算機(jī)系統(tǒng)的組成1.1.2計(jì)算機(jī)軟件概述 計(jì)算機(jī)軟件是指能使計(jì)算機(jī)工作的程序和程序運(yùn)行時(shí)所需要的數(shù)據(jù),以及與這些程序和數(shù)據(jù)有關(guān)的文檔。 軟件 = 程序 + 數(shù)據(jù) + 文檔 1.2計(jì)算機(jī)程序

2、介紹1.2.1 計(jì)算機(jī)程序概述1.2.2 程序執(zhí)行的階段1.2.3機(jī)器語(yǔ)言和高級(jí)語(yǔ)言1.2.4 程序邏輯的實(shí)現(xiàn)1.2.1 計(jì)算機(jī)程序概述計(jì)算機(jī)程序可分為3種類(lèi)型 : 應(yīng)用程序 操作系統(tǒng) 設(shè)備驅(qū)動(dòng)程序1.2.2 程序執(zhí)行的階段 程序執(zhí)行過(guò)程從功能上可以分為輸入階段、處理階段和輸出階段。 在輸入階段中,需要通過(guò)輸入設(shè)備向計(jì)算機(jī)提供字符、聲音、圖片和動(dòng)畫(huà)等數(shù)據(jù)。 在處理階段中,計(jì)算機(jī)在輸入階段提供的數(shù)據(jù)上執(zhí)行操作,通過(guò)中央處理器進(jìn)行計(jì)算、統(tǒng)計(jì)、文本編輯、邏輯判斷、圖形縮放和色彩配置等數(shù)據(jù)處理。 在輸出階段中,計(jì)算機(jī)通過(guò)輸出設(shè)備以文本、聲音、圖片或各種控制信號(hào)的形式輸出處理結(jié)果。 1.2.3機(jī)器語(yǔ)言和

3、高級(jí)語(yǔ)言1. 機(jī)器語(yǔ)言 計(jì)算機(jī)每做的一次動(dòng)作,一個(gè)步驟,都是按照有序的指令集合來(lái)執(zhí)行的,每個(gè)計(jì)算機(jī)指令都對(duì)應(yīng)一個(gè)計(jì)算機(jī)應(yīng)該執(zhí)行的物理操作,這些操作是用0和1序列表示的,它是計(jì)算機(jī)的內(nèi)部語(yǔ)言,又稱(chēng)為機(jī)器語(yǔ)言。 2. 匯編語(yǔ)言 機(jī)器語(yǔ)言是面向機(jī)器的,即某種機(jī)器語(yǔ)言只能在某特定型號(hào)的計(jì)算機(jī)上使用,用機(jī)器語(yǔ)言編程繁瑣,容易出錯(cuò),且難以記憶和識(shí)別。為了克服機(jī)器語(yǔ)言的缺點(diǎn),人們采用助記符來(lái)表示機(jī)器指令進(jìn)行程序設(shè)計(jì)的語(yǔ)言,稱(chēng)為匯編語(yǔ)言。 1.2.3機(jī)器語(yǔ)言和高級(jí)語(yǔ)言3. 高級(jí)語(yǔ)言 匯編語(yǔ)言是一種符號(hào)語(yǔ)言,比機(jī)器語(yǔ)言容易理解和掌握,也容易調(diào)試和維護(hù)。但是編語(yǔ)言仍然是面向機(jī)器的語(yǔ)言,即使一個(gè)簡(jiǎn)單任務(wù)也需要多條指

4、令才能完成。掌握和使用這種語(yǔ)言比較困難,因此,人們研制出了高級(jí)語(yǔ)言。 高級(jí)語(yǔ)言按轉(zhuǎn)換方式可以分為兩類(lèi) : (1)解釋類(lèi):應(yīng)用程序源代碼一邊由相應(yīng)語(yǔ)言的解釋器“翻譯”成目標(biāo)代碼,一邊執(zhí)行。效率比較低,而且不能生成可獨(dú)立執(zhí)行的可執(zhí)行文件,應(yīng)用程序不能脫離其解釋器,但這種方式比較靈活,可以動(dòng)態(tài)地調(diào)整、修改應(yīng)用程序。(2)編譯類(lèi):編譯是指在應(yīng)用源程序執(zhí)行之前,就將程序源代碼“翻譯”成目標(biāo)代碼,因此其目標(biāo)程序可以脫離其語(yǔ)言環(huán)境獨(dú)立執(zhí)行。1.2.3機(jī)器語(yǔ)言和高級(jí)語(yǔ)言4. 程序的執(zhí)行1.2.4 程序邏輯的實(shí)現(xiàn) 所有的程序都是為了解決現(xiàn)實(shí)生活中的問(wèn)題而開(kāi)發(fā)的,在開(kāi)始編寫(xiě)程序之前,必須根據(jù)一系列的邏輯步驟來(lái)分析

5、要解決的問(wèn)題。這些步驟包括: 識(shí)別輸出和輸入要求 確定相關(guān)的處理方法 實(shí)現(xiàn)邏輯 :用流程圖或者偽代碼表示出程序邏輯1.2.4 程序邏輯的實(shí)現(xiàn)【例1-1】用程序邏輯表示工人的月薪某工廠工資以計(jì)件形式發(fā)放,每月月末根據(jù)工人生產(chǎn)的產(chǎn)品個(gè)數(shù)來(lái)計(jì)算其月薪:月薪=每生產(chǎn)一個(gè)產(chǎn)品的酬金該月生產(chǎn)產(chǎn)品的個(gè)數(shù),求工人的月薪。 1.2.4 程序邏輯的實(shí)現(xiàn)【例1-2】用程序邏輯表示應(yīng)聘者的篩選某軟件公司欲招聘一位資深系統(tǒng)分析員,很多人前來(lái)應(yīng)征。經(jīng)過(guò)筆試,需要向所有筆試成績(jī)?cè)?0分以下的應(yīng)聘者發(fā)出拒絕信,同時(shí)通知有資格者前來(lái)面試??梢杂靡韵虏襟E來(lái)規(guī)劃解決方案。 1.3 初識(shí)Java程序 1.3.1 Java語(yǔ)言的發(fā)展和

6、特點(diǎn)1.3.2 JDK的獲得與安裝1.3.3 一切都是對(duì)象(面向?qū)ο蟪醪剑?.3.4 第一個(gè)應(yīng)用程序(Java Application)1.3.5 第一個(gè)小程序(Java Applet)1.3.6 Java程序的結(jié)構(gòu)1.3.1 Java語(yǔ)言的發(fā)展和特點(diǎn) Java語(yǔ)言的主要特點(diǎn)有:簡(jiǎn)單性平臺(tái)無(wú)關(guān)性3. 分布性和安全性4. 豐富的API文檔和類(lèi)庫(kù)1.3.2 JDK的獲得與安裝 Java的解釋器又稱(chēng)為“Java虛擬機(jī)(JVM:Java Virtual Machine)”,它是一個(gè)想象中的機(jī)器,它是虛擬計(jì)算機(jī)或邏輯計(jì)算機(jī),實(shí)際上是一段負(fù)責(zé)解釋執(zhí)行Java字節(jié)碼的的程序。JVM能夠從字節(jié)碼流中讀取指令并

7、解釋指令的含義,從這個(gè)意義上說(shuō),Java可以被稱(chēng)為一種“解釋型”的高級(jí)語(yǔ)言。 為了創(chuàng)建、運(yùn)行和調(diào)試Java程序,我們不僅僅需要解釋器,還需要編譯器和其他一系列工具,這些內(nèi)容都由一系列文件組成。這些文件的集合稱(chēng)為Java的開(kāi)發(fā)工具。 1.3.2 JDK的獲得與安裝 若要安裝Java開(kāi)發(fā)環(huán)境,必須有支持該環(huán)境的操作系統(tǒng),Java產(chǎn)品面向的主流平臺(tái)有Solaris、Linux和Windows等,JDK可以從http:/下載。 1. 下載 從http:/下載Java JDK 6的Windows單機(jī)版本,得到程序“jdk-6-windows-i586.exe”,2. 安裝對(duì)于Windows環(huán)境下的JDK

8、安裝,可以直接雙擊運(yùn)行jdk-6-windows-i586.exe,安裝程序會(huì)自行解壓并配置文件。根據(jù)安裝程序向?qū)У闹敢惭b文件,在“許可證協(xié)議”對(duì)話框中選擇點(diǎn)擊“接受”按鈕即可向下進(jìn)行。接受協(xié)議后,安裝向?qū)?huì)彈出“自定義安裝”對(duì)話框 。1.3.2 JDK的獲得與安裝完成“自定義安裝”的選擇后,點(diǎn)擊【下一步】按鈕,用戶可以在向?qū)崾鞠峦瓿伞?.3.2 JDK的獲得與安裝3. 路徑設(shè)置如果選擇的安裝目錄是C:jdk,可運(yùn)行的工具包含在C:jdkbin目錄中,設(shè)置路徑后,可以在任何目錄中運(yùn)行。對(duì)JDK的設(shè)置主要是環(huán)境變量,以方便使用bin目錄中的各種工具。如果你使用的是Windows9x操作系統(tǒng),

9、可以在的C盤(pán)根目錄的autoexec.bat文件中加入如下語(yǔ)句:set classpath=.;C:jdklib;path= C:jdkbin;設(shè)置路徑后,需要重新啟動(dòng)計(jì)算機(jī)。 1.3.2 JDK的獲得與安裝如果使用的是Windows 2000或Window XP等高版本系統(tǒng),可以選擇【控制面板】|【系統(tǒng)】|【高級(jí)】|【環(huán)境變量】,即可打開(kāi)“環(huán)境變量”對(duì)話框 。1.3.2 JDK的獲得與安裝1.3.2 JDK的獲得與安裝4. 開(kāi)發(fā)工具簡(jiǎn)介JDK軟件包中常用的工具包括:javac、java、appletviewer、javah、javap、javab、javadoc等,這里介紹最常用的三種。編譯

10、器javacjavac.exe是Java語(yǔ)言的編譯器,用來(lái)編譯Java源程序(.java文件),并生成字節(jié)碼文件(.class)文件。解釋器javajava.exe文件是Java語(yǔ)言的解釋器,用來(lái)解釋執(zhí)行Java字節(jié)碼(.class)文件。小程序?yàn)g覽器appletviewerappletviewer.exe提供了一個(gè)Java小程序(Java Applet)的運(yùn)行環(huán)境。appletviewer讀取嵌入有小程序的HTML文件,并在一個(gè)窗口中運(yùn)行。 1.3.2 JDK的獲得與安裝5.測(cè)試 安裝成功后,可以測(cè)試一下開(kāi)發(fā)工具是否能夠正常使用,一般可以進(jìn)行“javac”、“java”以及“appletvi

11、ewer”的測(cè)試,最簡(jiǎn)單的方法可以在命名提示符下輸入相應(yīng)的命令根據(jù)提示信息判斷,或者對(duì)簡(jiǎn)單的程序進(jìn)行測(cè)試,看是否能夠出現(xiàn)預(yù)期結(jié)果。 在命令提示符下,輸入“javac”,回車(chē),如果出現(xiàn)如圖所示界面,則說(shuō)明該機(jī)器上未安裝JDK,或者安裝不成功。1.3.2 JDK的獲得與安裝如果安裝成功,則出現(xiàn)圖1-12所示界面。1.3.3 一切都是對(duì)象(面向?qū)ο蟪醪剑㎎ava語(yǔ)言是一種面向?qū)ο螅∣bject Oriented,簡(jiǎn)稱(chēng)OO)的程序設(shè)計(jì)語(yǔ)言,Java程序是以類(lèi)為基礎(chǔ)構(gòu)建的, 面向?qū)ο蟪绦蛟O(shè)計(jì)(OOP)是當(dāng)今最流行的程序設(shè)計(jì)方法,它是我們思考現(xiàn)實(shí)世界的一種自然方法,也是編寫(xiě)計(jì)算機(jī)程序的一種自然方法。我們?cè)?/p>

12、現(xiàn)實(shí)中看到的萬(wàn)事萬(wàn)物都是對(duì)象(object),所有的對(duì)象具有一定的共同處,它們都有屬性,他們都表現(xiàn)出一定的行為。 人類(lèi)通過(guò)研究對(duì)象的屬性和觀察對(duì)象的行為而了解對(duì)象。不同的對(duì)象可以具有類(lèi)似的屬性和行為 ,從這些共性可以歸納出某“類(lèi)”事務(wù)的共性,從而得到一個(gè)類(lèi)(class)。 1.3.3 一切都是對(duì)象(面向?qū)ο蟪醪剑┰贘ava語(yǔ)言中定義這個(gè)球類(lèi),一般就是如下形式:/定義一個(gè)球類(lèi)class 球 /球的屬性定義 尺寸; 重量; 材質(zhì); 顏色; /球的成員方法定義 滾動(dòng)(); 反彈(): 膨脹(); 1.3.3 一切都是對(duì)象(面向?qū)ο蟪醪剑?面向?qū)ο蟮母拍顦?gòu)成了Java的核心,面向?qū)ο缶哂蟹庋b、繼承和多

13、態(tài)三個(gè)主要特征。 1. 封裝性它有兩個(gè)涵義:第一個(gè)涵義是,把對(duì)象的全部屬性和行為結(jié)合在一起,形成一個(gè)不可分割的獨(dú)立單位(即對(duì)象)。第二個(gè)涵義也稱(chēng)作“信息隱蔽”,即盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié),對(duì)外形成一個(gè)邊界(或者說(shuō)形成一道屏障),只保留有限的對(duì)外接口使之與外部發(fā)生聯(lián)系。這主要是指對(duì)象的外部不能直接地存取對(duì)象的屬性,只能通過(guò)幾個(gè)允許外部使用的服務(wù)與對(duì)象發(fā)生聯(lián)系。1.3.3 一切都是對(duì)象(面向?qū)ο蟪醪剑?. 繼承性在面向?qū)ο蟪绦蛟O(shè)計(jì)中,繼承是指在已有類(lèi)的基礎(chǔ)上建立一個(gè)新類(lèi),新類(lèi)自動(dòng)擁有父類(lèi)的所有元素:屬性和方法,然后根據(jù)需要添加新任務(wù)所需要的屬性和方法。被繼承的類(lèi)被稱(chēng)為父類(lèi)或超類(lèi),派生出來(lái)的類(lèi)被稱(chēng)為

14、子類(lèi)或派生類(lèi)。3. 多態(tài)性不同對(duì)象對(duì)于相同的方法表現(xiàn)出不同的理解和響應(yīng),如籃球和氣球都具有膨脹的方法,但它們的膨脹系統(tǒng)數(shù)等確是不同的。在面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言中,多態(tài)性意味著一個(gè)對(duì)象具有多張面孔。1.3.4 第一個(gè)應(yīng)用程序(Java Application) 如果Java解釋器是一個(gè)獨(dú)立的應(yīng)用程序,并可以在操作系統(tǒng)下直接啟動(dòng),那么它解釋執(zhí)行的程序被稱(chēng)為“Java Application(Java 應(yīng)用程序)”;如果Java解釋器包含在一個(gè)瀏覽器內(nèi)部,使得這個(gè)瀏覽器可以解釋字節(jié)碼文件,則這種瀏覽器能夠自動(dòng)執(zhí)行的Java程序被稱(chēng)為“Java Applet(Java小程序)”。 1.3.4 第一個(gè)應(yīng)用

15、程序(Java Application)如何來(lái)開(kāi)發(fā)Java應(yīng)用程序呢?下面是使用Java SDK的方法。1. 編輯一般情況,可以創(chuàng)建一個(gè)文件夾用來(lái)存放自己的Java源文件,比如可以在D:創(chuàng)建一個(gè)文件夾myjava。打開(kāi)任意文本編輯程序(如記事本),在其中鍵入例1-3的“Hello World”程序(注意,注釋部分可以不寫(xiě),它不會(huì)被執(zhí)行,只是為了增加程序的可讀性)。鍵入程序后,點(diǎn)擊記事本菜單文件,選擇保存,在彈出的對(duì)話框中,選擇保存目錄為D:myjava,文件名為FirstApplication.java,保存類(lèi)型最好選為“所有文件”。1.3.4 第一個(gè)應(yīng)用程序(Java Application

16、)2. 編譯進(jìn)入命令提示符狀態(tài):【開(kāi)始】|【所有程序】|【附件】|【命令提示符】。轉(zhuǎn)到Java源文件所在目錄,在本例中,就是FirstApplication.java存放的目錄(在本例中就是轉(zhuǎn)入D:myjava,具體步驟是在命令提示符下輸入“d:”,回車(chē),此時(shí)命令提示符光標(biāo)變?yōu)椤癉:”;接著輸入“cd myjava”,回車(chē),此時(shí)命令提示符光標(biāo)變?yōu)椤癉:myjava”。編譯: 在命令提示符光標(biāo)后輸入javac Hello.java,其中javac是編譯命令,Hello.java是要編譯的源文件名,如下形式,粗體部分由用戶輸入。 D:myjavajavac Hello.java回車(chē),如果編譯沒(méi)有通

17、過(guò),會(huì)給出錯(cuò)誤提示,對(duì)源文件改錯(cuò)后,可再次編譯,直至編譯成功。成功后,命令提示符光標(biāo)停留在D:myjava后,同時(shí)在D:myjava目錄下生成了字節(jié)碼文件FirstApplication.class。1.3.4 第一個(gè)應(yīng)用程序(Java Application)3. 運(yùn)行編譯成功后,用解釋器java運(yùn)行字節(jié)碼文件FirstApplication.class,在命令提示符下轉(zhuǎn)入目錄D:myjava,運(yùn)行D:myjavajava FirstApplication回車(chē)后在命令提示符下顯示一行文本“Hello World!” 。1.3.4 第一個(gè)應(yīng)用程序(Java Application)【例1-4】

18、對(duì)第一個(gè)應(yīng)用程序改進(jìn),輸出字符串“除了時(shí)間,什么也不屬于我”。 1.3.4 第一個(gè)應(yīng)用程序(Java Application)【例1-5】第一個(gè)應(yīng)用程序的改進(jìn),輸出多行文字。 1.3.5 第一個(gè)小程序(Java Applet)【例1-6】 輸出“Hello World!”的小程序。 1.3.5 第一個(gè)小程序(Java Applet)【例1-8】對(duì)第一個(gè)小程序進(jìn)行改進(jìn),輸出多行字符串。1.3.6 Java程序的結(jié)構(gòu)package 自定義包名;import 包名;修飾符 class 類(lèi)名1extends 父類(lèi)名 /注釋 域(屬性、變量) 修飾符 方法名1(參數(shù)表) 修飾符 方法名2(參數(shù)表) cl

19、ass 類(lèi)名2 1.3.6 Java程序的結(jié)構(gòu) 從Java程序結(jié)構(gòu)可以看出Java源程序一般由以下三部分組成:1. package語(yǔ)句:表示本程序所屬的包,可以沒(méi)有,最多1條,如果有,必須放在最前邊,如果沒(méi)有,表示本程序?qū)儆谀J(rèn)包。2. import語(yǔ)句:表示引入其它類(lèi),可以沒(méi)有,也可以是多條,必須放在類(lèi)定義前。3. 類(lèi)定義:至少一個(gè),也可以是多個(gè)。類(lèi)定義是Java源程序的主要部分,編寫(xiě)Java程序就是編寫(xiě)各種類(lèi)的過(guò)程。 1.3.6 Java程序的結(jié)構(gòu)定義類(lèi)的關(guān)鍵字是class,每個(gè)類(lèi)有類(lèi)頭和類(lèi)體兩部分組成。類(lèi)頭部分除了聲明類(lèi)名外,還可以說(shuō)明類(lèi)的繼承性,如例1-4。類(lèi)頭部分還可以定義一些修飾府

20、,例如public、static等。類(lèi)體部分由括起來(lái),通常由兩部分組成,分別描述類(lèi)的屬性和方法。屬性部分也稱(chēng)為域,包括常量、變量的定義等,在例1-3和例1-4中沒(méi)有涉及到,我們?cè)诤罄m(xù)章節(jié)中再作介紹。方法部分是對(duì)方法的定義和實(shí)現(xiàn),方法體也用括起,方法體部分由若干個(gè)結(jié)尾加上;的語(yǔ)句構(gòu)成。如例1-3中的main()和例1-4中的paint()就是兩個(gè)方法。第2章 數(shù)據(jù)運(yùn)算2.1 標(biāo)識(shí)符、保留字和分隔符2.2 數(shù)據(jù)類(lèi)型2.3 運(yùn)算符2.4 輸入輸出初步2.1 標(biāo)識(shí)符、保留字和分隔符2.1.1 標(biāo)識(shí)符2.1.2 保留字2.1.3 分隔符 2.1.1 標(biāo)識(shí)符標(biāo)識(shí)符(identifier)是賦予變量、對(duì)象、

21、類(lèi)或方法的名稱(chēng)。在Java語(yǔ)言中,標(biāo)識(shí)符可以由字母、數(shù)字、下劃線(_)或美元符號(hào)($)組成;標(biāo)識(shí)符必須以字母、下劃線(_)或美元符號(hào)($)開(kāi)始(即不能以數(shù)字開(kāi)始);標(biāo)識(shí)符區(qū)分大小寫(xiě),沒(méi)有規(guī)定最大長(zhǎng)度。因?yàn)镴ava語(yǔ)言使用Unicode字符集,因此,組成標(biāo)識(shí)符的字母和數(shù)字都是廣義的。例如字母不僅僅指英文,也可以是中文的、德文的等。2.1.2 保留字abstractcontinuefloatlongshorttruebooleandefaultFornativestatictrybreakdoublegoto*newsupervoidbytedoIfnullswitchvolatilecaseel

22、seimportpackagesynchronizedwhilecatchextendsimplementsprivatethischarfalseIntprotectedthrowclassfinalinterfacepublicthrowsconst*finallyinstanceofreturntransient*2.1.3 分隔符分隔符是用來(lái)分隔開(kāi)Java程序中的基本語(yǔ)法元素的符號(hào),可以分為注釋、空白符和普通分隔符。1注釋在Java語(yǔ)言中,可以采用三種注釋方式:?jiǎn)涡凶⑨專(zhuān)⑨屝问綖椋?注釋內(nèi)容 段落注釋?zhuān)⑨屝问綖椋?*注釋內(nèi)容*/特殊注釋?zhuān)鹤⑨屝问綖椋?*注釋內(nèi)容*/,這是Java所

23、特有的一種注釋?zhuān)菫橹С諮DK工具javadoc而設(shè)計(jì)的。2空白符空白符包括空格符、回車(chē)符、換行符和制表符等。3普通分隔符普通分隔符各具有確定的語(yǔ)法含義,要按照語(yǔ)法規(guī)定去使用。有如下四種:大括號(hào)():用于定義復(fù)合語(yǔ)句、類(lèi)體、方法體等。分號(hào)(;):添加在語(yǔ)句之后。逗號(hào)(,):用于分隔變量聲明時(shí)的各個(gè)變量和方法的各個(gè)參數(shù)等。冒號(hào)(:):用于標(biāo)號(hào)和語(yǔ)句之間。2.2 數(shù)據(jù)類(lèi)型2.2.1 數(shù)據(jù)類(lèi)型概述2.2.2 常量2.2.3 變量2.2.1 數(shù)據(jù)類(lèi)型概述類(lèi)型(type)是程序設(shè)計(jì)語(yǔ)言中的基本概念,它包括兩部分:取值范圍和在這些值上的操作。定義一個(gè)類(lèi)型就要定義這兩個(gè)部分。數(shù)據(jù)類(lèi)型有基本數(shù)據(jù)類(lèi)型和復(fù)合數(shù)據(jù)

24、類(lèi)型兩種?;緮?shù)據(jù)類(lèi)型是不可再分割的數(shù)據(jù)類(lèi)型,簡(jiǎn)稱(chēng)為基本類(lèi)型或簡(jiǎn)單類(lèi)型。簡(jiǎn)單類(lèi)型代表單值,而不是復(fù)雜的對(duì)象。Java是面向?qū)ο蟮?,而?jiǎn)單數(shù)據(jù)類(lèi)型不是。Java定義了8個(gè)基本數(shù)據(jù)類(lèi)型:字節(jié)型(byte),短整型(short),整型(int),長(zhǎng)整型(long),字符型(char),浮點(diǎn)型(float),雙精度型(double)和布爾型(boolean),這些類(lèi)型可以分為四組:整型:包括byte、short、int和long,它們是有符號(hào)整數(shù)。實(shí)型:包括float和double,它們代表有小數(shù)精度要求的數(shù)值。字符型:包括char,代表字符集的符號(hào),如字母和數(shù)字等。布爾型:包括boolean,表示真

25、、假值。2.2.1 數(shù)據(jù)類(lèi)型概述2.2.2 常量對(duì)于基本數(shù)據(jù)類(lèi)型量,按其取值是否可改變又可分為常量和變量,常量是在整個(gè)程序執(zhí)行過(guò)程中不能變化的量,變量是值可以發(fā)生改變的量。常量和變量可與數(shù)據(jù)類(lèi)型結(jié)合起來(lái)分類(lèi),例如有整型常量、整型變量、浮點(diǎn)常量、浮點(diǎn)變量、字符常量、字符變量等。常量有字面(Literal)常量和符號(hào)常量?jī)煞N。1整型常量Java的整型常量有三種形式:十進(jìn)制、十六進(jìn)制和八進(jìn)制。十進(jìn)制整數(shù):由09的數(shù)字和正、負(fù)號(hào)組成,沒(méi)有前綴。十六進(jìn)制整數(shù):由09的數(shù)字、AF(不分大小寫(xiě),代表1015)的字母和正、負(fù)號(hào)組成。必須以0 x或者0X開(kāi)頭。八進(jìn)制整數(shù):由07的數(shù)字和正、負(fù)號(hào)組成。2.2.2

26、常量2. 實(shí)型常量實(shí)型又叫浮點(diǎn)型,Java的實(shí)型常量有標(biāo)準(zhǔn)和科學(xué)計(jì)數(shù)法兩種表達(dá)方式。標(biāo)準(zhǔn)形式,由09的數(shù)字和小數(shù)點(diǎn)組成??茖W(xué)計(jì)數(shù)法形式:數(shù)字中帶E或者e,數(shù)字后面可以帶后綴F、f或D、d分別表示單精度實(shí)數(shù)和雙精度實(shí)數(shù),浮點(diǎn)數(shù)缺省為雙精度實(shí)數(shù)。2.2.2 常量3. 字符型常量字符類(lèi)型用來(lái)表示單個(gè)字符,字符常量可以是用單引號(hào)括起來(lái)的一個(gè)字符,如a、B、 、=、+等;字符常量也可以是轉(zhuǎn)義字符或者字符對(duì)應(yīng)的Unicode碼;也可以直接把0到65535的整數(shù)作為字符常量。轉(zhuǎn)義字符是一種特殊的字符常量,以反斜杠開(kāi)頭,后面跟一個(gè)或多個(gè)字符。 2.2.2 常量轉(zhuǎn)義字符含義ddd1到3位8進(jìn)制數(shù)據(jù)所表示的字符u

27、xxxx1到4位16進(jìn)制數(shù)據(jù)所表示的字符n回車(chē)r換行 反斜杠字符單引號(hào)字符雙引號(hào)字符t橫向跳到下一制表位置b退格2.2.2 常量4. 字符串常量字符串常量就是用雙引號(hào)括起零個(gè)或者多個(gè)字符。例如: /一個(gè)空字符串 /一個(gè)包含轉(zhuǎn)義字符的字符串,該字符串包含我們青春飛揚(yáng)! /一個(gè)包含漢字的字符串眉飛色舞nThe second line! /一個(gè)包括兩行的字符串在Java中,可以用連接運(yùn)算符(+)把兩個(gè)或多個(gè)字符串常量連接在一起,組成一個(gè)更長(zhǎng)的字符串。5. 布爾常量布爾常量用來(lái)表示真和假,只有兩個(gè)值:true和false,占8位內(nèi)存。 2.2.2 常量6. Java常用數(shù)學(xué)常量方法作用數(shù)值類(lèi)型Math

28、.E自然對(duì)數(shù)edoubleMath.PI圓周率doubleDouble.POSITIVE_INFINITYdouble型的正無(wú)窮數(shù)doubleDouble.NEGATIVE_INFINITYdouble型的負(fù)無(wú)窮數(shù)double2.2.3 變量在程序運(yùn)行時(shí),有些數(shù)據(jù)的值會(huì)被改變,在使用前必須被臨時(shí)存儲(chǔ),這就需要用于標(biāo)識(shí)數(shù)據(jù)的存儲(chǔ)單元,也就是變量。變量名是一個(gè)合法的標(biāo)識(shí)符,由字母、數(shù)字、下劃線和$組成,變量名區(qū)分大小寫(xiě)。變量的類(lèi)型可以是我們所講到的數(shù)據(jù)類(lèi)型中的任意一種。Java中的變量在使用前必須被聲明,指明變量的數(shù)據(jù)類(lèi)型和作用域,聲明時(shí)可以對(duì)其賦初值,如果不賦初值,不同類(lèi)型的變量會(huì)有不同的默認(rèn)的

29、初值。變量的聲明格式為:type identifier=value,type identifier=value2.2.3 變量1.整型變量整型變量按照所占位數(shù)分為:byte、short、int和long四種類(lèi)型。 2. 實(shí)型變量實(shí)型變量按長(zhǎng)度分為:?jiǎn)尉雀↑c(diǎn)型float和雙精度浮點(diǎn)型double。3. 字符型變量字符型變量類(lèi)型為char,所占位數(shù)為16位,取值范圍為065535。4字符串變量在Java語(yǔ)言中,字符串變量是對(duì)象,是復(fù)合類(lèi)型。有兩種類(lèi)型的字符串變量:String類(lèi)和StringBuffer類(lèi)。String類(lèi)是常量類(lèi),所有字符串常量都是String類(lèi)的對(duì)象。StringBuffer類(lèi)

30、是字符串緩沖區(qū)。5. 布爾型變量布爾型變量類(lèi)型為bollean,占8位內(nèi)存,只有true和false兩個(gè)值。2.3 運(yùn)算符2.3.1 算術(shù)運(yùn)算符2.3.2 關(guān)系運(yùn)算符2.3.3 布爾運(yùn)算符2.3.4 賦值運(yùn)算符2.3.5 位運(yùn)算符2.3.6 條件運(yùn)算符2.3.7 字符串運(yùn)算符2.3.8 類(lèi)型轉(zhuǎn)換2.3.9 優(yōu)先級(jí)和結(jié)合性2.3.1 算術(shù)運(yùn)算符操作數(shù)運(yùn)算符運(yùn)算示例一元+取原值+x-求反值-x+自增x+, +x-自減x-, -x二元+加x+y-減x-y*乘x*y/除x/y%取模x%y2.3.2 關(guān)系運(yùn)算符運(yùn)算符運(yùn)算示例小于ab,45, a小于ab, 56, b6=小于等于a=b, 5=5, a=大

31、于等于a=b, 5=5, a=8=等于a=b, 5=6, a=8!=不等于a!=b, 5!=5, a!=82.3.3 布爾運(yùn)算符運(yùn)算符運(yùn)算示例運(yùn)算規(guī)則!邏輯非!aa真時(shí)為假,a假時(shí)為真&簡(jiǎn)潔與a&ba,b都真時(shí)才為真|簡(jiǎn)潔或a|ba,b都假時(shí)才為假&非簡(jiǎn)潔與a&ba,b都真時(shí)才為真|非簡(jiǎn)潔或a|ba,b都假時(shí)才為假異或abab真假不同時(shí)為真2.3.4 賦值運(yùn)算符運(yùn)算符運(yùn)算示例運(yùn)算規(guī)則!邏輯非!aa真時(shí)為假,a假時(shí)為真&簡(jiǎn)潔與a&ba,b都真時(shí)才為真|簡(jiǎn)潔或a|ba,b都假時(shí)才為假&非簡(jiǎn)潔與a&ba,b都真時(shí)才為真|非簡(jiǎn)潔或a|ba,b都假時(shí)才為假異或abab真假不同時(shí)為真2.3.5 位運(yùn)算符運(yùn)

32、算符運(yùn)算示例按位取反133=122&按位與1&1=1,1&0=0,0&1=0,0&0=0|按位或1|1=1,1|0=1,0|1=1,0|0=0按位異或11=0,10=1,01=1,00=0左移16算術(shù)右移161=8邏輯右移161=82.3.6 條件運(yùn)算符條件運(yùn)算符是一種三元運(yùn)算符,一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3;表達(dá)式1的值為布爾值,先計(jì)算表達(dá)式1,如果值為true,計(jì)算并返回表達(dá)式2的值,否則計(jì)算并返回表達(dá)式3的值。例如:max=(ab)?a:b;將a和b中值較大的那一個(gè)賦給max。2.3.7 字符串運(yùn)算符運(yùn)算符“+”可以將兩個(gè)或多個(gè)字符串連接,也可以將字符串和其他類(lèi)對(duì)象連接起來(lái),

33、在連接時(shí),其他類(lèi)對(duì)象也轉(zhuǎn)換成字符串。另外,“+=”把兩個(gè)字符串連接起來(lái),并把結(jié)果放到第一個(gè)字符串里。在本章的例子中,在輸出多項(xiàng)內(nèi)容時(shí),就是使用“+”將各項(xiàng)連接起來(lái)的。2.3.8 類(lèi)型轉(zhuǎn)換表達(dá)式是由操作數(shù)和運(yùn)算符按一定的語(yǔ)法規(guī)則組成的符號(hào)序列。每個(gè)表達(dá)式都會(huì)產(chǎn)生一定的值,稱(chēng)為表達(dá)式的值。一個(gè)常量或一個(gè)變量是最簡(jiǎn)單的表達(dá)式,用運(yùn)算符和表達(dá)式連接起來(lái)組成的符號(hào)序列是表達(dá)式。在一個(gè)表達(dá)式中可能有不同類(lèi)型的數(shù)據(jù)進(jìn)行混合運(yùn)算,這是被允許的,在運(yùn)算時(shí),可以進(jìn)行類(lèi)型轉(zhuǎn)換。所謂類(lèi)型轉(zhuǎn)換就是將一種數(shù)據(jù)類(lèi)型的常數(shù)或變量轉(zhuǎn)換到另外的一種數(shù)據(jù)類(lèi)型。類(lèi)型轉(zhuǎn)換有兩種:自動(dòng)類(lèi)型轉(zhuǎn)換(或稱(chēng)隱含類(lèi)型轉(zhuǎn)換)和強(qiáng)制類(lèi)型轉(zhuǎn)換。2.3.

34、8 類(lèi)型轉(zhuǎn)換1. 自動(dòng)類(lèi)型轉(zhuǎn)換運(yùn)算數(shù)1類(lèi)型運(yùn)算數(shù)2類(lèi)型結(jié)果類(lèi)型byte或shortIntintbyte或short或intLonglongbyte或short或int或longFloatfloatbyte或short或int或long或floatDoubledoublecharIntint2.3.8 類(lèi)型轉(zhuǎn)換2. 強(qiáng)制類(lèi)型轉(zhuǎn)換高級(jí)數(shù)據(jù)要轉(zhuǎn)換為低級(jí)數(shù)據(jù)時(shí),需要進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換,強(qiáng)制類(lèi)型轉(zhuǎn)換的格式是:(數(shù)據(jù)類(lèi)型)變量名經(jīng)過(guò)強(qiáng)制類(lèi)型轉(zhuǎn)換,將得到一個(gè)在“()”中聲明的數(shù)據(jù)類(lèi)型的數(shù)據(jù),該數(shù)據(jù)是從指定變量所包含的數(shù)據(jù)轉(zhuǎn)換而來(lái)的。值得注意的是,指定變量本身不會(huì)發(fā)生任何變化。例如:long x;int y;y

35、=(int)(x+1);將占用位數(shù)較長(zhǎng)的數(shù)據(jù)轉(zhuǎn)化成占用位數(shù)較短的數(shù)據(jù)時(shí),可能會(huì)造成數(shù)據(jù)超出較短數(shù)據(jù)類(lèi)型的取值范圍,造成“溢出”。2.3.9 優(yōu)先級(jí)和結(jié)合性優(yōu)先級(jí)運(yùn)算符結(jié)合性高低. ( )從左至右+ - ! 從右至左New (type)* / %從左至右+ -從左至右 從左至右 =從左至右= !=從左至右&從左至右從左至右|從左至右&從左至右|從左至右?:從右至左= += -= *= /= %= =從右至左&= |= = =從右至左2.4 輸入輸出初步2.4.1 輸出2.4.2 輸入2.4.1 輸出System.out.println()在程序中可以把常量、變量或表達(dá)式的值輸出到屏幕上。 pri

36、ntln方法可以有0個(gè)或1個(gè)參數(shù),參數(shù)的類(lèi)型可以是char、byte、int、boolean、float、double、String和Object(對(duì)象)類(lèi)型,這些類(lèi)型的數(shù)據(jù)在轉(zhuǎn)換成相應(yīng)的字符串后輸出。如果是0個(gè)參數(shù),則輸出一個(gè)回車(chē)換行,即光標(biāo)移到下一行行首;如果有1個(gè)參數(shù),則輸出相應(yīng)內(nèi)容后,輸出一個(gè)回車(chē)換行。如果輸出內(nèi)容后,不需要回車(chē)換行,可以使用System.out.print()進(jìn)行輸出,該方法需要1個(gè)參數(shù),參數(shù)類(lèi)型和println相同,輸出參數(shù)的值后不輸出回車(chē)換行。2.4.2 輸入在Java語(yǔ)言中,沒(méi)有和System.out.print()對(duì)應(yīng)的輸入方法,只有一個(gè)System.in.r

37、ead()方法用于從鍵盤(pán)輸入byte類(lèi)型的數(shù)據(jù)。1. System.in.read()方法2. 用輸入流實(shí)現(xiàn)輸入3. 給main()方法傳遞參數(shù)第3章 程序邏輯3.1 程序結(jié)構(gòu)的基本類(lèi)型3.2 順序結(jié)構(gòu)3.3 分支結(jié)構(gòu)3.4 循環(huán)結(jié)構(gòu)3.5 其他流程控制語(yǔ)句3.6 方法3.1 程序結(jié)構(gòu)的基本類(lèi)型3.2 順序結(jié)構(gòu)3.2.1 語(yǔ)句3.2.2 塊 3.2.1 語(yǔ)句Java語(yǔ)言中,語(yǔ)句是程序最基本且最重要的組成部分。1. 語(yǔ)句最大的特點(diǎn):以分號(hào)結(jié)束。如: int i ;2. Java語(yǔ)言中,常用的有下面這幾類(lèi)語(yǔ)句:聲明語(yǔ)句 如:char a=A;表達(dá)式語(yǔ)句 如:i+; System.out.print

38、ln(“Hello!”);分支語(yǔ)句 如:if-else語(yǔ)句、switch語(yǔ)句循環(huán)語(yǔ)句 如:while語(yǔ)句、do-while語(yǔ)句及for語(yǔ)句跳轉(zhuǎn)語(yǔ)句 如:break; continue; 異常語(yǔ)句 如: try-catch-finally語(yǔ)句 空語(yǔ)句 如: ; 3.2.2 塊 塊是用一對(duì)花括號(hào)“”將零個(gè)或多個(gè)語(yǔ)句括起來(lái),就構(gòu)成一個(gè)塊(也稱(chēng)復(fù)合語(yǔ)句)。它也是Java程序的組成部分。 【例3-1】塊的使用。1 public class UseBlock2 3 public static void main(String args)4 5 int a=5;6 a+=8;7 /開(kāi)始一個(gè)塊8 int b=

39、6; /變量b只能在這個(gè)塊內(nèi)使用9 b=b+a;10 System.out.println(a+ +b);11 12 13 3.3 分支結(jié)構(gòu)3.3.1 if-else語(yǔ)句3.3.2 分支嵌套3.3.3 switch語(yǔ)句3.3.1 if-else語(yǔ)句if-else語(yǔ)句根據(jù)條件表達(dá)式這個(gè)判斷條件的值為真或?yàn)榧賮?lái)執(zhí)行兩種不同操作中的一種操作。語(yǔ)法格式如下: if (條件表達(dá)式) 語(yǔ)句塊1; else 語(yǔ)句塊2; 3.3.2 分支嵌套分支嵌套是指嵌套的if-else結(jié)構(gòu)。嵌套的if-else結(jié)構(gòu)是通過(guò)在if-else的語(yǔ)句塊中再放置if-else結(jié)構(gòu)來(lái)實(shí)現(xiàn)對(duì)多種情況的選擇。其形式如下: 格式(一) i

40、f(條件表達(dá)式1) 語(yǔ)句塊1 else if(條件表達(dá)式2) 語(yǔ)句塊2 else 語(yǔ)句塊n; 格式(二) if(條件表達(dá)式1) 語(yǔ)句塊1 else if(條件表達(dá)式2) 語(yǔ)句塊2 else if() else 語(yǔ)句塊n; 3.3.3 switch語(yǔ)句switch語(yǔ)句的一般格式如下:switch(表達(dá)式) case 判斷值1:語(yǔ)句塊1;break; case 判斷值2:語(yǔ)句塊2;break;case 判斷值3:語(yǔ)句塊3;break; case 判斷值n:語(yǔ)句塊n;break; default:語(yǔ)句塊n+1其中,表達(dá)式必須是整形或字符型;判斷值必須是常數(shù),而不能是變量或表達(dá)式。各case后面的常量

41、不能有相同的值。3.4 循環(huán)結(jié)構(gòu)3.4.1 while語(yǔ)句3.4.2 do-while語(yǔ)句3.4.3 for語(yǔ)句3.4.4 循環(huán)嵌套3.4.1 while語(yǔ)句while語(yǔ)句的一般語(yǔ)法格式為: while(條件表達(dá)式) 循環(huán)體對(duì)該語(yǔ)句的解釋?zhuān)簵l件表達(dá)式的返回值為布爾型。循環(huán)體可以是單個(gè)語(yǔ)句,也可以是多個(gè)語(yǔ)句組成的語(yǔ)句塊。while語(yǔ)句的執(zhí)行過(guò)程是:先判斷條件表達(dá)式的值,若為真,則執(zhí)行循環(huán)體,循環(huán)體內(nèi)一般有迭代部分(循環(huán)重復(fù)做的操作)和循環(huán)變量發(fā)生變化的部分,循環(huán)體執(zhí)行完后,再無(wú)條件的轉(zhuǎn)向條件表達(dá)式去做計(jì)算和判斷;當(dāng)計(jì)算出條件表達(dá)式為假時(shí),則跳出循環(huán)體,執(zhí)行while語(yǔ)句后面的語(yǔ)句。若首次執(zhí)行wh

42、ile語(yǔ)句時(shí),作為循環(huán)條件的條件表達(dá)式的值為false,則循環(huán)體一次也未執(zhí)行,即while語(yǔ)句循環(huán)體最少執(zhí)行次數(shù)為0次。3.4.2 do-while語(yǔ)句do-while語(yǔ)句和while語(yǔ)句很相似。while語(yǔ)句在執(zhí)行循環(huán)體前先檢查條件表達(dá)式(循環(huán)條件),即循環(huán)體未執(zhí)行之前進(jìn)行測(cè)試。但有些情況下,不管條件表達(dá)式的值是true還是false,都希望把循環(huán)體至少執(zhí)行一次,那么就應(yīng)當(dāng)使用do-while循環(huán)語(yǔ)句。do-while語(yǔ)句在執(zhí)行循環(huán)體后測(cè)試循環(huán)條件,因此循環(huán)體至少執(zhí)行一次。do-while語(yǔ)句的一般語(yǔ)法格式為: do 循環(huán)體 while(條件表達(dá)式);3.4.3 for語(yǔ)句for語(yǔ)句是循環(huán)語(yǔ)

43、句中功能最強(qiáng)、使用最廣的語(yǔ)句,它的用法也比較靈活。 for語(yǔ)句的一般語(yǔ)法格式如下: for(表達(dá)式1; 表達(dá)式2; 表達(dá)式3) 循環(huán)體“表達(dá)式1(循環(huán)變量賦初值)”、“表達(dá)式2(循環(huán)條件,是返回布爾值的條件表達(dá)式,用來(lái)判斷循環(huán)是否繼續(xù))”、“表達(dá)式3(循環(huán)變量增量、用來(lái)修改循環(huán)變量,改變循環(huán)條件)”都是可選項(xiàng),即可以省略,但“;”不能省略。該語(yǔ)句的執(zhí)行過(guò)程如下:首先計(jì)算表達(dá)式1,完成必要的初始化工作;再判斷表達(dá)式2的值,若為真,則執(zhí)行循環(huán)體,執(zhí)行完循環(huán)體后再返回表達(dá)式3,計(jì)算并修改循環(huán)條件。這樣for循環(huán)的當(dāng)次循環(huán)就結(jié)束了。第二次循環(huán)從計(jì)算并判斷表達(dá)式2開(kāi)始,若該表達(dá)式的值仍為真,則繼續(xù)循環(huán);

44、否則,跳出并結(jié)束整個(gè)for語(yǔ)句的循環(huán),執(zhí)行for語(yǔ)句下面的其他語(yǔ)句。3.4.4 循環(huán)嵌套循環(huán)嵌套是指在某個(gè)循環(huán)語(yǔ)句中又包含了另一個(gè)循環(huán)語(yǔ)句,也稱(chēng)多重循環(huán),外面的循環(huán)語(yǔ)句稱(chēng)為“外層循環(huán)”,外層循環(huán)的循環(huán)體內(nèi)的循環(huán)稱(chēng)為“內(nèi)層循環(huán)”。3.5 其他流程控制語(yǔ)句3.5.1 標(biāo)號(hào)3.5.2 break語(yǔ)句3.5.3 continue語(yǔ)句3.5.1 標(biāo)號(hào)標(biāo)號(hào)是一個(gè)標(biāo)識(shí)符,用于給某一程序塊一個(gè)名字。常用格式如下:label:程序塊label是標(biāo)號(hào)名,用標(biāo)識(shí)符表示。標(biāo)號(hào)名用冒號(hào)與其后面的語(yǔ)句(塊)分開(kāi)。 3.5.2 break語(yǔ)句break語(yǔ)句分為帶標(biāo)號(hào)和不帶標(biāo)號(hào)兩種格式:格式1: break ;格式2: br

45、eak 標(biāo)號(hào);對(duì)該語(yǔ)句的解釋?zhuān)翰粠?biāo)號(hào)的break語(yǔ)句從它所在的switch分支或最內(nèi)層的循環(huán)體中跳轉(zhuǎn)出來(lái),執(zhí)行switch或循環(huán)體后面的語(yǔ)句。帶標(biāo)號(hào)的break語(yǔ)句的標(biāo)號(hào)應(yīng)該標(biāo)志一個(gè)語(yǔ)句塊,并且該break語(yǔ)句包含在該語(yǔ)句塊中。執(zhí)行break語(yǔ)句時(shí),從標(biāo)號(hào)所標(biāo)記的語(yǔ)句塊中跳出來(lái),流程直接轉(zhuǎn)到標(biāo)號(hào)語(yǔ)句塊后面的語(yǔ)句。break語(yǔ)句一般與if語(yǔ)句一起使用,在滿足一定的條件時(shí)執(zhí)行break語(yǔ)句跳出。3.5.3 continue語(yǔ)句continue語(yǔ)句只用在for、while和do-while等循環(huán)體中,它的功能是:使得程序跳過(guò)程循環(huán)體中continue語(yǔ)句后剩下的部分,終止當(dāng)前這一次循環(huán)的執(zhí)行,直接

46、進(jìn)行下一次循環(huán)條件的判斷。continue語(yǔ)句分為不帶標(biāo)號(hào)和帶標(biāo)號(hào)兩種形式: 不帶標(biāo)號(hào)的continue語(yǔ)句:continue ; 帶標(biāo)號(hào)的continue語(yǔ)句: continue 標(biāo)號(hào);不帶標(biāo)號(hào)的continue的功能:無(wú)條件地使流程轉(zhuǎn)移到循環(huán)語(yǔ)句的下一次循環(huán)條件判定部分。帶標(biāo)號(hào)的continue的功能:功能:無(wú)條件地使流程轉(zhuǎn)移到帶標(biāo)號(hào)的循環(huán)語(yǔ)句的下一次循環(huán)條件判定部分。continue語(yǔ)句常和if語(yǔ)句放在一起使用,在滿足一定的條件時(shí)執(zhí)行continue語(yǔ)句。 3.6 方法3.6.1 方法的定義3.6.2 方法的調(diào)用3.6.3 方法的重載3.6.4 方法的嵌套和遞歸3.6.5 方法和變量的作

47、用域3.6.1 方法的定義方法是描述實(shí)現(xiàn)某個(gè)特定功能所需的數(shù)據(jù)及進(jìn)行的運(yùn)算和操作。方法是由方法頭和方法體組成。方法定義的形式如下:修飾符1 修飾符2 返回值類(lèi)型 方法名(形式參數(shù)列表) throws 異常列表 方法體形式參數(shù)列表的格式為:形式參數(shù)類(lèi)型1 形式參數(shù)名1,形式參數(shù)類(lèi)型2 形式參數(shù)名2, 形式參數(shù)列表允許將參數(shù)值傳遞到方法中。列舉的參數(shù)由逗號(hào)隔開(kāi),每個(gè)參數(shù)包含一個(gè)類(lèi)型和一個(gè)標(biāo)識(shí)符名。方法名可以是任何合法標(biāo)識(shí)符,當(dāng)然最好有一定的實(shí)際意義。后面的小括號(hào)( )是方法的標(biāo)志,不能省略。方法的修飾符項(xiàng)是可選的,也可以沒(méi)有,可以是多個(gè)。方法的返回值類(lèi)型是必須的(構(gòu)造方法除外)。 3.6.2 方法

48、的調(diào)用一般而言,有返回值的方法調(diào)用形式為表達(dá)式形式,即可以在允許表達(dá)式出現(xiàn)的地方使用方法調(diào)用。若方法無(wú)返回值(void類(lèi)型),方法調(diào)用的形式一般為表達(dá)式語(yǔ)句的形式,即調(diào)用方法的形式為單獨(dú)加分號(hào)的語(yǔ)句。3.6.3 方法的重載Java語(yǔ)言允許在一個(gè)類(lèi)中定義幾個(gè)同名的方法,只要這些方法具有不同的參數(shù)集合,即方法參數(shù)的個(gè)數(shù)、類(lèi)型和順序不同,這就稱(chēng)為方法的重載。在調(diào)用一個(gè)重載方法時(shí),Java編譯器通過(guò)檢查調(diào)用語(yǔ)句中方法參數(shù)的個(gè)數(shù)、類(lèi)型和順序的不同,來(lái)調(diào)用合適的方法。方法重載一般用來(lái)創(chuàng)建對(duì)不同類(lèi)型的數(shù)據(jù)進(jìn)行類(lèi)似操作的同名方法。如Java自定義的Math類(lèi)中的方法abs()、max()和min()等都是重載

49、的,它們具有double、float、int、long等參數(shù)和返回值類(lèi)型的重載方法。3.6.4 方法的嵌套和遞歸在解決較為復(fù)雜的問(wèn)題時(shí),用到方法調(diào)用的地方比較多。如果在調(diào)用的一個(gè)方法的方法體中又調(diào)用了另外的方法,這就被稱(chēng)為方法的嵌套調(diào)用,也稱(chēng)方法的嵌套。方法嵌套中更為特別的是,如果在被調(diào)用一個(gè)方法的方法體中又調(diào)用一個(gè)方法,而這個(gè)方法正是它自身,即:如果在被調(diào)用的一個(gè)方法體中又調(diào)用它自身的方法嵌套稱(chēng)為方法的遞歸。3.6.5 方法和變量的作用域所謂方法和變量的作用域就是指它們?cè)诔绦蛑锌梢员皇梗ㄒ┯玫姆秶?。一些方法和變量可以在整個(gè)程序中使用,但有些方法和變量只能在程序的有限部分段中使用。1. 變量

50、的作用域變量按其作用域的大小可以分為局部變量和實(shí)例變量或類(lèi)變量。局部變量:是定義在塊內(nèi)、方法體內(nèi)的變量。這種變量的作用域是以塊和方法為單位的,僅在定義該變量的塊內(nèi)或方法體內(nèi)有效,而且要先定義賦值,然后再使用,即不允許超前使用。局部變量在方法每次被調(diào)用時(shí)重新初始化,與上次的調(diào)用無(wú)關(guān)。因?yàn)榫植孔兞吭诓檎視r(shí)首先被查找,因此若某一局部變量與類(lèi)的實(shí)例變量名或類(lèi)變量相同時(shí),則該實(shí)例變量或類(lèi)變量在方法體內(nèi)被暫時(shí)“屏蔽”起來(lái),只有退出這個(gè)方法后,實(shí)例變量或類(lèi)變量才起作用。3.6.5 方法和變量的作用域2. 方法的作用域用static修飾符修飾的修飾的方法稱(chēng)為靜態(tài)方法,又叫做類(lèi)方法。不用static修飾符修飾的

51、方法,則稱(chēng)為實(shí)例方法。實(shí)例方法和類(lèi)方法在整個(gè)類(lèi)內(nèi)都是可見(jiàn)的,即都是可以被引用的。類(lèi)方法的本質(zhì)是它屬于整個(gè)類(lèi),不屬于某個(gè)實(shí)例(具體的對(duì)象),所以只要聲明了類(lèi),它的類(lèi)方法就存在了,就可以調(diào)用;而實(shí)例方法則屬于每個(gè)實(shí)例對(duì)象,只能在類(lèi)的實(shí)例和子類(lèi)的實(shí)例中調(diào)用。第4章 面向?qū)ο蟮某绦蛟O(shè)計(jì)4.1 類(lèi)4.2 類(lèi)的繼承4.3 接口4.4包4.1 類(lèi)4.1.1 類(lèi)的定義4.1.2 對(duì)象4.1.3 構(gòu)造方法4.1.4類(lèi)的成員和修飾符4.1.1 類(lèi)的定義類(lèi)就是具有一組相同屬性和行為的對(duì)象。在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,建立這種抽象的類(lèi),是我們進(jìn)行程序設(shè)計(jì)的基礎(chǔ)。Java中使用class這個(gè)關(guān)鍵字來(lái)定義一個(gè)類(lèi),使用數(shù)據(jù)成員

52、來(lái)描述一個(gè)類(lèi)的屬性,使用方法來(lái)描述一個(gè)類(lèi)的行為。在Java語(yǔ)言中,用戶自己定義一個(gè)類(lèi)的一般形式為:class 用戶自己定義的類(lèi)名 數(shù)據(jù)成員 方法可以看到,類(lèi)的聲明是由類(lèi)說(shuō)明和類(lèi)實(shí)體兩部分組成。類(lèi)說(shuō)明部分由關(guān)鍵字class與類(lèi)名組成。類(lèi)實(shí)體是類(lèi)聲明中花括號(hào)所括起來(lái)的部分,它由成員變量和方法組成,是類(lèi)的主題部分。4.1.2 對(duì)象類(lèi)是對(duì)象的模板,對(duì)象是通過(guò)類(lèi)的實(shí)例化來(lái)創(chuàng)建的。要?jiǎng)?chuàng)建新對(duì)象,需要使用Java中的new關(guān)鍵字,創(chuàng)建對(duì)象的一般形式為:類(lèi)名 對(duì)象變量new 類(lèi)名(參數(shù)1,參數(shù)2,);或者類(lèi)名 對(duì)象變量;對(duì)象變量new 類(lèi)名(參數(shù)1,參數(shù)2,);new這個(gè)關(guān)鍵字用來(lái)創(chuàng)建類(lèi)的實(shí)例,也就是對(duì)象。當(dāng)

53、使用new的時(shí)候,實(shí)際上是在完成以下幾件事情:(1) 首先使用類(lèi)的模板創(chuàng)建了一個(gè)對(duì)象(2) 接著為這個(gè)對(duì)象分配內(nèi)存空間(3) 最后執(zhí)行由類(lèi)模板中所定義的構(gòu)造方法4.1.3 構(gòu)造方法構(gòu)造方法的實(shí)質(zhì)是用來(lái)進(jìn)行對(duì)象數(shù)據(jù)的初始化,它必須和定義它的類(lèi)使用完全相同的名字。構(gòu)造方法可以被重載,從而更易于用不同的數(shù)據(jù)值來(lái)構(gòu)造對(duì)象。為Circle類(lèi)定義構(gòu)造方法如下:Circle ( double r ) / 帶參數(shù)的構(gòu)造方法 radius= r; Circle ( ) / 默認(rèn)的構(gòu)造方法 radius=1.0;4.1.4類(lèi)的成員和修飾符1. static修飾符關(guān)鍵字static可以用來(lái)修飾類(lèi)的成員變量或者方法,

54、使它們成為靜態(tài)成員。(1)靜態(tài)方法當(dāng)一個(gè)類(lèi)被static修飾符修飾時(shí),它是一個(gè)靜態(tài)方法,也稱(chēng)為類(lèi)方法??梢杂萌缦聝煞N方法使用靜態(tài)方法,它們的作用是相同的。類(lèi)名.方法名()類(lèi)對(duì)象.方法名()(2)靜態(tài)變量靜態(tài)變量與靜態(tài)方法類(lèi)似,所有此類(lèi)的實(shí)例共享此靜態(tài)變量,也就是說(shuō)在類(lèi)裝載時(shí),只分配一塊存儲(chǔ)空間,所有此類(lèi)的對(duì)象都可以操控此塊存儲(chǔ)空間,不同類(lèi)對(duì)象訪問(wèn)的靜態(tài)變量是同一個(gè)。 4.1.4類(lèi)的成員和修飾符2. final修飾符final關(guān)鍵字的意思是最終,它有三個(gè)用途,(1) 用來(lái)修飾成員變量。這樣的成員變量被成為最終成員變量。最終成員變量一般在聲明時(shí)進(jìn)行初始化,一旦最終成員變量被賦值,那么它在整個(gè)成員執(zhí)

55、行過(guò)程中不能改變。(2) 用來(lái)修飾類(lèi),被final所修飾的類(lèi),不能被繼承,也就是說(shuō),它沒(méi)有子類(lèi)。(3) 用來(lái)修飾方法,被final所修飾的方法不能被更改,也就是說(shuō),不能被子類(lèi)重載。3. abstract修飾符abstract修飾符可應(yīng)用于類(lèi)和方法 4.1.4類(lèi)的成員和修飾符4. public修飾符public的意思就是公開(kāi)的,也就是說(shuō)如果一個(gè)類(lèi)被修飾為public,那么這個(gè)類(lèi)就是公共類(lèi),公共類(lèi)不僅可以供它所在包中的其他類(lèi)使用(有關(guān)于包的概念會(huì)在以后講到),也可以讓其他包中的類(lèi)使用。5. private修飾符private的意思就是私有的,也就說(shuō),假如有一些類(lèi)的成員不想讓別的類(lèi)來(lái)訪問(wèn),我們就可以

56、把它們?cè)O(shè)為私有的,使用private這個(gè)關(guān)鍵字來(lái)修飾。 6. protected修飾符protected的意思就是受保護(hù)的,使用protected關(guān)鍵修飾的成員變量和方法,可以被類(lèi)本身、子類(lèi)或者包中的方法可以訪問(wèn),而對(duì)于其他類(lèi)沒(méi)有訪問(wèn)權(quán)限。4.2 類(lèi)的繼承4.2.1 類(lèi)繼承的實(shí)現(xiàn)4.2.2 抽象類(lèi)和抽象方法4.2.1 類(lèi)繼承的實(shí)現(xiàn)1. 類(lèi)繼承Java中的繼承使通過(guò)使用extends關(guān)鍵字來(lái)實(shí)現(xiàn)的,定義繼承的形式為:Class 類(lèi)名 extends 父類(lèi)2.類(lèi)的成員覆蓋在類(lèi)的繼承中,如果子類(lèi)新增的成員名與父類(lèi)成員相同,則稱(chēng)為成員覆蓋。(1) 成員變量的覆蓋如果子類(lèi)中定義了和父類(lèi)中同名的變量,那么

57、父類(lèi)中的變量就被隱藏起來(lái)了。直接使用的是子類(lèi)的變量,但父類(lèi)的變量仍然占據(jù)空間,可以通過(guò)super或父類(lèi)名來(lái)訪問(wèn)。(2) 成員方法覆蓋除了成員變量可以被覆蓋以外,子類(lèi)也可以定義與父類(lèi)同名的方法,實(shí)現(xiàn)對(duì)父類(lèi)方法的覆蓋。4.3 接口4.3.1 接口的定義4.3.2 接口的實(shí)現(xiàn)4.3.3 接口的繼承4.3.4 接口的多態(tài)4.3.1 接口的定義在Java語(yǔ)言中,使用關(guān)鍵字interface來(lái)定義接口,接口和類(lèi)的結(jié)構(gòu)類(lèi)似,也可以通過(guò)extends繼承其他接口。格式如下:interface 接口名 extends 父接口名1,父接口名2,通過(guò)以上定義可以看到,與類(lèi)相比,接口有一些特點(diǎn):(1) 在Java中,

58、類(lèi)不能實(shí)現(xiàn)多重繼承,而接口可以實(shí)現(xiàn),通過(guò)在extends后面的多個(gè)接口來(lái)定義。(2) 所有的類(lèi)都是繼承于Object,Object類(lèi)是所有類(lèi)的最高層;而接口允許沒(méi)有父接口,即接口不存在最高層。(3) 接口中的方法只能被聲明為public和abstract,如果不聲明,則默認(rèn)為public abstract;接口中的成員變量只能用public、static和final來(lái)定義,如果不聲明,則默認(rèn)為public static final。(4) 由于接口中的方法都是abstract方法,所以接口中的方法是沒(méi)有方法體的。 4.3.2 接口的實(shí)現(xiàn)接口的實(shí)現(xiàn)使用以下格式:class 類(lèi)名 implemen

59、ts 接口名1,接口名2,其中,在類(lèi)中使用implements關(guān)鍵字實(shí)現(xiàn)接口,而且可以實(shí)現(xiàn)多個(gè)接口;由于接口中定義的方法都是抽象方法,如果實(shí)現(xiàn)接口的類(lèi)不是抽象類(lèi),那么必須要實(shí)現(xiàn)指定接口的所有抽象方法;抽象方法在實(shí)現(xiàn)時(shí)要設(shè)定為public屬性,否則會(huì)產(chǎn)生訪問(wèn)權(quán)限錯(cuò)誤。4.3.3 接口的繼承接口也可以通過(guò)extends關(guān)鍵字繼承其他接口。子接口將繼承父接口中所有的變量和抽象方法。此時(shí),實(shí)現(xiàn)子接口的非抽象類(lèi)不僅需要實(shí)現(xiàn)子接口的抽象方法,而且還要實(shí)現(xiàn)繼承來(lái)的抽象方法,不允許存在未被實(shí)現(xiàn)的接口方法。4.3.4 接口的多態(tài)由于接口中所定義的為抽象方法,因此接口的使用可以使得方法的描述說(shuō)明和方法功能的實(shí)現(xiàn)分

60、開(kāi)考慮,這樣有助于降低程序的復(fù)雜性,使程序設(shè)計(jì)靈活,便于擴(kuò)充修改,這也是Java面向程序的設(shè)計(jì)方法中多態(tài)特性的體現(xiàn)。4.4包4.4.1 創(chuàng)建包4.4.2 引用Java定義的包4.4.3 自定義包4.4.1 創(chuàng)建包Java的應(yīng)用程序接口API是以包的形式提供的,每個(gè)包中包含有大量相關(guān)的類(lèi)、接口和異常。程序設(shè)計(jì)者不需要從頭編寫(xiě)程序的,可以充分利用API中所提供的大量資源,高效快捷地開(kāi)發(fā)出應(yīng)用程序。1.java.langjava.lang是Java語(yǔ)言的核心包,有Java程序所需要的最基本的類(lèi)和接口,包括Object類(lèi)、基本數(shù)據(jù)類(lèi)型包裝類(lèi)、數(shù)學(xué)類(lèi)、異常處理類(lèi)、線程類(lèi)、字符處理類(lèi)。系統(tǒng)與運(yùn)行類(lèi)和類(lèi)操作

溫馨提示

  • 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)論