版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
項(xiàng)目一Java概述及開發(fā)環(huán)境搭建
【項(xiàng)目描述】下載并配置JDK開發(fā)工具,利用記事本編寫第一個Java程序,程序運(yùn)行輸出“Hello,Java!”?!救蝿?wù)分解】
要實(shí)現(xiàn)本項(xiàng)目功能,我們可以分為以下三個任務(wù)來完成:1.認(rèn)識Java。2.Java開發(fā)環(huán)境搭建。3.編寫并運(yùn)行第一個Java程序。4.Java與其它語言的比較。任務(wù)一認(rèn)識Java【任務(wù)描述】
任務(wù)1-1:了解Java的發(fā)展歷史;理解Java語言的特點(diǎn)以及Java程序的運(yùn)行機(jī)制和Java虛擬機(jī)。一、Java的發(fā)展歷史
1996年1月,第一個JDK-JDK1.0誕生。
1999年6月,SUN公司發(fā)布Java的三個版本:標(biāo)準(zhǔn)版(J2SE)、企業(yè)版(J2EE)和微型版(J2ME)。
2005年6月,JavaOne大會召開,SUN公司公開JavaSE6。J2EE更名為JavaEE,J2SE更名為JavaSE,J2ME更名為JavaME。
2006年12月,SUN公司發(fā)布JRE6.0。
2009年04月20日,甲骨文74億美元收購Sun,取得Java的版權(quán)。
2011年7月,甲骨文公司發(fā)布Java7的正式版。二、Java語言的特點(diǎn)1.簡單性2.面向?qū)ο竺嫦驅(qū)ο蟮娜齻€特征是:封裝、多態(tài)性和繼承。現(xiàn)實(shí)世界中的對象均有屬性和行為,屬性表示對象的數(shù)據(jù),行為表示對象的方法。
3.可移植性
Java程序經(jīng)過一次編譯后可移植到別的系統(tǒng)上解釋執(zhí)行,如MS-DOS,Windows,Unix等任何平臺上運(yùn)行,具有很強(qiáng)的可移植性。4.Java語言是解釋型的
Java程序在Java平臺上被編譯為字節(jié)碼格式,然后可以在實(shí)現(xiàn)這個Java平臺的任何系統(tǒng)中運(yùn)行。5.交互式特性Java是面向?qū)ο蟮木W(wǎng)絡(luò)編程語言,由于它支持TCP/IP協(xié)議,使得用戶可以通過瀏覽器訪問到Internet上的各種動態(tài)對象。
6.多線程機(jī)制Java語言支持多線程機(jī)制,多線程機(jī)制使得Java程序能夠并行處理多項(xiàng)任務(wù)。多線程機(jī)制可以很容易地實(shí)現(xiàn)網(wǎng)絡(luò)上的交互式操作。
7.動態(tài)的內(nèi)存管理機(jī)制8.Java是高性能的
與解釋型的高級腳本語言相比,Java的確是高性能的。事實(shí)上,Java的運(yùn)行速度隨著JIT(Just-In-Time)編譯器技術(shù)的發(fā)展越來越接近于C++。9.可靠性和安全性
由于Java主要用于網(wǎng)絡(luò)應(yīng)用程序開發(fā),因此對安全性有較高的要求。Java通過自己的安全機(jī)制防止了病毒程序的產(chǎn)生和下載程序?qū)Ρ镜叵到y(tǒng)的威脅破壞。
三、Java程序的運(yùn)行機(jī)制和Java虛擬機(jī)1.Java程序的運(yùn)行機(jī)制
Java語言具有解釋性語言和編譯性語言的特征。2.Java虛擬機(jī)(JVM)在Java中的所有程序都是在JVM(Java虛擬機(jī))上運(yùn)行的。JVM屏蔽了與具體操作系統(tǒng)相關(guān)信息,使得Java程序只需要產(chǎn)生在Java虛擬機(jī)上運(yùn)行的目標(biāo)代碼(字節(jié)碼),就可以在多種平臺上不加修改地運(yùn)行。圖1.1Java虛擬機(jī)機(jī)制任務(wù)二Java開發(fā)環(huán)境搭建
【任務(wù)描述】
任務(wù)1-2:搭建Java開發(fā)環(huán)境。
一.Java平臺簡介Java提供了以下三個平臺,分別:
JavaSE(JavaStandardEdition),Java的標(biāo)準(zhǔn)版,以前稱為J2SE。JavaEE(JavaEnterpriseEdition),Java的企業(yè)版,以前稱為J2EEJavaME(JavaMicroEdition),微型版,以前稱為J2ME。二.JDK的安裝與配置1.JDK的安裝我們可以到甲骨文的官方網(wǎng)站(/technetwork/java/javase/downloads/index.html)免費(fèi)下載一個JDK(JavaDevelopmentKit,Java開發(fā)工具)。JDK安裝向?qū)鐖D1.2。圖1.2JDK的安裝向?qū)c(diǎn)擊下一步,按照對話框提示逐步安裝,這里我們選擇默認(rèn)的安裝路徑,也可以更改JDK安裝路徑。安裝完成后,出現(xiàn)如圖1.3的界面。圖1.3JDK安裝完成2.JDK的配置
配置環(huán)境變量的步驟如下:(1)在我的電腦”—>“系統(tǒng)屬性”,在“系統(tǒng)屬性”對話框中選擇“高級”選項(xiàng)卡,在如圖1.4的“系統(tǒng)屬性”對話框中的“高級”選擇卡中點(diǎn)擊“環(huán)境變量”按鈕,出現(xiàn)圖1.5的“環(huán)境變量”對話框。新建一個名為為ClassPath的系統(tǒng)變量,變量值輸入“.;C:\ProgramFiles\Java\jdk1.7.0_07”,如圖1.6所示。圖1.4“系統(tǒng)屬性”對話框圖1.5“環(huán)境變量”對話框圖1.6新建ClassPath系統(tǒng)變量(2)在系統(tǒng)變量中,找到編輯Path變量,在末尾添加路徑;C:\ProgramFiles\Java\jdk1.6.0_11\bin。如圖1.7所示。圖1.7編輯Path系統(tǒng)變量配置完JDK環(huán)境后,我們可以在命令行窗口中用Javac(回車)和Java(回車)命令來測試是否配置成功。若出現(xiàn)如圖1.8和圖1.9所示,表示配置成功。若配置不成功,修正系統(tǒng)變量的內(nèi)容后,需重新打開命令行窗口再測試。
圖1.8輸入命令javac后的屏幕顯示圖1.9輸入命令java后的屏幕顯示任務(wù)三編寫并運(yùn)行第一個Java程序
【任務(wù)描述】
任務(wù)1-3:編寫第一個Java程序,運(yùn)行該程序,使得在控制臺上輸出信息“Hello,WelcometoJava!”跳至解題思路【必備知識】
一、什么是Java源程序。所謂源程序是指程序員從鍵盤上輸入的還沒有經(jīng)過編譯、解釋等處理的最原始的程序代碼。如用C語言編寫的源程序后綴名為.C,用C++編寫的源程序后綴名為.CPP,用Java語言編寫的源程序后綴名為.java。二、Java中類的定義格式。Java類的定義格式:class類名{類的屬性;類的方法(){}}(1)在Java中,類是用關(guān)鍵字class定義的,class后面是類名,類名是用戶自定義的,只要滿足一定的命名規(guī)則即可。(2)類體是由類名后的一對{}花括號括起來的內(nèi)容,類的兩個組成部分是類的屬性和類的方法,屬性和方法可以有多個。屬性是描述類的靜態(tài)特征,而方法是描述類的動態(tài)特征。(3)一個Java文件是可以由多個類組成的,但只能有一個public類,如果某一個類是用publicclass去聲明的,則這個類稱為主類,主類名要和Java源文件名一致,而且主方法main()只能定義在主類中。有關(guān)更多類的知識可參考項(xiàng)目四?!窘忸}思路】
任務(wù)1-3:1.用關(guān)鍵字publicclass定義一個Hello類。2.在Hello類中添加一個主方法main(),主方法的定義為publicstaticvoidmain(Stringargs[])。3.在main()方法中,添加一條語句。重溫任務(wù)描述【任務(wù)透析】1 publicclassHello{ 2 publicstaticvoidmain(Stringargs[]){ 3 System.out.println("Hello,WelcometoJava!"); 4 } 5 }
在以上程序段中:行1定義了一個名為Hello的公共類(class),每個Java程序至少包含有一個公共類。按Java語言規(guī)范,組成類名單詞首字母應(yīng)大寫。
行2定義了一主方法main()。main()方法是Java程序的入口。
行3是主方法中定義的語句,方法中僅僅包含了一條System.out.println語句,這一語句的作用是在控制臺上輸出雙引號中的內(nèi)容。
行4該右花括號是表示主方法的結(jié)束,它和行2的左花括號對應(yīng),方法體是用一對花括號括起來的。行5該行的右花括號表示是類的結(jié)束,它是和行1的左花括號匹配,類體也是用一對花括號括起來的。
注意:Java源程序是大小敏感的(即區(qū)分大小寫),所有括號、引號都是成對出現(xiàn)的,并且都是英文符號。1.4.2編譯和執(zhí)行一個Java程序
方法一:利用記事本寫Java程序,利用命令行方式進(jìn)行編譯、運(yùn)行Java程序。
我們將任務(wù)1-3的源代碼寫在記事本(notepad)上,并命名為Hello,同時把后綴名.txt改成.java,然后保存。為了便于后面的講解,這里我們把它保存在D盤JDemo(d:\jdemo)目錄下。接下來我們打開CMD(Commandprompt),切換到Hello.java源代碼文件所在的目錄下。這里用下述語句切換到D:\JDemo目錄下。 d:(Enter) cdjdemo(Enter)我們用盤符帶冒號,如D:命令,可以切換到D盤下;cd命令帶文件名可以在同盤下切換,切回上級目錄使用cd..命令。圖1.10用javac命令編譯和java命令運(yùn)行Hello程序后的結(jié)果
用javacHello.java命令,執(zhí)行對Hello.java源文件的編譯,如果沒有語法錯誤,編譯器(Compiler)將會生成一個擴(kuò)展名為.class字節(jié)碼文件(Hello.class);如果編譯時有語法錯誤,編譯器會報錯,當(dāng)然也不會生成字節(jié)碼文件。我們需要修改源代碼,然后再重新編譯,直到能通過編譯。
用javaHello命令,執(zhí)行Hello程序,并顯示結(jié)果,輸出“Hello!WelcometoJava!”。如圖1.10所示。方法二:
我們還可以用JavaIDE(IntegretedDevelopmentEnvironment,集成開發(fā)環(huán)境)編寫、編譯并執(zhí)行Java源程序。我們這里用的是MyEclipse8.0,IDE便于我們開發(fā)和調(diào)試程序。不像記事本方式,每次都得在CMD下用命令行語句進(jìn)行編譯和執(zhí)行,才能看到程序的結(jié)果。創(chuàng)建Java程序的步驟如下:步驟一,選擇工作空間。打開MyEclipse并將工作空間目錄設(shè)為D:\jdemo,如圖1.11所示。工作空間是項(xiàng)目文件的存放目錄。這里也可以使用默認(rèn)的工作空間,此時項(xiàng)目文件是存放在默認(rèn)工作空間目錄下。圖1.11啟動MyEclipse進(jìn)入選擇工作空間頁面步驟二,創(chuàng)建Java項(xiàng)目。在MyEclipse主界面的“文件”菜單中選擇“新建”命令,在彈出的下一級菜單中選擇“Java項(xiàng)目”。如圖1.12所示。圖1.12利用“文件”菜單新建“Java項(xiàng)目”在彈出的“新建Java項(xiàng)目”對話框中,輸入項(xiàng)目名Hello,點(diǎn)擊完成,即創(chuàng)建了名為“Hello”的Java項(xiàng)目。圖1.13所示。圖1.13新建Java項(xiàng)目對話框步驟三,創(chuàng)建Java類。在資源管理器中,點(diǎn)擊“Hello”項(xiàng)目展開后,對著“src”包右擊(src是系統(tǒng)默認(rèn)的default包,實(shí)際上這里也可以對著項(xiàng)目右擊先創(chuàng)建一個包),在彈出的快捷菜單中,選擇“新建”命令,在出現(xiàn)的下一級子菜單中選擇“類”。如圖1.14所示。
圖1.14在默認(rèn)的src包底下新建一個類
在彈出的“新建Java類”對話框中,輸入類名稱:Hi,并在下方的多項(xiàng)選擇框中,選中“publicstaticvoidmain(String[]args)”選項(xiàng),點(diǎn)擊完成。如圖1.15所示。圖1.15新建Java類對話框步驟四,編輯Java源程序(類文件)。在建好的Hi類的main()方法中,添加代碼System.out.println("HelloJava");。步驟五,運(yùn)行Java程序。編輯好源文件后,在代碼屏幕空白處右擊,在彈出的快捷菜單中,選擇“運(yùn)行方式”,進(jìn)一步選中“Java應(yīng)用程序”。如圖1.16所示。圖1.16利用快捷菜單運(yùn)行Java應(yīng)用程序圖1.17“保存并啟動“對話框在圖1.17的“保存并啟動對話框”中(默認(rèn)選中當(dāng)前的應(yīng)用程序Hi.java),點(diǎn)擊“確定”按鈕,運(yùn)行結(jié)果如圖1.18所示。圖1.18Hi.java的運(yùn)行結(jié)果小結(jié):我們分別介紹了記事本和集成開發(fā)環(huán)境兩種方法編寫、編譯并執(zhí)行我們第一個Java程序。不管用哪種方式,如果程序中存在錯誤,是不能得到運(yùn)行結(jié)果的,必須要將程序的錯誤改正后,最后才能查看程序的運(yùn)行結(jié)果。
【課堂提問】★用記事本編寫好Java源程序后,要想得到運(yùn)行結(jié)果,需要執(zhí)行哪些操作?★用MyEclipse編寫好Java源程序后,要想看到運(yùn)行結(jié)果,該如何操作?
【現(xiàn)場演練】請你也分別利用記事本和MyEclipse編寫、運(yùn)行你的第一個Java程序,向世界發(fā)出一聲問候吧。任務(wù)四Java與其它語言的比較
一、Java與C#比較C#與Java是很多相似之處,不但在語法、語言特征上,運(yùn)用方面也很相似,都能用以B/S和C/S(桌面應(yīng)用程序,和分布式網(wǎng)絡(luò)的開發(fā))的開發(fā)。只是Java是在C++的基礎(chǔ)上建立,而C#在Java的基礎(chǔ)上發(fā)展而來的。
Java是開源的,跨平臺、安全性高、開發(fā)成本較低,相對而言,Java比較難學(xué)、不容易架構(gòu)、開發(fā)周期長。但用Java開發(fā)的軟件可擴(kuò)展性好,可維護(hù)性強(qiáng)。二、Java與PHP比較PHP(HypertextPreprocessor)是一種完全開源、能快速學(xué)習(xí)、跨平臺(Windows與UNIX)、有良好數(shù)據(jù)庫交互能力的開發(fā)語言,簡單輕便、易學(xué)易,與Apache及其它擴(kuò)展庫結(jié)合緊密、良好的安全性。Java效率比PHP要高,兩者都是開源的,兩者都可以跨平臺,但PHP只能開發(fā)B/S程序,Java可開發(fā)B/S和C/S程序。相對而言,Java比較難學(xué)、不容易架構(gòu)、開發(fā)周期長,但用Java開發(fā)的軟件可擴(kuò)展性好,可維護(hù)性強(qiáng)。項(xiàng)目二Java語言編程基礎(chǔ)
【項(xiàng)目描述】常用的編程元素——常量與變量;數(shù)據(jù)分類法——數(shù)據(jù)類型;編程部件——運(yùn)算符、表達(dá)式與語句;程序執(zhí)行方向——程序控制結(jié)構(gòu)?!救蝿?wù)分解】
本項(xiàng)目可分解為以下幾個任務(wù):1.數(shù)據(jù)類型與常量、變量。2.運(yùn)算符和表達(dá)式與語句。3.程序控制結(jié)構(gòu)。任務(wù)一
數(shù)據(jù)類型與常量、變量
【任務(wù)描述】任務(wù)2-1:聲明兩個整型變量x和y,分別賦予它們初始值5和8,求兩數(shù)之和,并輸出結(jié)果。跳至解題思路【必備知識】1.認(rèn)識標(biāo)識符Java對標(biāo)識符定義的規(guī)定:標(biāo)識符可以由字母、數(shù)字、下劃線(_)或美元符號($)組成。標(biāo)識符必須以字母、下劃線(_)或美元符號($)開頭。標(biāo)識符長度不限,但在實(shí)際中不宜過長。標(biāo)識符區(qū)分大小寫,例如:Myworld與myworld是不同的。標(biāo)識符不能與關(guān)鍵字(保留字)同名。2.認(rèn)識關(guān)鍵字abstractassertbooleanbreakbytecasecatchcharclassconstcontinuedefaultdodoubleelseextendsfinalfinallyfloatforgotoifimplementsimportinnerinstanceofintinterfacelongnativenewnulloperatorouterpackageprivateprotectedpublicreturnshortstaticsuperstrictfpswitchsynchronizedthisthrowtransienttryvoidvolatilewhileenumthrows3.認(rèn)識數(shù)據(jù)類型Java的數(shù)據(jù)類型可以分為兩大類:基本數(shù)據(jù)類型與引用數(shù)據(jù)類型。4.認(rèn)識常量常量是指在程序運(yùn)行過程中其值始終保持不變的量。常量共包含以下6類。(1)整型常量表2.2Java整型數(shù)據(jù)的取值范圍(2)浮點(diǎn)型常量如果不明確指明浮點(diǎn)數(shù)的類型,浮點(diǎn)數(shù)默認(rèn)為double。如:3.141592(double型浮點(diǎn)數(shù))2.08E25(double型浮點(diǎn)數(shù))6.56f(float型浮點(diǎn)數(shù))(3)字符型常量字符型常量是由一對單引號包含起來的單個字符。例如:‘a(chǎn)’,‘2’。(4)字符串常量字符串型常量是由一對雙引號括起來的,0個或多個字符組成的一個字符序列。如:“stu”。(5)布爾型常量布爾型常量只能取值為true和false,其中true表示邏輯真,false表示邏輯假。(6)null常量null常量只有一個值,用null表示,表示為空。5.認(rèn)識變量(1)變量的命名規(guī)則變量也是一種標(biāo)識符,所以它也遵循標(biāo)識符的命名規(guī)則。(2)聲明變量變量聲明格式為:類型名變量名[=常量];示例1:聲明整型變量。public
classExample2_1{
public
static
voidmain(String[]args){
inta=016;//聲明int型變量a,并賦予它初值為八進(jìn)制數(shù)16
intb=3;
intc=0x15;
longy=123456L; System.out.println("a="+a);//輸出a的值 System.out.println("b="+b); System.out.println("c="+c);System.out.println("y="+y);}}示例2:聲明單精度和雙精度類型變量。代碼請參考Example2_2。示例3:聲明字符類型變量。代碼請參考Example2_3。示例4:聲明字符串類型變量。publicclassExample2_4{ publicstaticvoidmain(String[]args){ Stringstr1="Hello"; Stringstr2="123"; System.out.println("str1="+str1); System.out.println("str2="+str2); }}示例分析:在本例中,聲明了String類型(即字符串類型)變量str1和str2,并分別給它們賦予初始值“Hello”和“123”,調(diào)用println()方法在屏幕上顯示兩個變量的值。(3)變量的作用域變量是有作用范圍的,一旦超出它的范圍,就無法再使用這個變量。按作用范圍進(jìn)行劃分,變量分為成員變量和局部變量。1)成員變量在類體中定義的變量為成員變量。它的作用范圍為整個類,也就是說在這個類中都可以訪問到定義的這個成員變量。示例6:成員變量的作用范圍。代碼請參考Example2_6。2)局部變量Java可以在程序的任何地方聲明變量,當(dāng)然也可以在循環(huán)里聲明。有趣的是,在循環(huán)里聲明的變量只是局部變量,只要跳出循環(huán),這個變量便不能再使用。示例7:局部變量的作用范圍。代碼請參考Example2_7?!窘忸}思路】
任務(wù)2-1:1.首先分析確定要使用多少個變量,聲明兩個int型的變量。2.分別賦予它們初始值。3.再聲明一個int型的變量,用于存放兩數(shù)之和。在聲明求和的變量時,一般要將其初始值設(shè)為0。4.調(diào)用println()方法在屏幕上顯示所求的和。重溫任務(wù)描述【任務(wù)透析】//ClassDemo2_1Test.javapublicclassClassDemo2_1Test{ publicstaticvoidmain(String[]args){ intx=5; inty=8; intsum=0; sum=x+y; System.out.println("sum="+sum); }}【現(xiàn)場演練】有三門課程成績,通過使用“聲明變量”和“賦予初始值”的知識,完成求三門課程的平均分,并輸出所求的平均分。示例分析:把變量i聲明在for循環(huán)里,因此變量i在此就是局部變量,它的有效范圍僅在for循環(huán)開始和結(jié)束之間(即5~9行),只要一離開這個范圍,變量i便無法使用。相對而言,變量sum是聲明在main()方法的開始處,因此它的有效范圍從(03~09)行,當(dāng)然,for循環(huán)內(nèi)也屬于變量sum的有效范圍。任務(wù)二
運(yùn)算符、表達(dá)式與語句
【任務(wù)描述】任務(wù)2-2:(1)已知a=13,b=4,求a/b,(float)a/b,a%b,((a>10)&&(b<5))的值;(2)已知i=3,j=3,求x=i++,i,y=++j,j的值;(3)計算12+5>3||12-5<7表達(dá)式的值。求結(jié)果,并按給定的變量和初始值編寫程序驗(yàn)證結(jié)果。跳至解題思路【必備知識】1.運(yùn)算符。(1)賦值運(yùn)算符賦值運(yùn)算符是“=”,通過一個示例來講解賦值運(yùn)算符的用法。示例10:在程序中用“=”賦值。代碼請參考Example2_10。(2)算術(shù)運(yùn)算符數(shù)據(jù)類型精度的次序:byte<short<int<long<float<double。例如:20+3//結(jié)果是286*5//結(jié)果是309/4//結(jié)果是29/4.0//結(jié)果是2.259%4//結(jié)果是19%4.0//結(jié)果是1.0-9%5//結(jié)果是-4(3)關(guān)系運(yùn)算符比較兩個值是否滿足某種關(guān)系。如果滿足,則返回“true”(真),否則返回“false”(假)。關(guān)系運(yùn)算符都是二元運(yùn)算符,見表2.6。12.5>9.5//結(jié)果是true25!=25//結(jié)果是false3==3//結(jié)果是true‘T’<‘a(chǎn)’//結(jié)果是true(4)遞增與遞減運(yùn)算符(5)邏輯運(yùn)算符(6)位運(yùn)算符位運(yùn)算是對整數(shù)類型的操作數(shù)按二進(jìn)制的位進(jìn)行運(yùn)算,運(yùn)算結(jié)果仍然是整數(shù)類型值。在Java語言中位運(yùn)算的操作數(shù)只能為整型和字符型數(shù)據(jù)。具體運(yùn)算符見表2.8所示。(7)條件運(yùn)算符條件運(yùn)算符格式為:表達(dá)式1?表達(dá)式2:表達(dá)式3intmin,x=5,y=19;min=(x<y)?x:y;//(x<y)=(5<19)的值是true,取x的值,即min=x=4;2.運(yùn)算符的優(yōu)先級運(yùn)算符的優(yōu)先級及結(jié)合性見表2.10。3.表達(dá)式表達(dá)式是由常量、變量或是其他操作數(shù)與運(yùn)算符所組合而成的語句。例如下面均是正確的表達(dá)式:-49//表達(dá)式由一元運(yùn)算符“﹣”與常量49組成sum+2//表達(dá)式由變量sum、算術(shù)運(yùn)算符“+”與常量2所組成a+b-c/(d*3)//表達(dá)式由變量、常量與運(yùn)算符所組成4.語句在學(xué)會使用運(yùn)算符和表達(dá)式后,就可以寫出最基本的Java程序語句了。語句用來向計算機(jī)系統(tǒng)發(fā)出操作指令。程序由一系列語句組成。Java語言中的語句主要分為以下幾類:(1)表達(dá)式語句Java語言中最常見的語句是表達(dá)式語句,其形式如下:表達(dá)式;例如:a+b(2)空語句空語句只有分號,沒有內(nèi)容,不執(zhí)行任何操作。設(shè)計空語句是為了語法需要。例如,循環(huán)語句的循環(huán)體中如果僅有一條空語句,表示執(zhí)行空循環(huán)。例如:for(inti=0;;i++){}(3)復(fù)合語句(4)聲明語句(5)賦值語句(6)控制語句控制語句完成一定的控制功能,包括選擇語句、循環(huán)語句和轉(zhuǎn)移語句。【解題思路】
任務(wù)2-2:1.聲明變量。2.給變量賦初值。3.按要求計算。4.調(diào)用println()方法在屏幕上顯示所求的值。重溫任務(wù)描述【任務(wù)透析】//ClassDemo2_2Test.java
public
classClassDemo2_2Test{
public
static
voidmain(String[]args){ /*(1)已知a=13,b=4, *求a/b,(float)a/b,a%b,((a>10)&&(b<5))的值。 */ 01inta=13,b=4; 02System.out.println("(1)的結(jié)果為:"); 03System.out.println("a/b="+(a/b));04System.out.println("(float)a/b="+(float)(a/b)); 05System.out.println("a%b="+(a%b)); 06System.out.println("((a>10)&&(b<5))="+((a>10)&&(b<5))); /*(2)已知i=3,j=3, *求x=i++,i,y=++j,j的值。 */ 07inti=3,j=3,x,y; 08x=i++; 09y=++j; 10System.out.println("(2)的結(jié)果為:"); 11System.out.println("x="+x+",i="+i); 12System.out.println("y="+y+",j="+j); /* *計算12+5>3||12-5<7表達(dá)式的值
*/ 13System.out.println("(3)的結(jié)果為:"); 14System.out.println(12+5>3||12-5<7); }}【現(xiàn)場演練】inti=15,j1,j2,j3,j4,(1)j1=i++,求j1和i值;(2)j2=++i,求j2和i值;(3)j3=i--,求j3和i值;(4)j4=--i,求j4和i值。【知識鏈接】復(fù)合賦值運(yùn)算符任務(wù)三
程序控制結(jié)構(gòu)
【任務(wù)描述】任務(wù)2-3-1:公共汽車買票問題:乘客上車時顯示W(wǎng)elcome;輸入乘客年齡;如果年齡小于8歲或大于60歲,免票顯示OK,否則顯示:2yuan。任務(wù)2-3-2:分別用for語句、while語句和do…while語句求1+2+…+100。任務(wù)2-3-3:編程輸入成績(0~100分?jǐn)?shù)),根據(jù)輸入的百分制按五分制的成績輸出(排除不可能的分?jǐn)?shù))。百分制與五分制之間的關(guān)系見表2.12。跳至解題思路任務(wù)2-3-4:用for循環(huán)完成如下所示的圖形。【必備知識】1.程序的結(jié)構(gòu)設(shè)計一般來說程序的結(jié)構(gòu)包含以下3種:1、順序結(jié)構(gòu)2、選擇結(jié)構(gòu)3、循環(huán)結(jié)構(gòu)這3種不同的結(jié)構(gòu)有一個共同點(diǎn),就是它們都只有一個入口,也只有一個出口。程序中使用了上面這些結(jié)構(gòu)到底有什么好處呢?這些單一入、出口可以讓程序易讀、好維護(hù),也可以減少調(diào)試的時間。2.順序結(jié)構(gòu)結(jié)構(gòu)化程序的最簡單的結(jié)構(gòu)就是順序結(jié)構(gòu),所謂順序結(jié)構(gòu)就是按書寫順序執(zhí)行的語句構(gòu)成的程序段,其流程如圖2-2所示。示例11:將華氏溫度轉(zhuǎn)換為攝氏溫度。攝氏溫度c和華氏溫度f之間的關(guān)系為:c=5(f-32)/9。public
classExample2_11{
public
static
voidmain(String[]args){
floatf,c; f=70.0f; c=5*(f-32)/9; System.out.println("f="+f); System.out.println("c="+c); }}示例分析:main()方法中聲明了f和c兩個float類型的變量,分別表示華氏溫度和對應(yīng)的攝氏溫度,接著給f賦值70.0,通過5*(f-32)/9計算對應(yīng)的攝氏溫度,最后輸出f和c的值。main()方法中,各語句按照書寫的先后次序順序執(zhí)行,屬于順序結(jié)構(gòu)。3.選擇結(jié)構(gòu)
程序中有些程序段的執(zhí)行是有條件的,當(dāng)條件成立時,執(zhí)行一些程序段;當(dāng)條件不成立時,執(zhí)行另一些程序段,或不執(zhí)行,稱為選擇結(jié)構(gòu)。選擇結(jié)構(gòu)程序通過Java提供的選擇語句對給定條件進(jìn)行判斷,根據(jù)條件的滿足與否,執(zhí)行對應(yīng)的語句。選擇語句有兩種:if語句和switch語句。(1)if語句if語句也叫條件語句,它根據(jù)條件表達(dá)式的值來選擇將要執(zhí)行的語句。可以實(shí)現(xiàn)單分支、雙分支和多分支等選擇結(jié)構(gòu)。形式一:if語句實(shí)現(xiàn)單分支選擇結(jié)構(gòu)。其使用格式如下:If(條件表達(dá)式){
語句主體}示例12:用if語句實(shí)現(xiàn)單分支選擇結(jié)構(gòu)。代碼請參考Example2_12。形式二:if-else語句實(shí)現(xiàn)雙分支選擇結(jié)構(gòu)。其使用格式如下:if(條件表達(dá)式){ 語句主體1;}else{語句主體2;}其流程圖如圖2-4所示。圖2-4雙分支選擇結(jié)構(gòu)的流程圖示例13:用if…else語句實(shí)現(xiàn)雙分支選擇結(jié)構(gòu)。代碼請參考Example2_13。形式三:嵌套的if-else語句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)。其使用格式如下:if(條件表達(dá)式1){
語句主體1;}elseif(條件表達(dá)式2){
語句主體2;}…//多個elseif()語句else{
語句主體n;}示例14:用嵌套的if…else語句,實(shí)現(xiàn)多分支選擇結(jié)構(gòu)。y和x的函數(shù)關(guān)系如表2.13所示,編寫由x計算y的程序。public
classExample2_14{
public
static
voidmain(String[]args){
floatx,y; x=Float.parseFloat(args[0]);
if(x<0) y=0;
else
if(x>0&&x<=10) y=x;
else
if(x>10&&x<=20) y=10;
else y=0.5f*x+20; System.out.println("x="+x); System.out.println("y="+y); }}(2)switch語句---多分支選擇語句switch語句能夠根據(jù)給定表達(dá)式的值,從多個分支中選擇一個分支來執(zhí)行。其使用的格式如下:switch(表達(dá)式){ case選擇值1:語句主體1;break; case選擇值2:語句主體2;break; …… case選擇值n:語句主體n;break; default:語句主體;}功能說明:1)switch語句先計算括號中表達(dá)式的結(jié)果。2)根據(jù)表達(dá)式的值檢測是否符合執(zhí)行case后面的選擇值,若是所有case的選擇值皆不符合,則執(zhí)行default所包含的語句,執(zhí)行完畢即離開switch語句。3)如果某個case的選擇值符合表達(dá)式的結(jié)果,就會執(zhí)行該case所包含的語句,直到遇到break語句后才離開switch語句。4)若是沒有在case語句結(jié)尾處加上break語句,則會一直執(zhí)行到switch語句的尾端才會離開switch語句。5)若是沒有定義default該執(zhí)行的語句,則什么也不會執(zhí)行,而是直接離開switch語句。6)若選擇值為字符時,必須用單引號將字符包圍起來。switch語句的流程圖示例15:通過命令行輸入1~12之間的一個整數(shù),輸出相應(yīng)月分的英文單詞(使用switch語句處理)。代碼請參考Example2_15。4.循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)包括while語句、do…while語句和for語句。(1)while語句while循環(huán)的格式如下:while(判斷條件){
語句1;
語句2;
…語句n;}功能說明:先計算“判斷條件”的值,若判斷條件的值為真(true),則執(zhí)行循環(huán)體中的語句;再計算“判斷條件”的值,若判斷條件的值為真(true),再執(zhí)行循環(huán)體的語句,形成循環(huán),直到判斷條件的值為假(false),結(jié)束循環(huán),執(zhí)行while語句后面的語句。
循環(huán)流程圖示例16:while循環(huán)的使用。01public
classExample2_16{02 public
static
voidmain(String[]args){03 inti=1,sum=0;04 while(i<=10){05 sum+=i;//累加計算06 i++;07 }08 System.out.println("1+2+...+10="+sum);09 }
(2)do…while語句do…while循環(huán)的格式如下:do{語句1;
語句2;
…語句n;}while(判斷條件);示例17:do…while循環(huán)的使用代碼請參考Example2_17。(3)for語句for循環(huán)的格式如下:for(賦值初值;判斷條件;賦值增減量){語句1;
語句2;
…語句n;}若是在循環(huán)主體中要處理的語句只有1個,可以將大括號去掉。for循環(huán)流程圖(4)循環(huán)嵌套當(dāng)循環(huán)語句中又出現(xiàn)循環(huán)語句時,就稱為嵌套循環(huán),如嵌套for循環(huán),如嵌套while循環(huán)等。當(dāng)然也可以使用混合嵌套循環(huán),也就是循環(huán)中又有其他不同種類的循環(huán)。例如:for(;;)//外循環(huán)開始{for(;;)//內(nèi)循環(huán)開始 {……}//內(nèi)循環(huán)結(jié)束}//外循環(huán)結(jié)束for(;;)//外循環(huán)開始{do{//內(nèi)循環(huán)開始 ……}while();//內(nèi)循環(huán)結(jié)束}//外循環(huán)結(jié)束
5.循環(huán)跳轉(zhuǎn)語句(1)break語句(2)continue語句示例21:break語句的使用代碼請參考Example2_21。示例22:continue語句的使用代碼請參考Example2_22?!窘忸}思路】
任務(wù)2_3_1:“年齡小于8歲或年大小于60歲”的數(shù)學(xué)表達(dá)式為“age<8||age>60”。任務(wù)2_3_2:while循環(huán)語句的特點(diǎn)是:先判斷,后執(zhí)行;do-while循環(huán)語句的特點(diǎn)是:先執(zhí)行,后判斷。任務(wù)2_3_3:用嵌套的if-else語句時,要注意else和if的匹配問題。當(dāng)有多種分支時,使用switch-case語句會讓程序更容易理解。任務(wù)2_3_4:聲明3個控制變量i、sapce、star。i變量控制行數(shù),space變量控制空格數(shù),star變量控制圖形數(shù),由for循環(huán)嵌套完成整個圖形的輸出。
重溫任務(wù)描述【任務(wù)透析】//ClassDemo2_3_1Test.javapublic
classClassDemo2_3_1Test{
public
static
voidmain(String[]args){ System.out.println("Welcome"); Shortage; age=Short.parseShort(args[0]);
if(age<8||age>60) System.out.println("Ok");
else System.out.println("2yuan"); }}//ClassDemo2_3_2Test.javapublic
classClassDemo2_3_2Test{
public
static
voidmain(String[]args){ //用while循環(huán)語句完成
inti=1,sum1=0;
while(i<=100) { sum1+=i; i++; } System.out.println("while語句:1+2+...+100="+sum1); //用do...while循環(huán)語句完成
intj=1,sum2=0;
do{ sum2+=j; j++; }while(j<=100); System.out.println("do...while語句:1+2+...+100="+sum2); //用for循環(huán)語句完成
intk=1,sum3=0;
for(k=1;k<=100;k++) sum3+=k; System.out.println("for語句:1+2+...+100="+sum3); }}//ClassDemo2_3_3Test.javapublic
classClassDemo2_3_3Test{
public
static
voidmain(String[]args){ //嵌套的if語句完成
intscore;
chargrade; score=(int)Float.parseFloat(args[0]);
if(score>=0&&score<=100) {
if(score>89) grade='5';
else
if(score>79) grade='4';
else
if(score>59) grade='3';
else grade='2'; System.out.println("gradeis"+grade); }
else System.out.println("dateerror!");//if語句+嵌套的switch完成
ints,score2;
chargrade2='0'; score2=(int)Float.parseFloat(args[0]);
if(score2>=0&&score2<=100) { s=score2/10;
switch(s) {
case0:case1:case2:case3:case4:
case5:grade2='2';break;
case6:
case7:grade2='3';break;
case8:grade2='4';break;
case9:case10:grade2='5';break; } System.out.println("grade2is"+grade2); }
else System.out.println("dateerror!"); }}//ClassDemo2_3_4Test.javapublic
classClassDemo2_3_4Test{
public
static
voidmain(String[]args){
inti,space,star;
for(i=1;i<=6;i++) {
for(space=1;space<=6-i;space++) System.out.print("");
for(star=1;star<=i;star++) System.out.print("*"); System.out.print("\n"); } }}【課堂提問】1.在任務(wù)2_3_1中,如果在命令行參數(shù)中輸入:20,程序運(yùn)行結(jié)果會是什么呢?2.在任務(wù)2_3_2中,while循環(huán)和do-while循環(huán)最大的區(qū)別是什么呢?3.在任務(wù)2_3_3中,如果在命令行參數(shù)中輸入:120,程序運(yùn)行結(jié)果會是什么呢?如果在命令行參數(shù)中輸入入:68,程序運(yùn)行結(jié)果又是什么呢?【現(xiàn)場演練】計算:1-3+5-9+。。。-99的值。項(xiàng)目三數(shù)組與方法
相關(guān)詞匯:1、array
:數(shù)組2、element:元素3、row:行4、column
:列5、length
:長度6、dimension:維7、substring:字串8、subscript:下標(biāo)9、method:方法10、parameter:參數(shù)11、formalparameter:形參12、actualparameter:實(shí)參13、returnvalue:返回值14、default:缺省【項(xiàng)目描述】本項(xiàng)目介紹數(shù)組與方法的聯(lián)合使用。要求掌握數(shù)組的定義及應(yīng)用;方法的定義及應(yīng)用;數(shù)組作為參數(shù)的具體應(yīng)用?!救蝿?wù)分解】
本項(xiàng)目可分解為以下幾個任務(wù):1.數(shù)組的定義及使用。2.方法的定義及使用。3.數(shù)組參數(shù)。【任務(wù)描述】任務(wù)3-1:編寫程序,定義一個一維數(shù)組,給數(shù)組各元素賦值,并求數(shù)組元素的最大值和最小值;定義一個二維數(shù)組中biAarry,初始化數(shù)組并輸出數(shù)組的各元素。[跳至解題思路]【必備知識】1.一維數(shù)組的聲明及使用(1)一維數(shù)組的聲明與內(nèi)存的分配
如:intscore[];score=newint[10];除了用兩行來聲明并分配內(nèi)存給數(shù)組之外,也可以用較為簡潔的方式,把兩行縮成一行來編寫,其格式如下:數(shù)據(jù)類型
數(shù)組名[]=new數(shù)據(jù)類型[num];上述例子等價于如下寫法:intscore[]=newint[10](2)一維數(shù)組中元素的表示方法數(shù)組下標(biāo)的最小值為0,最大值為num-1。以一個score[10]的整型數(shù)組為例,score[0]代表第1個元素,score[1]代表第2個元素,score[9]為數(shù)組中的第10個元素(也就是最后一個元素)。示例1:一維數(shù)組的使用。01public
classExample3_1{02 public
static
voidmain(String[]args){03 inti;04 inta[];//聲明一整型數(shù)組a,此時僅開辟堆內(nèi)存空間05 a=new
int[3];//開辟棧內(nèi)存空間供整型數(shù)組a使用,其元素個數(shù)為306 for(i=0;i<3;i++)//輸出數(shù)組a07 System.out.print("a["+i+"]="+a[i]+"\t");08 System.out.println("\n數(shù)組長度是:"+a.length);//輸出數(shù)組長度09 }10}【運(yùn)行結(jié)果】a[0]=0 a[1]=0 a[2]=0 數(shù)組長度是:3(3)一維數(shù)組的初始化1)賦初值初始化數(shù)組如果想直接在聲明時就對數(shù)組賦初值,可以利用大括號完成。只要在數(shù)組的聲明格式后面再加上初值的賦值則可,如下面的格式所示:數(shù)據(jù)類型
數(shù)組名[]={初值0,初值1,…初值n};示例2:一維數(shù)組的初始化。01public
classExample3_2{02 public
static
voidmain(String[]args){03 inti;04 inta[]={15,29,38};//聲明一個整數(shù)數(shù)組a,并賦初值(初始化)05 for(i=0;i<a.length;i++)//輸出數(shù)組的內(nèi)容06 System.out.print("a["+i+"]="+a[i]+"\t");07 System.out.println("\n數(shù)組長度是:"+a.length);08 }09}【運(yùn)行結(jié)果】a[0]=15a[1]=29 a[2]=38 數(shù)組長度是:3示例分析:除了在聲明的同時為數(shù)組賦初值,也可以在程序中為某個特定的數(shù)組元素賦值??梢詫⒊绦蚝偷?行更改成下面的程序片段:inta[]=newint[3];a[0]=15;a[1]=29;a[2]=38;2)用new初始化數(shù)組
2.二維數(shù)組的定義及使用(1)二維數(shù)組的聲明與內(nèi)存的分配1)其聲明與分配內(nèi)存的格式如下:數(shù)據(jù)類型
數(shù)組名[][];
//聲明二維數(shù)組格式1或數(shù)據(jù)類型[][]數(shù)組名;
//聲明二維數(shù)組格式2數(shù)組名=new數(shù)據(jù)類型[行的個數(shù)][列的個數(shù)];//分配內(nèi)存給數(shù)組同樣,也可用下面的格式來聲明數(shù)組:數(shù)據(jù)類型
數(shù)組名[][]=new數(shù)據(jù)類型[行的個數(shù)][列的個數(shù)];
3.字符數(shù)組:char[]ch1={'H,'e','l','l','o'};字符串中所包含的字符個數(shù)稱為字符串長度,如“Hello”的長度為5。要表示長度為50的字符串,雖然可以使用如下的字符數(shù)組:char[]ch1=newchar[50];但由于字符個數(shù)太多,致使數(shù)組元素太多,使用起來極其不方便。為此,Java提供了String類,通過建立String類的對象使用字符串特別方便。
4.字符串字符串是字符組成的序列,是編程中常用的數(shù)據(jù)類型。字符串可用來表示標(biāo)題、名稱和地址等。(1)字符串變量的聲明和初始化其格式如下:String字符串變量名;字符串變量名=newString();也可以將兩條語句合并為一條語句,格式如下:String字符串變量名=newString();
例如:Stringstr;str=newString();等價于:Stringstr=newString();(2)字符串賦值
分別為字符串變量s1、s2和s3賦值:s1=“people”;s2=s1;s3=“China”+s1;結(jié)果s2的值為“people”,s3的值為“Chinapeople”。其中運(yùn)算符“+”的作用是將前后兩個字符串連接起來。
(3)字符串的輸出例如:Stringstr=newString();str=“beautifulgirl!”;System.out.println(str);輸出結(jié)果為:
beautifulgirl!
示例4:代碼請參考Example3_4。重溫任務(wù)描述
【解題思路】任務(wù)3-1:
1.聲明一維數(shù)組,利用隨機(jī)函數(shù)給數(shù)組元素賦值。2.定義變量min和max,分別用于保存最小值和最大值,假定一開始最大值和最小值都是a[0]元素。3.利用for循環(huán),將a[1]~a[9]元素逐一和min、max進(jìn)行比較,一旦也更小或更大值,馬上置換當(dāng)前的最小、最大值。4.輸出max和min。5.聲明一個二維數(shù)組中biAarry并初始化。6.利用兩重循環(huán)輸出二維數(shù)組的各元素?!救蝿?wù)透析】publicclassClassDemo3_1Test{ publicstaticvoidmain(String[]args){ //隨機(jī)輸入一個整數(shù),計算一維數(shù)組中最大值、最小值 intm=Integer.parseInt(args[0]);//通過形參數(shù)組args[0]元素接收一個整數(shù)m inta[]=newint[m];//構(gòu)造一個有m個元素的一維數(shù)組a System.out.println("隨機(jī)生成的一維數(shù)組:");
for(inti=0;i<m;i++) { a[i]=(int)(100*Math.random()); System.out.println(a[i]+""); } intmin,max; min=a[0]; max=a[0]; for(inti=1;i<m;i++) { if(a[i]<min) min=a[i];
if(a[i]>max) max=a[i]; } System.out.println("\n此數(shù)組中最大值是:"+max); System.out.println("\n此數(shù)組中最小值是:"+min);
//定義并初始化二維數(shù)組biAarry
int[][]biAarry={{10,20},{3,4},{55,66},{41,42}}; //打印biAarry數(shù)組元素的內(nèi)容 System.out.println("\n二維數(shù)組biAarry的各個元素是:");
for(inti=0;i<4;i++) {
for(intj=0;j<2;j++) System.out.print(biAarry[i][j]+"\t"); System.out.println(); } }}本示例中,分別演示了一維數(shù)組和二維數(shù)組的使用。
實(shí)際上,在定義并初始化數(shù)組時,也可以只給部分元素賦值,沒有賦值的元素默認(rèn)為0?!菊n堂提問】在輸出數(shù)組元素時,能否不使用循環(huán)語句逐一元素輸出,而直接輸出數(shù)組名呢?在任務(wù)3-1中,如果在求一維數(shù)組最大值和最小值的同時,要求輸出最大值和最小值元素的下標(biāo),該如何實(shí)現(xiàn)呢?
【現(xiàn)場演練】
編程計算1~9的平方值,將結(jié)果保存在一個一維數(shù)組之中。任務(wù)二
方法的定義及使用
【任務(wù)描述】任務(wù)3-2:編寫程序,定義一個變量,并賦予初值,利用方法調(diào)用輸出所求的值。跳至解題思路【必備知識】
1.方法的定義
方法的基本組成部分包括以下四部分:返回值方法名參數(shù)列表方法主體
[格式3-1方法定義]:[修飾符]返回值類型
方法名稱(類型參數(shù)1,類型參數(shù)2,…){程序主體
程序語句; return表達(dá)式;}2.方法的調(diào)用調(diào)用方法,即執(zhí)行該方法。調(diào)用方法的形式如下:(1)方法表達(dá)式對于有返回值的方法作為表達(dá)式或表達(dá)式的一部分來調(diào)用,其形式為:方法名([實(shí)際參數(shù)表])
說明:
①實(shí)際參數(shù)表是傳遞給該方法的諸參數(shù),實(shí)際參數(shù)簡稱為實(shí)參。實(shí)參可以是常量、變量或表達(dá)式,相鄰的兩個實(shí)參之間用逗號分隔。
②方法調(diào)用的過程是,將實(shí)參傳遞給形參,然后執(zhí)行方法體,當(dāng)被調(diào)方法運(yùn)行結(jié)束后,從調(diào)用該方法的語句的下一句處繼續(xù)執(zhí)行。
③實(shí)參的個數(shù)、順序、類型和形參要一一對應(yīng)。
參數(shù)傳遞方式:1、值傳遞:指實(shí)參傳遞給形參的是一個值。其特點(diǎn)是:形參的改變不會影響實(shí)參。2、引用傳遞:(2)方法語句對無返回值的方法以獨(dú)立語句的方式調(diào)用,其形式如下:方法名([實(shí)際參數(shù)表]);
示例7:以方法表達(dá)式方式調(diào)用方法
代碼請參考Example3_7。示例8:有參方法,以方法語句方式調(diào)用。
代碼請參考Example3_8。示例9:無參方法,以方法語句方式調(diào)用。重溫任務(wù)描述【解題思路】
任務(wù)3-2:1.在main()方法中聲明所需的變量。2.要賦初始值的變量,先賦予它們初始值。3.方法調(diào)用。4.在main()方法外定義調(diào)用的方法。5、輸出所求的值?!救蝿?wù)透析】01
public
classClassDemo3_2Test{02 static
intsum(intx,inty,intz)03 {04 ints;05 s=x+y+z;06 return(s);07 }08 public
static
voidmain(String[]args){09 inta=10,b=20,c=30;10 intresult=sum(a,b,c);11 System.out.println("result="+result);12 }13}在main()方法第9行聲明了3個整型變量a,b,c,并分別賦予它們初始值為10,20,30。在第10行通過sum(a,b,c)調(diào)用方法sum(),實(shí)參為a,b,c,形參為x,y,z。在2-7行執(zhí)行方法sum(),首先將實(shí)參a的值傳遞給x,將實(shí)參b的值傳遞給y,將實(shí)參c的值傳遞給z,然后執(zhí)行sum()的方法體,求得3個整數(shù)的和為60,將結(jié)果賦給s,當(dāng)執(zhí)行return語句時,方法sum()結(jié)束,返回的值為60,并回到調(diào)用該方法的賦值語句,即第10行,將返回值60賦給變量。最后執(zhí)行輸出語句,輸出變量result的值?!粳F(xiàn)場演練】運(yùn)用方法的知識,求三個整數(shù)的最大值?方法的重載方法的重載就是在同一類中允許同時存在一個以上的同名方法,只要它們的參數(shù)個數(shù)或類型不同即可。在這種情況下,該方法就叫被重載了,這個過程稱為方法的重載。示例3-12:方法的重載
代碼請參考Example3_12。
參數(shù)傳遞方式:1、值傳遞:指實(shí)參傳遞給形參的是一個值。其特點(diǎn)是:形參的改變不會影響實(shí)參。int、float、double、char2、引用傳遞:指實(shí)參傳遞給形參的是一個地址(引用)。任務(wù)三
數(shù)組參數(shù)
【任務(wù)描述】
任務(wù)3-3:編寫程序,定義一個數(shù)組,并賦予初值,利用方法調(diào)用輸出所求的值。
跳至解題思路【必備知識】在Java中,允許方法調(diào)用的參數(shù)是數(shù)組。在使用數(shù)組參數(shù)時,應(yīng)該注意以下事項(xiàng):(1)在形參表中,數(shù)組名后的括號不能省略,括號個數(shù)和數(shù)組的維數(shù)相等。不需給出數(shù)組元素的個數(shù)。(2)在實(shí)參表中,數(shù)組名后不需括號。(3)數(shù)組名做實(shí)際參數(shù)時,傳遞的是地址,而不是值,即形參和實(shí)參具有相同的存儲單元。
示例13:展示一維數(shù)組參數(shù)傳遞地址的特性。代碼請參考Example3_13。示例14:展示二維數(shù)組參數(shù)傳遞地址的特性。代碼請參考Example3_14。綜合應(yīng)用:編寫一個sort()方法,將數(shù)組元素按大到小順序排序。在main()方法中調(diào)用,觀察方法調(diào)用前后輸出的結(jié)果。遞歸調(diào)用:方法自己調(diào)用自己。案例:把求1-100之和的程序改為用方法的遞歸調(diào)用來實(shí)現(xiàn)。遞歸調(diào)用時必須有一個明確的結(jié)束條件,要不斷改變傳入的數(shù)據(jù)(實(shí)參),才可以實(shí)現(xiàn)遞歸的調(diào)用。1+2+3+4+。。。。100=?100+99+98+。。。2+1=?sum(100)100+sum(99)+99+sum(98)+……..2+sum(1)1
【示例3-15】返回數(shù)組的方法。01public
classExample3_15{02 public
static
void
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 蕪湖拆除合同范例
- 石場加工合同范例
- 廣告承接合同范例
- 勞動合同變成擔(dān)保合同范例
- 美發(fā)學(xué)徒培訓(xùn)合同范例
- 星藝裝修合同范例
- 培訓(xùn)學(xué)院合同范例
- 平谷倉儲配送合同范例
- 消毒產(chǎn)品委托生產(chǎn)合同范例
- 廚房合伙合同范例
- 2024-2025學(xué)年語文二年級上冊 部編版期末測試卷 (含答案)
- cecs31-2017鋼制電纜橋架工程設(shè)計規(guī)范
- 采礦學(xué)課程設(shè)計陳四樓煤礦1.8mta新井設(shè)計(全套圖紙)
- (完整版)HSE管理體系及措施
- 軍人體型標(biāo)準(zhǔn)對照表
- 淺談吉林省中藥材產(chǎn)業(yè)發(fā)展
- 學(xué)生學(xué)習(xí)評價量表模板
- 圖形找規(guī)律專項(xiàng)練習(xí)60題(有答案)
- 最新版《機(jī)車網(wǎng)絡(luò)控制》考試試卷【一】
- RCS系列同期壓并壓切輔助裝置說明書
- 普通發(fā)票銷售清單
評論
0/150
提交評論