Java基本程序結(jié)構(gòu)_第1頁(yè)
Java基本程序結(jié)構(gòu)_第2頁(yè)
Java基本程序結(jié)構(gòu)_第3頁(yè)
Java基本程序結(jié)構(gòu)_第4頁(yè)
Java基本程序結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1第三章第三章 JavaJava基本程序結(jié)構(gòu)基本程序結(jié)構(gòu)3 31 Java1 Java應(yīng)用程序結(jié)構(gòu)應(yīng)用程序結(jié)構(gòu)3 32 Java2 Java數(shù)據(jù)類型數(shù)據(jù)類型3 33 Java3 Java常量和變量常量和變量3 34 Java4 Java運(yùn)算符運(yùn)算符3 35 Java5 Java流程結(jié)構(gòu)流程結(jié)構(gòu)3 36 Java6 Java鍵盤輸入鍵盤輸入3 37 Java7 Java數(shù)組數(shù)組3 38 foreach8 foreach循環(huán)循環(huán)23 31 Java1 Java應(yīng)用程序結(jié)構(gòu)應(yīng)用程序結(jié)構(gòu)package 包名;修飾符 類名 繼承 父類名 執(zhí)行接口名 類的變量定義類的構(gòu)造方法定義類的方法定義Java的程序

2、,除了類是必須的,其它任何項(xiàng)都可以沒有。無法給出一個(gè)通用的Java程序結(jié)構(gòu)模板,下面,給出一個(gè)大致的結(jié)構(gòu),應(yīng)該說,大多數(shù)的Java源程序都是按照下面的結(jié)構(gòu)進(jìn)行的:JavaSample.java3此外,與C/C+類似,Java的注釋仍然為/、/* */和/* */。其中/表示單行注釋,/* */表示多行注釋,/* */表示文檔注釋。注釋作為應(yīng)用程序的一部分,雖然在執(zhí)行時(shí)不被編譯和運(yùn)行,然而,給程序加上必要的注釋,是一種良好的編程習(xí)慣,在方便他人閱讀的同時(shí),也為自己調(diào)試和記憶程序奠定了良好的基礎(chǔ)。 statement 注意,以上是Java源程序的結(jié)構(gòu),也就是以.java結(jié)尾的文件結(jié)構(gòu),而不是Jav

3、a字節(jié)碼的結(jié)構(gòu)。具體將.java源程序編譯成什么形式的.class字節(jié)碼,由JVM負(fù)責(zé)完成。4Java是強(qiáng)類型語(yǔ)言,每個(gè)變量、常量都必須屬于且只能屬于一種數(shù)據(jù)類型。3 32 Java2 Java數(shù)據(jù)類型數(shù)據(jù)類型使用變量和常量之前必須先定義變量或常量的數(shù)據(jù)類型,從而在編譯時(shí)可以進(jìn)行嚴(yán)格的語(yǔ)法檢查,降低程序出錯(cuò)的概率。Java中共有八種基本數(shù)據(jù)類型,與之對(duì)應(yīng)的是數(shù)值,此外還有四種引用數(shù)據(jù)類型,與之對(duì)應(yīng)的是對(duì)象,具體如表3.1所示:56對(duì)于一個(gè)整數(shù)數(shù)值,Java默認(rèn)類型總是int,因此在long型的數(shù)值尾部,需要加上英文字母L或其小寫l用于確保它不是int型而是long型,我們建議用L,因?yàn)樗男?/p>

4、字母l實(shí)在跟數(shù)字1很相近。對(duì)于一個(gè)浮點(diǎn)數(shù)值,Java默認(rèn)類型總是double,因此float型的數(shù)值尾部,需要加上英文字母F或其小寫f用于確保它不是double型而是float型。Java使用Unicode編碼方式給字符編碼。Java不能用0替代false,也不能用非0值替代true。73 33 Java3 Java常量和變量常量和變量3.3.1 Java命名規(guī)則Java的命名規(guī)則包括字母、數(shù)字、下劃線和美元符號(hào)$,命名長(zhǎng)度不受限制,不能以數(shù)字開頭,不能與Java關(guān)鍵字和保留字同名,不能包含空格,并且Java命名區(qū)分大小寫。這里的字母不僅僅是狹義上的英文字母,所有Unicode編碼支持的書面語(yǔ)

5、言中的字符都可以用于命名。例如希臘文、俄文、中文我都可以用于命名。盡量使用英文字母、數(shù)字、下劃線三種符號(hào)命名,命名要能顧名思義,看到命名就能知道它所表示的大概意思。83.3.2 Java常量Java中利用final關(guān)鍵字申明常量。常量一旦賦值就不能更改,否則程序會(huì)報(bào)錯(cuò)。常量盡可能的用大寫字母表示。ConstantSample.java93.3.3 Java變量一般用駝峰命名法給變量起名,當(dāng)變量名只有一個(gè)字母時(shí),通常用小寫字母表示;如果包括多個(gè)英文單詞的話,除第一個(gè)單詞之外,每個(gè)單詞的首字母大寫。VariableSample.java103.3.4 Java基本類型轉(zhuǎn)換Java的八種基本數(shù)據(jù)類型

6、,除布爾型之外,都可以相互轉(zhuǎn)換,轉(zhuǎn)換的方式有兩種:自動(dòng)轉(zhuǎn)換和強(qiáng)制轉(zhuǎn)換。自動(dòng)轉(zhuǎn)換一般不會(huì)帶來數(shù)據(jù)丟失等問題,而強(qiáng)制轉(zhuǎn)換時(shí),因?yàn)楦鞣N基本類型表示范圍的不同,經(jīng)常會(huì)引起數(shù)據(jù)丟失。類型轉(zhuǎn)換并不影響變量本身的數(shù)值和數(shù)據(jù)類型。AutoConversionSample.javaCastConversionSample.java113 34 Java4 Java運(yùn)算符運(yùn)算符AddOperationSample.javaSubOperationSample.javaMultiplyOperationSample.javaDivideOperationSample.javaRemainderOperationSa

7、mple.javaSelfAddOperationSample.java12CompareOperationSample.java13LogicOperationSample.java14條件運(yùn)算符為? :,具體表達(dá)形式為:條件 ? 表達(dá)式1 : 表達(dá)式2;當(dāng)條件取true時(shí),運(yùn)算結(jié)果為表達(dá)式1的值,否則為表達(dá)式2的值。ConditionOperationSample.java賦值運(yùn)算符主要用于對(duì)變量、常量等進(jìn)行賦值,Java也采用=符號(hào)作為賦值運(yùn)算符。=的左側(cè)是被賦值的變量或常量,=的右側(cè)是需要賦給的數(shù)據(jù)或者表達(dá)式。之前的示例已經(jīng)給出很多賦值運(yùn)算符的操作,在此不予贅述。153 35 Java

8、5 Java流程結(jié)構(gòu)流程結(jié)構(gòu)程序的流程執(zhí)行結(jié)構(gòu)包括順序、分支和循環(huán)三種結(jié)構(gòu)。順序結(jié)構(gòu)的代碼執(zhí)行順序按照從上到下的流程執(zhí)行,當(dāng)中無任何的判斷和跳轉(zhuǎn),因此也不存在控制的問題。分支結(jié)構(gòu)存在判斷問題,循環(huán)結(jié)構(gòu)存在判斷和跳轉(zhuǎn)問題,根據(jù)判斷或跳轉(zhuǎn)的不同,程序執(zhí)行的代碼塊也不同,因此,分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)都屬于流程控制結(jié)構(gòu)。Java還提供了break,continue和return關(guān)鍵字用于控制循環(huán)結(jié)構(gòu)。163.5.1 分支結(jié)構(gòu)Java提供兩種分支結(jié)構(gòu)控制語(yǔ)句:if語(yǔ)句和switch語(yǔ)句。在設(shè)計(jì)各分支條件的時(shí)候,應(yīng)做到條件之間避免出現(xiàn)冗余的情況,例如,下列的語(yǔ)句中,else if語(yǔ)句及其控制的代碼段是永遠(yuǎn)不會(huì)

9、執(zhí)行的。if(a10) statement_1else if(a5) statement_2Sort2Num.javaSort3Num.javaAgeClass.java17switch語(yǔ)句通過一個(gè)表達(dá)式和case標(biāo)簽構(gòu)成,這個(gè)表達(dá)式支持byte、short、char、int、String和枚舉類型的數(shù)據(jù)。GradeAndMark.javaDaysJudge.javaDaysJudgeByString.java183.5.2 循環(huán)結(jié)構(gòu)Java中,提供了while、do while和for三種循環(huán)語(yǔ)句,從本質(zhì)上來看,這三種循環(huán)語(yǔ)句的功能是一致的。一般來說,循環(huán)語(yǔ)句由以下幾部分組成:19SumWh

10、ile.javaSumDoWhile.javaSumFor.javaFactorial.javaFibonacci.javaDaffodilNmuber.javaPerfectNumber.javaSqrtX.java3.5.3 循環(huán)結(jié)構(gòu)控制有的時(shí)候,我們希望在某種條件下能夠強(qiáng)制退出循環(huán),而不需要等到循環(huán)條件取值為false時(shí)再停止循環(huán),這種強(qiáng)行中斷循環(huán)的語(yǔ)句稱為循環(huán)控制語(yǔ)句,在Java中,提供了break、continue和return三種循環(huán)控制語(yǔ)句。20break語(yǔ)句用于跳出當(dāng)前循環(huán)。也就是說,如果程序執(zhí)行到break語(yǔ)句,則完全跳出離break語(yǔ)句最近的那個(gè)循環(huán),即使該循環(huán)中的剩余語(yǔ)句

11、尚未執(zhí)行完畢。與break語(yǔ)句不同,continue語(yǔ)句只是用于停止當(dāng)前的循環(huán),接下來執(zhí)行下一次的循環(huán)。當(dāng)前被停止的循環(huán)的剩余語(yǔ)句,也不執(zhí)行。與break、continue用于控制循環(huán)不同,return語(yǔ)句執(zhí)行的是直接退出所在方法的操作。例如在某方法A中,程序執(zhí)行到return語(yǔ)句后,A方法被結(jié)束,即使在return語(yǔ)句后還有其它代碼沒有執(zhí)行。21BreakTest.javaLabelBreakTest.javaContinueTest.javaLabelContinueTest.javaReturnTest.javabreak語(yǔ)句與continue語(yǔ)句,除了對(duì)與之最近的循環(huán)有效外,還可以通過

12、標(biāo)簽的方式來確定控制的循環(huán)。return語(yǔ)句更多的用于為方法返回某個(gè)值,在第四章中會(huì)有更詳細(xì)的說明。223 36 Java6 Java鍵盤輸入鍵盤輸入很多時(shí)候需要通過鍵盤錄入數(shù)據(jù)為變量賦值,可以通過BufferedReader和Scanner類來進(jìn)行處理,前者出現(xiàn)在早期的JDK1.5版本之前,后者從JDK1.5版本開始出現(xiàn)。3.6.1 通過BufferedReader類獲取鍵盤輸入數(shù)據(jù)BufferedReader br=new BufferedReader(new InputStreamReader(System.in);br是BufferedReader類的實(shí)例對(duì)象,獲取鍵盤輸入數(shù)據(jù)的操作將

13、由這個(gè)對(duì)象完成。通過調(diào)用br的readLine方法,可以逐行的讀取鍵盤的輸入,當(dāng)輸入一個(gè)回車時(shí),readLine方法結(jié)束,并將回車前的數(shù)據(jù)以字符串形式返回。23BRInput.javaBRInputNmber.java3.6.2 通過Scanner類獲取鍵盤輸入數(shù)據(jù)Scanner類通過next方法得到鍵盤錄入的字符串?dāng)?shù)據(jù),也可以通過nextXxx方法得到鍵盤錄入的某種基本數(shù)據(jù)類型的數(shù)據(jù),其中Xxx表示某個(gè)基本數(shù)據(jù)類型。ScannerTest.javaScanner通過回車、空格、Tab作為輸入項(xiàng)分隔符,輸入項(xiàng)個(gè)數(shù)超過接收項(xiàng)時(shí),超出部分被自動(dòng)放棄。使用回車方式完成輸入項(xiàng)錄入,不會(huì)產(chǎn)生多余的輸入項(xiàng)

14、;使用空格或者Tab的方式完成輸入項(xiàng)錄入時(shí),有可能產(chǎn)生多余的輸入項(xiàng)。ScannerException.java243 37 Java7 Java數(shù)組數(shù)組所謂數(shù)組,就是用于存放一組數(shù)據(jù)的有序集合,這組數(shù)據(jù)必須是同一數(shù)據(jù)類型,這個(gè)集合有固定的大小,也即數(shù)組的容量一旦指定以后就是固定不變的,無法更改。3.7.1 數(shù)組的定義type arrayName;type arrayName ;其中type表示數(shù)組中存放的元素?cái)?shù)據(jù)類型,也稱數(shù)組類型,arrayName表示數(shù)組名。符號(hào)表示定義的是數(shù)組。第一種定義方式在實(shí)際開發(fā)中使用較多,第二種定義方法功能上與第一種沒有區(qū)別,只是習(xí)慣上用的已經(jīng)越來越少了。25數(shù)組

15、在定義的階段,是不指定容量(也即長(zhǎng)度)也不分配內(nèi)存地址的,剛定義的數(shù)組,只是在程序中進(jìn)行了一個(gè)申明的過程,不經(jīng)過初始化的操作,是無法使用的。例如,有語(yǔ)句:int A;double B;則A數(shù)組和B數(shù)組此時(shí)均無法使用,也沒有容量,內(nèi)存中也不分配地址。263.7.2 數(shù)組的初始化所謂初始化,就是指為數(shù)組分配內(nèi)存地址、設(shè)定數(shù)組容量、創(chuàng)建數(shù)組元素初始值。初始化的工作可以分為靜態(tài)初始化和動(dòng)態(tài)初始化兩種形式。靜態(tài)初始化是指通過指定數(shù)組元素的初始值來完成數(shù)組初始化的過程。動(dòng)態(tài)初始化是指通過指定數(shù)組的容量大小來完成數(shù)組初始化的過程。27int A;double B;A = new int 4,8,20,11,

16、5;B = new double 3.3,1.5,-2,7,8.7,1.2,0.3;可以將數(shù)組定義和靜態(tài)初始化的過程結(jié)合起來,這種方式更為簡(jiǎn)潔和直觀:double X = 0.1,5.2,3.7,4.6,9.9;(1) 靜態(tài)初始化經(jīng)過靜態(tài)初始化后,數(shù)組就分配了內(nèi)存地址、設(shè)定了容量和初始元素。28char c;c = new char 5;與靜態(tài)初始化類似,動(dòng)態(tài)初始化也可以和數(shù)組定義結(jié)合起來:double X = new double 10;(2) 動(dòng)態(tài)初始化經(jīng)過動(dòng)態(tài)初始化后,數(shù)組也分配了內(nèi)存地址、設(shè)定了容量和初始元素。293.7.3 數(shù)組的使用經(jīng)過定義和初始化后的數(shù)組,就可以在程序中使用了。數(shù)組的使用是雙向的,也就是說,程序通過數(shù)組元素的下標(biāo)訪問每一個(gè)元素,既可以得到元素的值,也可以修改元素的值。但是,無論如何,修改數(shù)組容量的操作是不被允許的,Java也不提供這種方法。在Java的Arrays類和System類中,提供了一些常用的數(shù)組方法,可以直接用于數(shù)組操作的使用。Use

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論