




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
J
程序設(shè)計(jì)任務(wù)1:項(xiàng)目開發(fā)環(huán)境搭建任務(wù)1項(xiàng)目開發(fā)環(huán)境搭建.pptx任務(wù)2單個(gè)學(xué)生成績處理.pptx任務(wù)3系統(tǒng)界面設(shè)計(jì)與實(shí)現(xiàn).pptx任務(wù)4批量學(xué)生成績處理.pptx任務(wù)5學(xué)生基本信息管理模塊實(shí)現(xiàn).pptx任務(wù)6系統(tǒng)異常處理.pptx任務(wù)7查找功能實(shí)現(xiàn).pptx任務(wù)8系統(tǒng)存儲(chǔ)結(jié)構(gòu)優(yōu)化.pptx任務(wù)9數(shù)據(jù)的導(dǎo)入導(dǎo)出.pptx1、任務(wù)描述目錄2、技術(shù)準(zhǔn)備3、任務(wù)實(shí)施1、任務(wù)描述項(xiàng)目組接到一個(gè)新項(xiàng)目,要為某學(xué)校開發(fā)一個(gè)“學(xué)生信息管理系統(tǒng)”,經(jīng)過與客戶溝通交流,確定該系統(tǒng)的主要功能如下圖所示。整個(gè)學(xué)生信息管理系統(tǒng)主要包括兩大模塊:基本信息管理和學(xué)生成績管理,基本信息管理模塊的主要功能有學(xué)生信息的添加、刪除、修改、顯示和學(xué)生數(shù)據(jù)的導(dǎo)入導(dǎo)出,學(xué)生成績管理模塊的主要功能有統(tǒng)計(jì)課程最高分、最低分、平均分和不及格人數(shù)等。2.1、Java簡介技術(shù)準(zhǔn)備2.2、Java語言的特點(diǎn)2.3、Java程序運(yùn)行機(jī)制2.4、Java開發(fā)環(huán)境2.5、JVM、JRE與JDK之間的關(guān)系2.1
Java簡介Java是一門跨平臺(tái)、完全面向?qū)ο蟮母呒?jí)程序設(shè)計(jì)語言,于1995年5月由Sun公司(2009年4月20日被Oracle公司收購)推出。針對(duì)不同的開發(fā)市場(chǎng),Java被劃分為三個(gè)技術(shù)平臺(tái),分別是JavaSE、JavaEE和JavaME。2.1
Java簡介1.JavaSEJava平臺(tái)標(biāo)準(zhǔn)版(JavaPlatformStandardEdition,JavaSE)是為開發(fā)普通桌面和商務(wù)應(yīng)用程序提供的解決方案,是三個(gè)平臺(tái)中最核心的部分,JavaEE和JavaME都是從JavaSE的基礎(chǔ)上發(fā)展而來,JavaSE平臺(tái)中包括了Java最核心的類庫,如字符串、集合、IO、數(shù)據(jù)庫操作及網(wǎng)絡(luò)編程等。2.JavaEEJava平臺(tái)企業(yè)版(JavaPlatformEnterpriseEditon,JavaEE)是為開發(fā)企業(yè)級(jí)應(yīng)用程序提供的解決方案,主要用于開發(fā)、裝配及部署企業(yè)級(jí)應(yīng)用程序,提供了Servlet、JSP、JavaBean、EJB、WebService等相應(yīng)技術(shù)。3.JavaMEJava平臺(tái)微型版(JavaPlatformMicroEdition,JavaME)是為開發(fā)電子消費(fèi)產(chǎn)品和嵌入式設(shè)備提供的解決方案,主要用于微型數(shù)字電子設(shè)備上軟件程序的開發(fā)。2.2
Java語言的特點(diǎn)1.簡單易用Java是一門相對(duì)簡單的編程語言,它通過提供最基本的方法來完成指定的任務(wù),只需掌握一些基礎(chǔ)的概念和語法,就可以編寫出很多實(shí)際可用的程序。Java丟棄了C++中很難理解的運(yùn)算符重載、多重繼承等模糊概念,同時(shí)也不再使用C語言中的指針,而是使用引用,并且提供了自動(dòng)垃圾回收機(jī)制,使開發(fā)者不必過多操心內(nèi)存管理問題。2.完全面向?qū)ο驤ava語言采用完全面向?qū)ο蟮木幊趟枷?,相比于傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計(jì)思想,面向?qū)ο缶幊趟枷敫臃先藗儗?duì)現(xiàn)實(shí)世界的認(rèn)識(shí),同時(shí)也更有利于人們對(duì)復(fù)雜問題的理解、分析、設(shè)計(jì)和編寫。3.安全可靠Java語言不再支持指針,一切對(duì)內(nèi)存的訪問都通過引用變量來實(shí)現(xiàn),避免了直接操作內(nèi)存帶來的內(nèi)存泄露等問題,同時(shí)還提供了一套可靠的安全機(jī)制來防止惡意代碼的攻擊,程序運(yùn)行之前會(huì)利用字節(jié)確認(rèn)器進(jìn)行代碼的安全檢查,確保程序不會(huì)存在非法訪問本地資源、文件系統(tǒng)等,保證了程序的安全可靠。2.2
Java語言的特點(diǎn)4.平臺(tái)無關(guān)性Java引入了虛擬機(jī)的概念,通過Java虛擬機(jī)(JavaVirtualMachine,JVM)可以在不同的操作系統(tǒng)上(如Windows、Linux等)運(yùn)行Java程序,從而實(shí)現(xiàn)“一次編寫、到處運(yùn)行”的跨平臺(tái)特性。5.簡潔高效Java語言內(nèi)置了多線程控制,利用Java的多線程編程接口,開發(fā)人員可以更加簡潔方便地開發(fā)多線程應(yīng)用程序,有效提高程序的執(zhí)行效率。2.3
Java程序的運(yùn)行機(jī)制Java程序運(yùn)行時(shí),需要經(jīng)過編譯和運(yùn)行兩個(gè)步驟。首先將擴(kuò)展名為“.java”的源文件進(jìn)行編譯,生成擴(kuò)展名為“.class”的字節(jié)碼文件。然后,由Java虛擬機(jī)(JavaVirtualMachine,JVM)對(duì)字節(jié)碼文件進(jìn)行解釋執(zhí)行,得到程序運(yùn)行結(jié)果。由此可以看出,Java程序是由JVM負(fù)責(zé)解釋執(zhí)行的,并非操作系統(tǒng),這樣就可以很容易地實(shí)現(xiàn)Java程序的跨平臺(tái)性。只需要在不同的操作系統(tǒng)中安裝相應(yīng)的JVM,就可以運(yùn)行相同的Java程序。不同的操作系統(tǒng)有對(duì)應(yīng)不同的JVM,正是這一方式實(shí)現(xiàn)了Java程序“一次編寫、到處運(yùn)行”的特性,有效解決了同一程序在不同操作系統(tǒng)編譯時(shí)產(chǎn)生不同機(jī)器代碼的問題,從而大大降低了程序開發(fā)、維護(hù)和管理成本。需要注意的是,Java程序通過JVM實(shí)現(xiàn)了跨平臺(tái)性,但JVM本身并不是跨平臺(tái)的。即不同操作系統(tǒng)上的JVM是不同的,如Windows平臺(tái)上的JVM不能用在Linux平臺(tái)上,反之亦然。2.4
Java開發(fā)環(huán)境為使開發(fā)者能夠編譯運(yùn)行Java程序,Sun公司提供了一套Java開發(fā)環(huán)境(JavaDevelopmentKit,JDK),其中包括了Java編譯器、Java運(yùn)行工具、Java文檔生成工具、Java打包工具等。如果只是要運(yùn)行Java程序,Sun公司提供了Java運(yùn)行環(huán)境(JavaRuntimeEnvironment,JRE),JRE中只包含Java運(yùn)行工具,不包含Java編譯工具。為方便開發(fā)者使用,Sun公司在其JDK中自帶了一個(gè)JRE工具,即開發(fā)環(huán)境中包含了運(yùn)行環(huán)境,因此,開發(fā)者只需要在計(jì)算機(jī)上安裝JDK即可,無須再另行安裝JRE。2.5
JVM、JRE與JDK之間的關(guān)系JVM是運(yùn)行Java程序的核心虛擬機(jī),但運(yùn)行Java程序不僅需要核心虛擬機(jī),還需要類加載器、字節(jié)碼校驗(yàn)器及Java的基礎(chǔ)類庫等,因此JVM只是Java運(yùn)行環(huán)境JRE的一部分。開發(fā)Java程序時(shí),除了一些開發(fā)工具外,還需要運(yùn)行Java程序,因此JDK中包含有JRE。JVM、JRE與JDK之間的關(guān)系如圖所示。3.1
JDK的下載與安裝任務(wù)實(shí)施3.2環(huán)境變量的設(shè)置3.3編寫第一個(gè)Java程序3.4
IDEA的使用3.1
JDK的下載與安裝1、下載進(jìn)入Oracle官網(wǎng)Java下載頁面:/technetwork/java/javase/downloads/index.html找到要下載的版本,根據(jù)計(jì)算機(jī)操作系統(tǒng)及操作系統(tǒng)位數(shù)選擇相應(yīng)的安裝文件,如對(duì)于64位Windows操作系統(tǒng),則可選擇下圖所示“Windows”選項(xiàng)卡中的第2項(xiàng)。下載下來的文件為一個(gè)擴(kuò)展名為“.exe”的可執(zhí)行文件。3.1
JDK的下載與安裝2、安裝運(yùn)行下載的JDK安裝文件,進(jìn)入JDK的安裝界面。單擊“下一步”按鈕,進(jìn)入JDK的定制安裝界面3.1
JDK的下載與安裝(1)自定義安裝功能在定制安裝界面可選擇要安裝的功能模塊。單擊“更改”按鈕,可修改安裝路徑只需安裝開發(fā)工具和源代碼即可3.1
JDK的下載與安裝(2)自定義安裝路徑安裝目錄中最好不要出現(xiàn)中文或者空格之類的一些特殊符號(hào),避免以后出現(xiàn)一些莫名的錯(cuò)誤。3.1
JDK的下載與安裝安裝路徑設(shè)置完畢,單擊“確定”按鈕,返回定制安裝界面。單擊“下一步”,開始安裝單擊“關(guān)閉”,完成安裝3.2環(huán)境變量的設(shè)置JDK安裝完成后,編譯和運(yùn)行Java程序的文件(javac.exe和java.exe)都是放在JDK的安裝目錄下的bin目錄中,如果沒有特殊設(shè)置,運(yùn)行相應(yīng)的文件需要切換到文件所在目錄中才可以。要想在系統(tǒng)中的任何位置都能編譯和運(yùn)行Java程序,可以通過設(shè)置Path環(huán)境變量來實(shí)現(xiàn)。3.2環(huán)境變量的設(shè)置1.設(shè)置Path環(huán)境變量(1)新建一個(gè)系統(tǒng)環(huán)境變量,變量名設(shè)為:JAVA_HOME,變量值設(shè)為JDK的安裝目錄(路徑為用戶實(shí)際安裝的JDK安裝目錄),設(shè)置完成后,單擊“確定”按鈕返回。3.2環(huán)境變量的設(shè)置(2)在系統(tǒng)變量Path中添加相應(yīng)的路徑單擊“編輯”按鈕單擊“新建”按鈕輸入:%JAVA_HOME%\bin單擊“確定”按鈕返回單擊“確定”按鈕返回3.2環(huán)境變量的設(shè)置2.驗(yàn)證環(huán)境變量進(jìn)入命令窗口,隨意切換到某個(gè)目錄(保證不是JDK的安裝目錄的bin目錄即可),執(zhí)行javac命令,如果能正常地顯示javac命令的幫助信息,即說明環(huán)境變量配置成功。3.3編寫第一個(gè)Java程序Java程序的建立及運(yùn)行通常分為以下3步。(1)利用文本編輯器編輯Java源程序文件,文件擴(kuò)展名為“.java”。(2)編譯源程序文件。(3)運(yùn)行程序。3.3編寫第一個(gè)Java程序【例1-1】在屏幕上輸出一句話“Hello,China!”。1.編寫源程序在“D:\javatest”目錄中新建一個(gè)文本文檔,將其重命名為:HelloChina.java(注意文件名的大小寫),然后將此文件用記事本打開,在里面輸入程序代碼,具體內(nèi)容如下圖所示。3.3編寫第一個(gè)Java程序代碼說明:(1)publicclassHelloChina表示定義一個(gè)公共類,類名為HelloChina。publicclass都是系統(tǒng)關(guān)鍵字,public是修飾符,表示訪問權(quán)限,class用于定義類,類的所有內(nèi)容用一對(duì)大括號(hào)包裹。類名HelloChina表示定義的類的名字,由開發(fā)者自行定義,通常情況下類名都采用首字母大寫的形式。(2)Java是完全面向?qū)ο蟮木幊陶Z言,因此在Java中,類就是一個(gè)程序的基本單元,所有的代碼都需要寫在類中。在一個(gè)程序中可以定義若干個(gè)類,但只能定義一個(gè)public類,即只能在一個(gè)類前用public修飾。如果程序中定義了public類,那么源程序文件名就必須要和public修飾的類名保持一致。如果程序中沒有public類,則源程序文件名可以任意。3.3編寫第一個(gè)Java程序(3)“publicstaticvoidmain(String[]args){}”定義了一個(gè)main()方法,該方法是Java程序的執(zhí)行入口,程序?qū)膍ain()方法所屬大括號(hào)內(nèi)的代碼開始執(zhí)行。(4)main()方法的語句:System.out.println("Hello,China!");作用是在屏幕上輸出信息,輸出的內(nèi)容就是雙引號(hào)內(nèi)包裹的內(nèi)容。3.3編寫第一個(gè)Java程序2.編譯源程序進(jìn)入命令窗口,切換到源程序文件所在的目錄,執(zhí)行命令“javacHelloChina.java”,命令執(zhí)行后如果沒有任何提示信息,再次出現(xiàn)命令提示符則表示編譯通過。3.3編寫第一個(gè)Java程序3.運(yùn)行程序在命令窗口中輸入命令“javaHelloChina”運(yùn)行編譯好的字節(jié)碼文件,會(huì)在下方輸出內(nèi)容“Hello,China!”。3.4
IDEA的使用使用記事本編寫代碼速度較慢,出錯(cuò)不易排查,而且編譯和運(yùn)行程序都需要手動(dòng)輸入命令來執(zhí)行,所以在實(shí)際項(xiàng)目開發(fā)過程中很少使用它來編寫代碼。為了提高程序開發(fā)效率,我們通常都會(huì)選擇一款集成開發(fā)工具(IntegratedDevelopmentEnvironment,IDE)來進(jìn)行程序開發(fā)。常用的Java集成開發(fā)工具有很多,如IntelliJIDEA、Eclipse、JCreator、NetBeans等。在此我們選用業(yè)界應(yīng)用較廣的IntelliJIDEA(簡稱IDEA)作為項(xiàng)目的開發(fā)工具。IDEA是JetBrains公司的產(chǎn)品,分商業(yè)版和社區(qū)版,可根據(jù)自身情況到其官網(wǎng)下載相應(yīng)的版本,然后根據(jù)提示進(jìn)行安裝。本項(xiàng)目選用2019社區(qū)版。IDEA下載地址:/zh-cn/idea/download/#section=windows3.4
IDEA的使用1.新建項(xiàng)目【File】→【New】→【Project】在“ProjectSDK”下拉列表框中選擇要使用的JDK,如已經(jīng)安裝的版本沒有在下拉列表框里出現(xiàn),可單擊右側(cè)“New...”按鈕,在出現(xiàn)的對(duì)話框中找到已經(jīng)安裝的JDK的安裝目錄,選中后單擊“OK”按鈕返回。3.4
IDEA的使用設(shè)置項(xiàng)目存放路徑和項(xiàng)目名稱這個(gè)界面直接單擊“Next”設(shè)置項(xiàng)目存放路徑和項(xiàng)目名稱3.4
IDEA的使用2.新建類在src目錄上右擊,依次選擇【New】→【JavaClass】菜單項(xiàng),在彈出的新建Java類對(duì)話框(NewJavaClass)中輸入要?jiǎng)?chuàng)建的類名稱,輸入完畢后會(huì)自動(dòng)生成類的聲明代碼。3.4
IDEA的使用3輸入源代碼,運(yùn)行在代碼編輯區(qū)輸入程序源代碼點(diǎn)擊類名或main方法前面的箭頭運(yùn)行程序運(yùn)行結(jié)果J
程序設(shè)計(jì)謝謝J
程序設(shè)計(jì)任務(wù)2:單個(gè)學(xué)生成績處理1任務(wù)描述目錄2技術(shù)準(zhǔn)備3任務(wù)實(shí)施1、任務(wù)描述學(xué)生成績管理模塊需要完成學(xué)生課程成績的相關(guān)處理:如統(tǒng)計(jì)每門課程的最高分、最低分、平均分、不及格人數(shù)等。本任務(wù)主要完成對(duì)單個(gè)學(xué)生成績的處理:統(tǒng)計(jì)某個(gè)學(xué)生所選課程的總分和平均分。完成本任務(wù)需要了解和掌握J(rèn)ava中編寫程序的一些基本知識(shí):數(shù)據(jù)的表示、存儲(chǔ)和運(yùn)算等。2.1注釋技術(shù)準(zhǔn)備2.2標(biāo)識(shí)符與關(guān)鍵字2.3數(shù)據(jù)類型2.4常量與變量2.5運(yùn)算符2.6類型轉(zhuǎn)換2.7
Math類中常用方法2.1注釋注釋作用:提高程序可讀性分類:單行注釋、多行注釋和文檔注釋。1.單行注釋單行注釋以“//”開頭,可以單獨(dú)成行,也可以跟在某行代碼的后邊。2.多行注釋多行注釋以“/*”開始,以“*/”結(jié)束,中間可以有若干行內(nèi)容。3.文檔注釋文檔注釋以“/**”開始,以“*/”結(jié)束。文檔注釋通常是對(duì)程序中某個(gè)類或類中方法進(jìn)行系統(tǒng)性的解釋說明,可以使用JDK提供的javadoc工具將文檔注釋提取出來生成一份API幫助文檔。2.1注釋文檔注釋單行注釋多行注釋2.2標(biāo)識(shí)符與關(guān)鍵字1、標(biāo)識(shí)符標(biāo)識(shí)符是程序開發(fā)人員自己定義的一些符號(hào)和名稱,這些符號(hào)和名稱用來標(biāo)識(shí)編寫程序時(shí)用到的變量名、類名、方法名、文件名等。簡單地說,標(biāo)識(shí)符就是一個(gè)名字。(1)標(biāo)識(shí)符只能由字母、數(shù)字、下劃線(_)和美元符號(hào)($)組成,不能以數(shù)字開頭。長度沒有限制,如userName、user123、_user、$user都是合法的標(biāo)識(shí)符,但123user、username則是非法標(biāo)識(shí)符。(2)標(biāo)識(shí)符大小寫敏感,即嚴(yán)格區(qū)分大小寫,所以age和Age是兩個(gè)不同的標(biāo)識(shí)符。(3)不能使用關(guān)鍵字作為標(biāo)識(shí)符。(4)標(biāo)識(shí)符命名盡量做到見名知意,如用score表示成績,age表示年齡。良好的標(biāo)識(shí)符命名規(guī)范可有效提高程序易讀性。2.2標(biāo)識(shí)符與關(guān)鍵字2、關(guān)鍵字關(guān)鍵字是指Java里事先定義好并賦予了特殊含義的單詞,如public、class等。每個(gè)關(guān)鍵字都有其特殊的含義和作用,不允許通過任何方式改變其含義,也不允許其用來作為變量名、文件名等標(biāo)識(shí)符。Java中關(guān)鍵字均用小寫字母表示。2.2標(biāo)識(shí)符與關(guān)鍵字常用關(guān)鍵字:abstractbooleanbreakbytecasecatchcharclassconstcontinuedefaultdodoubleelseextendsfinalfinallyfloatforifimplementsimportintinterfacelongnewpackageprivateprotectedpublicreturnstaticsuperswitchthisthrowthrowstryvoidwhile2.3數(shù)據(jù)類型數(shù)據(jù)類型分為基本數(shù)據(jù)類型和引用數(shù)據(jù)類型兩大類?;緮?shù)據(jù)類型主要有整型、浮點(diǎn)型、字符型和布爾型,引用數(shù)據(jù)類型主要有類和數(shù)組等。整型(byte,short,int,long)基本數(shù)據(jù)類型數(shù)值型浮點(diǎn)型(float,double)字符型(char)數(shù)據(jù)類型
布爾型(boolean)類(class)數(shù)組引用數(shù)據(jù)類型2.3數(shù)據(jù)類型1.整型Java中整型數(shù)據(jù)又細(xì)分為4種不同的類型。類型名占用空間取值范圍byte(字節(jié)型)8位(1個(gè)字節(jié))-27~27-1short(短整型)16位(2個(gè)字節(jié))-215~215-1int(整型)32位(4個(gè)字節(jié))-231~231-1long(長整型)64位(8個(gè)字節(jié))-263~263-12.3數(shù)據(jù)類型整型數(shù)據(jù)就是通常所說的整數(shù),可正可負(fù)。可以有如下幾種不同表示形式。(1)十進(jìn)制形式:如3、-9。(2)八進(jìn)制形式:以0開頭,如07、-013。(3)十六進(jìn)制形式:以0x開頭,如0x15、-0xD、0x2f。(4)二進(jìn)制形式:以0b開頭,如0b101、-0b11。對(duì)于超出int型取值范圍的數(shù)需要在數(shù)值后面加字母L(或小寫l)表示是長整型數(shù)據(jù),如2000000000000000L。沒有超出int型取值范圍的數(shù)也可在數(shù)值后面加字母L(或小寫l)表示是長整型數(shù)據(jù),如23L。2.3數(shù)據(jù)類型2.浮點(diǎn)型浮點(diǎn)型數(shù)據(jù)分為單精度(float)和雙精度(double)兩種類型。類型名占用空間取值范圍float32位(4個(gè)字節(jié))1.4E-45~3.4E+38,-1.4E-45~-3.4E+38double64位(8個(gè)字節(jié))4.9E-324~1.7E+308,-4.9E-324~-1.7E+3082.3數(shù)據(jù)類型浮點(diǎn)型數(shù)據(jù)即通常所說的實(shí)數(shù)。由整數(shù)部分與小數(shù)部分組成,既可以用小數(shù)形式表示(如2.3),也可以使用科學(xué)計(jì)數(shù)法表示(如2.3e-5,2.5E2)。在使用科學(xué)計(jì)數(shù)法表示時(shí),要求字母e(或E)前面必須有數(shù)字,后面必須為整數(shù)。在Java中,一個(gè)小數(shù)會(huì)被默認(rèn)為double類型的數(shù)據(jù),如果要表示float類型數(shù)據(jù),須在數(shù)值后面加字母F(或小寫f),如2.3F,-3.4f。對(duì)于整數(shù)可在其后面加字母D(或小寫d)表示double類型數(shù)據(jù),如23D、-42d;加字母F(或小寫f)表示float類型數(shù)據(jù),如23F、-42f。2.3數(shù)據(jù)類型3.字符型字符型(char)數(shù)據(jù)是指用單引號(hào)括起來的一個(gè)字符,使用2個(gè)字節(jié)存儲(chǔ),如'a'、'3'、'*'。有一些具有特殊含義的控制字符,如回車、換行等,這些非顯示字符難以用一般形式的字符表示,通常用“\”開頭,后面跟一個(gè)固定字符來表示,稱為轉(zhuǎn)義字符,如'\r'(回車)、'\n'(換行)、'\t'(橫向制表符)。2.3數(shù)據(jù)類型4.布爾型布爾型(boolean)數(shù)據(jù)只有兩個(gè)值,即true和false。5.字符串類型字符串類型(String)數(shù)據(jù)是指用雙引號(hào)括起來的一串字符,字符個(gè)數(shù)可以是0個(gè)或多個(gè)。如"hello"、"name\tage"、"a"、""。字符個(gè)數(shù)為0的字符串稱為空字符串(簡稱空串)。String是Java的一個(gè)內(nèi)置類,是一種引用數(shù)據(jù)類型。2.4常量與變量1.常量在程序運(yùn)行過程中其值保持不變的量稱為常量,主要分為字面常量和符號(hào)常量。例如3,2.3,true等為字面常量;Math類中的PI為符號(hào)常量,代表數(shù)學(xué)中的圓周率π(值為3.141592653589793)。Java中常用的字面常量有整型常量、浮點(diǎn)型常量、字符型常量、字符串常量、布爾型常量和用于表示空值的null。Java中的自定義符號(hào)常量使用時(shí)須先定義后使用。2.4常量與變量常量定義格式:final類型名常量名=值;例定義一個(gè)用于表示稅率為0.03的符號(hào)常量:finaldoubleRATE=0.03;提示:符號(hào)常量名通常采用大寫字母表示。2.4常量與變量2.變量在程序運(yùn)行過程中其值可以變化的量稱為變量。Java是一門強(qiáng)類型的編程語言,要求變量先聲明,后使用。變量聲明格式:類型名變量名1,變量名2,...;說明:(1)變量聲明時(shí)一次可聲明一個(gè)變量(2)也可一次聲明多個(gè)變量,聲明多個(gè)變量時(shí)各變量之間用逗號(hào)分隔。2.4常量與變量變量聲明示例:intage;//一次聲明一個(gè)變量floatscore,salary;//一次聲明若干個(gè)變量也可以在聲明變量的同時(shí)為變量賦初始值,例:intage=18;floatscore=89.6f,salary;2.4常量與變量【例2?1】常量與變量使用示例2.5運(yùn)算符1、算術(shù)運(yùn)算符運(yùn)算符含義示例結(jié)果+加5+510-減6-42*乘3*412/除7/51%取模7%52++自增a=2;b=++a;a=3;b=3;--自減a=2;b=a--;a=1;b=2;2.5運(yùn)算符說明:(1)兩個(gè)整數(shù)相除的結(jié)果仍然是整數(shù)。例:5/2的結(jié)果為2,而不是2.5。(2)自增與自減運(yùn)算符只能用于變量,不能用于常量,其作用是使變量的值增1或減1。(3)自增與自減運(yùn)算符既可以前置(放在變量前面,形如++a),也可以后置(放在變量后面,形如a++)。前置時(shí)表示先自增(或自減),然后再使用變量的值;而后置時(shí)是先使用變量的值,然后再自增(或自減)。(4)算術(shù)運(yùn)算符的優(yōu)先級(jí)與數(shù)學(xué)中規(guī)定的相同,先乘除后加減。2.5運(yùn)算符【例2?2】算術(shù)運(yùn)算符應(yīng)用示例2.5運(yùn)算符2、關(guān)系運(yùn)算符運(yùn)算符含義示例結(jié)果==等于4==3false!=不等于4!=3true<
小于4<3false>
大于4>3true<=小于等于4<=3false>=大于等于4>=3true2.5運(yùn)算符說明:(1)通常情況下,關(guān)系運(yùn)算符用于比較同一類型的操作數(shù),且操作數(shù)之間能比較大小,比較才有效。(2)Java中不允許關(guān)系運(yùn)算符的連用,如“3<4<5”是不合法的。(3)關(guān)系運(yùn)算符中“<、>、<=、>=”的優(yōu)先級(jí)相同,高于優(yōu)先級(jí)相同的“==、!=”。2.5運(yùn)算符【例2?3】關(guān)系運(yùn)算符應(yīng)用示例2.5運(yùn)算符3、邏輯運(yùn)算符運(yùn)算符含義示例結(jié)果!非!a若a為false,結(jié)果為true,否則相反&&與a&&b只有a和b都為ture時(shí)結(jié)果為true,否則為false||或a||b只有a和b都為false時(shí)結(jié)果為false,否則為true2.5運(yùn)算符說明:(1)邏輯運(yùn)算符“&&”與“||”具有短路運(yùn)算特性。對(duì)“a&&b”,當(dāng)a的值為false時(shí),直接返回false,不再計(jì)算b的值。對(duì)于“a||b”,當(dāng)a為true時(shí)不再計(jì)算b的值,直接返回true。短路運(yùn)算特性可減少不必要的計(jì)算。(2)邏輯運(yùn)算符優(yōu)先級(jí)從高到低分別是:!、&&、||。2.5運(yùn)算符【例2?4】邏輯運(yùn)算符應(yīng)用示例2.5運(yùn)算符4、位運(yùn)算符位運(yùn)算符只能用于整數(shù),其內(nèi)部執(zhí)行過程是:首先將整數(shù)轉(zhuǎn)換為二進(jìn)制數(shù),然后按位進(jìn)行運(yùn)算,最后再把計(jì)算結(jié)果轉(zhuǎn)換為十進(jìn)制數(shù)返回。假設(shè)變量a為60(00111100),b為13(00001101)。運(yùn)算符含義示例結(jié)果&按位與a&b12(00001100)|按位或a|b61(00111101)~按位取反~a-61(11000011)^按位異或a^b49(00110001)<<
左移a<<2240(11110000)>>
右移a>>215(00001111)2.5運(yùn)算符說明:(1)左移與右移運(yùn)算符右側(cè)的操作數(shù)表示要移動(dòng)的位數(shù)。(2)一個(gè)數(shù)左移1位,相當(dāng)于把這個(gè)數(shù)擴(kuò)大2倍,即此數(shù)乘以2。(3)一個(gè)數(shù)右移1位,相當(dāng)于把此數(shù)縮小2倍,即除以2。2.5運(yùn)算符【例2?5】位運(yùn)算符應(yīng)用示例2.5運(yùn)算符5、賦值運(yùn)算符賦值運(yùn)算符分為簡單賦值運(yùn)算符和復(fù)合賦值運(yùn)算符。運(yùn)算符含義示例結(jié)果=簡單賦值a=3;a的值為3+=加等于a+=3;等效于a=a+3;-=減等于a-=3;等效于a=a-3;*=乘等于a*=3;等效于a=a*3;/=除等于a/=b;等效于a=a/3;%=模等于a%=b;等效于a=a%3;2.5運(yùn)算符說明:(1)賦值運(yùn)算符用于給變量賦值,賦值號(hào)左邊要求必須是變量。(2)在簡單賦值運(yùn)算符“=”前加上其他運(yùn)算符(不僅僅是表中列出的算術(shù)運(yùn)算符,還可以是位運(yùn)算符),就構(gòu)成復(fù)合賦值運(yùn)算符。(3)采用復(fù)合賦值運(yùn)算符可使程序更加簡潔。2.5運(yùn)算符【例2?6】賦值運(yùn)算符應(yīng)用示例2.5運(yùn)算符6、字符串運(yùn)算符運(yùn)算符“+”可用于連接兩個(gè)字符串。如"hello"+"java"的結(jié)果為"hellojava"。7、
條件運(yùn)算符條件運(yùn)算符也稱三元運(yùn)算符,由符號(hào)“?:”構(gòu)成。格式:條件表達(dá)式?表達(dá)式1:表達(dá)式2;運(yùn)算規(guī)則:先求條件表達(dá)式的值,如果值為true,則返回表達(dá)式1的值,否則返回表達(dá)式2的值。2.5運(yùn)算符【例2?7】利用條件運(yùn)算符判斷一個(gè)成績是否及格。2.5運(yùn)算符8.運(yùn)算符優(yōu)先級(jí)用運(yùn)算符、括號(hào)將常量、變量等連接起來有意義的式子稱為表達(dá)式。在一個(gè)表達(dá)式中可以使用多個(gè)不同的運(yùn)算符來完成相對(duì)復(fù)雜的功能。當(dāng)一個(gè)表達(dá)式中同時(shí)出現(xiàn)多個(gè)運(yùn)算符時(shí),各運(yùn)算符優(yōu)先級(jí)由高到低如表所示。優(yōu)先級(jí)運(yùn)算符含義1++--~!自增、自減、按位取反、邏輯非2*/%乘、除、取模3+-加、減4<<>>>>>移位運(yùn)算符5<><=>=小于、大于、小于等于、大于等于6==!=等于、不等于7&按位與8^按位異或9|按位或10&&邏輯與11||邏輯或12?:條件運(yùn)算符13=+=-=*=/=%=賦值運(yùn)算符2.6類型轉(zhuǎn)換當(dāng)把一種類型的數(shù)據(jù)賦給另一種類型的變量,或者是不同類型的數(shù)據(jù)參加同一運(yùn)算時(shí),需要進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換。根據(jù)轉(zhuǎn)換方式的不同,類型轉(zhuǎn)換分為兩種:自動(dòng)類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換。1.自動(dòng)類型轉(zhuǎn)換自動(dòng)類型轉(zhuǎn)換也稱為隱式類型轉(zhuǎn)換,是由系統(tǒng)自動(dòng)進(jìn)行的類型轉(zhuǎn)換,不需要顯式聲明。當(dāng)數(shù)據(jù)類型不一致時(shí),系統(tǒng)自動(dòng)把取值范圍小的數(shù)據(jù)類型轉(zhuǎn)換成取值范圍大的數(shù)據(jù)類型。2.6類型轉(zhuǎn)換【例2?8】自動(dòng)類型轉(zhuǎn)換示例。2.6類型轉(zhuǎn)換2.強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換也叫顯式類型轉(zhuǎn)換,當(dāng)需要把取值范圍大的數(shù)據(jù)類型轉(zhuǎn)換成取值范圍小的數(shù)據(jù)類型時(shí),就需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換。強(qiáng)制類型轉(zhuǎn)換會(huì)導(dǎo)致數(shù)據(jù)溢出或精度下降,使用時(shí)需要顯式聲明。格式:(類型名)表達(dá)式2.6類型轉(zhuǎn)換【例2?9】強(qiáng)制類型轉(zhuǎn)換應(yīng)用示例。2.7Math類中常用方法數(shù)學(xué)中常用的一些函數(shù),如求絕對(duì)值、開方、三角函數(shù)、對(duì)數(shù)等,Java的Math類中都提供了相應(yīng)的方法,這些方法都是靜態(tài)方法,可以直接通過類名來調(diào)用。除靜態(tài)方法外,Math類中還有兩個(gè)靜態(tài)常量PI和E,分別代表數(shù)學(xué)中的π和e。方法功能描述abs()求絕對(duì)值sqrt()求平方根ceil()上取整(大于參數(shù)的最小整數(shù)),返回值為double類型的整數(shù)floor()下取整(小于參數(shù)的最大整數(shù)),返回值為double類型的整數(shù)round()四舍五入取整,參數(shù)如果是double類型,則返回值為long類型,參數(shù)如果是float類型,返回值為int類型。sin()、cos()、tan()...數(shù)學(xué)三角函數(shù)log()、log10()對(duì)數(shù)2.7Math類中常用方法【例2?10】Math類常用方法使用示例。3.1任務(wù)要求任務(wù)實(shí)施3.2任務(wù)分析3.3任務(wù)實(shí)現(xiàn)3.1任務(wù)要求已知學(xué)生王芳所選課程數(shù)學(xué)、語文、英語各科的成績分別是80、92、88,求其成績總分和平均分。要求平均分四舍五入取整。統(tǒng)計(jì)結(jié)果按如下格式輸出。姓名 數(shù)學(xué) 語文 英語 總分 平均分王芳 80 92 88 260 873.2任務(wù)分析各科成績都為整數(shù),可直接聲明成int類型。求得的平均分是小數(shù),需要轉(zhuǎn)換成整數(shù)。如果是直接利用強(qiáng)制類型轉(zhuǎn)換,則無法實(shí)現(xiàn)四舍五入取整,可利用Math類中的round()方法來實(shí)現(xiàn)四舍五入取整。3.3任務(wù)實(shí)現(xiàn)J
程序設(shè)計(jì)謝謝J
程序設(shè)計(jì)任務(wù)3:系統(tǒng)界面設(shè)計(jì)與實(shí)現(xiàn)1任務(wù)描述目錄2技術(shù)準(zhǔn)備3任務(wù)實(shí)施1、任務(wù)描述學(xué)生信息管理系統(tǒng)需要提供相應(yīng)的操作界面來讓用戶選擇執(zhí)行相應(yīng)的功能。本任務(wù)主要完成學(xué)生信息管理系統(tǒng)界面的設(shè)計(jì)與實(shí)現(xiàn)。完成本任務(wù)需要了解和掌握3種基本控制結(jié)構(gòu)的使用。2.1順序結(jié)構(gòu)技術(shù)準(zhǔn)備2.2選擇結(jié)構(gòu)2.3循環(huán)結(jié)構(gòu)2.4編碼規(guī)范2.1順序結(jié)構(gòu)順序結(jié)構(gòu)中語句按照出現(xiàn)的先后次序依次執(zhí)行。2.1順序結(jié)構(gòu)1、賦值語句Java中利用賦值語句給變量賦值時(shí)可以有2種不同形式。(1)一次給一個(gè)變量賦值格式:<變量>=<表達(dá)式>功能:將表達(dá)式的值賦給指定變量。這是賦值語句的基本格式,也是最常用格式。此種方式支持復(fù)合賦值運(yùn)算符。(2)一次給多個(gè)變量賦相同值格式:<變量1>=<變量2>=…=<變量n>=<表達(dá)式>功能:將表達(dá)式的值分別賦給變量1、變量2、……變量n。2.1順序結(jié)構(gòu)【例3?1】賦值語句應(yīng)用示例2.1順序結(jié)構(gòu)2、輸入Java中通過Scanner類來獲取用戶的鍵盤輸入,Scanner類在java.util包中,使用時(shí)要先導(dǎo)入,代碼如下。importjava.util.Scanner;利用Scanner類獲取用戶鍵盤輸入時(shí),首先需要實(shí)例化一個(gè)Scanner對(duì)象,代碼如下。Scannersc=newScanner(System.in);然后調(diào)用其next()、nextInt()、nextFloat()、nextDouble()等相應(yīng)的方法接收用戶從鍵盤輸入的字符串、整型、單精度、雙精度類型數(shù)據(jù)。2.1順序結(jié)構(gòu)【例3?2】從鍵盤輸入用戶的姓名、年齡、成績和工資。2.1順序結(jié)構(gòu)3、輸出Java中輸出信息使用System類中的標(biāo)準(zhǔn)輸出流out的println()方法或print()方法。System類在java.lang包中,此包會(huì)自動(dòng)加載,無需自行導(dǎo)入。Println()和print()方法使用格式基本相同,參數(shù)都是一個(gè)字符串(如果給出的是其它類型或表達(dá)式,系統(tǒng)會(huì)自動(dòng)將其進(jìn)行轉(zhuǎn)換),唯一不同之處在于輸出后是否換行。println()方法在輸出完成后換行,下一次輸出將從新一行開始;print()方法在輸出完成后不換行,下一次輸出會(huì)從當(dāng)前位置繼續(xù)。2.1順序結(jié)構(gòu)【例3?3】輸出學(xué)生姓名、性別、年齡、成績信息。2.2選擇結(jié)構(gòu)1、單分支選擇結(jié)構(gòu)格式:if(條件){
語句塊;}功能:當(dāng)條件成立時(shí),執(zhí)行后面的語句塊。條件不成立時(shí),什么也不做。說明:(1)條件一般為關(guān)系表達(dá)式或邏輯表達(dá)式,需要用括號(hào)包裹。(2)語句塊可以是一條或多條語句,當(dāng)只有一條語句時(shí),外面的大括號(hào)可以省略,建議盡量不要省略。2.2選擇結(jié)構(gòu)【例3?4】從鍵盤輸入兩個(gè)整數(shù),將其從大到小輸出。2.2選擇結(jié)構(gòu)2、雙分支選擇結(jié)構(gòu)格式:if(條件){
語句塊1;}else{
語句塊2;}功能:當(dāng)條件成立時(shí),執(zhí)行語句塊1;條件不成立時(shí),執(zhí)行語句塊2。其執(zhí)行流程如圖33所示。2.2選擇結(jié)構(gòu)【例3?5】從鍵盤輸入一個(gè)成績,判斷此成績是否及格,給出相應(yīng)的提示信息。2.2選擇結(jié)構(gòu)3、多分支選擇結(jié)構(gòu)(1)多分支if語句格式:if(條件1){
語句塊1;}elseif(條件2){
語句塊2;}...elseif(條件n){
語句塊n;}else{
語句塊n+1}功能:首先判斷條件1是否成立,如果成立,則執(zhí)行語句塊1,然后結(jié)束整個(gè)if語句;否則判斷條件2是否成立,如果成立,則執(zhí)行語句塊2,然后結(jié)束整個(gè)if語句;依次類推,如果條件n也不成立,則執(zhí)行語句塊n+1。2.2選擇結(jié)構(gòu)【例3?6】從鍵盤輸入一百分制成績,輸出其相對(duì)應(yīng)的等級(jí)。90-100分為優(yōu)秀,80-89為良好,70-79為中等,60-69為及格,60分以下為不及格。2.2選擇結(jié)構(gòu)(2)switch語句格式:switch(表達(dá)式){ case值1:語句塊1;break; case值2:語句塊2;break; ... case值n:語句塊n;break; [default:語句塊n+1;]}說明:(1)switch表達(dá)式的結(jié)果可以是char、byte、short、int或String類型,不能是boolean類型,case后面的值類型應(yīng)與表達(dá)式類型一致。其執(zhí)行過程:先計(jì)算表達(dá)式的值,再從上至下依次查找與表達(dá)式值相匹配的case中的值,若找到,則執(zhí)行該case后面的語句,若找不到,如有default語句,則執(zhí)行default后面的語句,若沒有,則跳出switch語句。(2)執(zhí)行完一個(gè)case后面的語句后,若沒有break語句,則流程轉(zhuǎn)到下一個(gè)case繼續(xù)執(zhí)行。(3)case后面有多條語句時(shí),可不加{}。(4)多個(gè)case可共用一組執(zhí)行語句。2.2選擇結(jié)構(gòu)【例3?7】從鍵盤輸入0-6,輸出相應(yīng)的星期幾。2.2選擇結(jié)構(gòu)2.3循環(huán)結(jié)構(gòu)1、while循環(huán)格式:while(條件){
語句塊;}功能:當(dāng)條件成立時(shí),重復(fù)執(zhí)行語句塊(通常稱為循環(huán)體),直到條件不成立為止。2.3循環(huán)結(jié)構(gòu)【例3?8】求1-100的累加和。2.3循環(huán)結(jié)構(gòu)2、do…while循環(huán)格式:do{
語句塊;}while(條件);功能:先執(zhí)行一次語句塊(循環(huán)體),再判斷條件,如條件成立,則繼續(xù)執(zhí)行循環(huán)體,如條件不成立,則結(jié)束循環(huán)。2.3循環(huán)結(jié)構(gòu)【例3?9】求1-100所有偶數(shù)的累加和。2.3循環(huán)結(jié)構(gòu)3、for循環(huán)格式:for(表達(dá)式1;表達(dá)式2;表達(dá)式3){
循環(huán)體語句塊;}說明:表達(dá)式1通常用于設(shè)置循環(huán)初始條件,即為循環(huán)控制變量設(shè)置初始值。表達(dá)式2是循環(huán)條件,用來決定是否要繼續(xù)下一次循環(huán)。表達(dá)式3通常用于設(shè)置循環(huán)控制變量的變化。2.3循環(huán)結(jié)構(gòu)【例3?10】求1-100所有奇數(shù)的累加和。2.3循環(huán)結(jié)構(gòu)4、循環(huán)的嵌套在一個(gè)循環(huán)體內(nèi)還可以包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱之為循環(huán)的嵌套,也稱多重循環(huán)。不同的循環(huán)結(jié)構(gòu)可以互相嵌套。2.3循環(huán)結(jié)構(gòu)【例3?11】在屏幕上輸出九九乘法表。2.3循環(huán)結(jié)構(gòu)5、循環(huán)的跳轉(zhuǎn)通常情況下,循環(huán)結(jié)構(gòu)會(huì)在執(zhí)行完所有循環(huán)語句后自然結(jié)束。有些情況下,可能需要提前結(jié)束循環(huán),Java提供了break和continue兩種不同方式來提前結(jié)束循環(huán)。通常都需結(jié)合if語句判斷,當(dāng)滿足某個(gè)條件時(shí),提前結(jié)束循環(huán)。任何一種循環(huán)結(jié)構(gòu)中都可使用break和continue語句來提前結(jié)束循環(huán)。(1)break語句break語句用于提前結(jié)束整個(gè)循環(huán)。說明:break語句結(jié)束的只是它自身所在的循環(huán),如果有循環(huán)嵌套,內(nèi)層循環(huán)的提前結(jié)束不影響外層循環(huán)。2.3循環(huán)結(jié)構(gòu)【例3?12】求300以內(nèi)能被19整除的最大正整數(shù)。2.3循環(huán)結(jié)構(gòu)(2)continue語句continue語句用于提前結(jié)束本次循環(huán)。當(dāng)執(zhí)行到continue語句時(shí),系統(tǒng)會(huì)自動(dòng)跳過當(dāng)前循環(huán)體中剩下的代碼,從頭開始下一次循環(huán)?!纠??13】輸出1到10除了5之外的其它數(shù)。2.4編碼規(guī)范為了提高程序可讀性及可維護(hù)性,在編寫代碼時(shí)應(yīng)遵循編碼規(guī)范,養(yǎng)成良好的編碼風(fēng)格。Java中基本的編碼要求和規(guī)范如下。(1)使用縮進(jìn)來表示程序代碼的邏輯關(guān)系,使代碼整齊美觀,層次清晰。(2)一行代碼不要超過80個(gè)字符,盡量不要寫過長的語句。如語句過長,可在合適位置將其斷行。(3)標(biāo)識(shí)符命名盡量使用有意義的名字,做到見名知意。(4)空格與空行。運(yùn)算符兩側(cè)建議使用空格分開;不同方法之間建議增加一個(gè)空行增加程序可讀性。(5)對(duì)關(guān)鍵代碼和重要的業(yè)務(wù)邏輯代碼進(jìn)行必要的注釋。3.1系統(tǒng)業(yè)務(wù)流程設(shè)計(jì)任務(wù)實(shí)施3.2系統(tǒng)主界面實(shí)現(xiàn)3.3學(xué)生基本信息管理界面實(shí)現(xiàn)3.4學(xué)生成績管理界面實(shí)現(xiàn)3.1系統(tǒng)業(yè)務(wù)流程設(shè)計(jì)學(xué)生信息管理系統(tǒng)啟動(dòng)后,首先進(jìn)入系統(tǒng)主界面,如圖(a)所示,等待用戶輸入命令選擇相應(yīng)的功能。如果用戶輸入“info”命令,則進(jìn)入學(xué)生基本信息管理子功能模塊,界面如圖(b)所示,如果用戶輸入“score”命令,則進(jìn)入學(xué)生成績管理子功能模塊,界面如圖(c)所示。在學(xué)生基本信息管理界面,用戶可通過輸入相應(yīng)的命令進(jìn)行學(xué)生基本信息的增、刪、改、顯示及學(xué)生信息的導(dǎo)入導(dǎo)出等操作。在學(xué)生成績管理界面用戶可選擇相應(yīng)的功能進(jìn)行課程成績統(tǒng)計(jì)。3.2系統(tǒng)主界面實(shí)現(xiàn)系統(tǒng)主界面首先顯示系統(tǒng)功能菜單供用戶進(jìn)行選擇,用戶可在命令提示符“main>”后輸入相應(yīng)的命令來執(zhí)行相應(yīng)的功能,能夠接收的命令是“info”、“score”和“quit”,其他輸入無效。當(dāng)系統(tǒng)啟動(dòng)后,循環(huán)等待用戶輸入命令,直到用戶輸入命令“quit”退出為止。因每個(gè)子模塊的功能尚未實(shí)現(xiàn),在此可先用輸出相應(yīng)信息的方式來代替。3.3學(xué)生基本信息管理界面實(shí)現(xiàn)進(jìn)入學(xué)生基本信息管理子模塊后,也是先顯示系統(tǒng)功能菜單供用戶進(jìn)行選擇,用戶可在命令提示符“info>”后輸入相應(yīng)的命令來執(zhí)行相應(yīng)的功能,能夠接收的命令是“l(fā)oad”、“show”、“add”、“delete”、“modify”、“save”和“return”,其他輸入無效。當(dāng)系統(tǒng)啟動(dòng)后,循環(huán)等待用戶輸入命令,直到用戶輸入命令“return”為止。因每個(gè)具體的功能尚未實(shí)現(xiàn),在此仍先用輸出相應(yīng)信息的方式來代替每個(gè)具體功能。3.3學(xué)生基本信息管理界面實(shí)現(xiàn)參考代碼:3.4學(xué)生成績管理界面實(shí)現(xiàn)進(jìn)入學(xué)生成績管理子模塊后,也是先顯示系統(tǒng)功能菜單供用戶進(jìn)行選擇,用戶可在命令提示符“score>”后輸入相應(yīng)的命令來執(zhí)行相應(yīng)的功能,能夠接收的命令是“avg”、“max”、“min”、“fails”和“return”,其他輸入無效。當(dāng)系統(tǒng)啟動(dòng)后,循環(huán)等待用戶輸入命令,直到用戶輸入命令“return”為止。因每個(gè)具體的功能尚未實(shí)現(xiàn),也是先用輸出相應(yīng)信息的方式來代替。3.4學(xué)生成績管理界面實(shí)現(xiàn)參考代碼:J
程序設(shè)計(jì)謝謝J
程序設(shè)計(jì)任務(wù)4:批量學(xué)生成績處理1任務(wù)描述目錄2技術(shù)準(zhǔn)備3任務(wù)實(shí)施1、任務(wù)描述本任務(wù)主要完成學(xué)生信息管理系統(tǒng)中成績管理子模塊的各項(xiàng)功能,統(tǒng)計(jì)課程的最高分、最低分、平均分和不及格人數(shù)。本任務(wù)需要對(duì)所有學(xué)生的成績進(jìn)行處理,涉及批量數(shù)據(jù)的操作。要完成本任務(wù)需要了解和掌握J(rèn)ava中數(shù)組和方法的使用。2.1數(shù)組的定義與初始化技術(shù)準(zhǔn)備2.2數(shù)組的常用操作2.3二維數(shù)組2.4命令行參數(shù)數(shù)組2.5方法的定義與調(diào)用2.6方法重載2.7不定長參數(shù)2.8參數(shù)傳遞2.9變量作用域2.1數(shù)組的定義與初始化1.數(shù)組的定義數(shù)組的定義格式如下所示。數(shù)組類型[]數(shù)組名=new數(shù)組類型[數(shù)組長度];功能:聲明一個(gè)數(shù)組,并為其分配相應(yīng)的存儲(chǔ)空間。說明:(1)數(shù)組類型即數(shù)組中要存放的數(shù)據(jù)的類型,既可以是基本數(shù)據(jù)類型,也可以是引用數(shù)據(jù)類型。(2)數(shù)組類型后面跟的[]表示要聲明的是一個(gè)一維數(shù)組。(3)數(shù)組長度表示數(shù)組中可存放的數(shù)據(jù)元素的個(gè)數(shù),要求必須是常量,不允許是變量。(4)數(shù)組名為自定義,只要符合標(biāo)識(shí)符命名規(guī)則即可。2.1數(shù)組的定義與初始化例:定義一個(gè)長度為3的整型數(shù)組score。int[]score=newint[3];上述代碼在聲明數(shù)組的同時(shí)就為其分配了相應(yīng)的存儲(chǔ)空間,使用方式簡潔。數(shù)組的聲明與存儲(chǔ)空間的分配也可分開進(jìn)行,上述數(shù)組的定義也可采用如下形式。int[]score;//聲明一個(gè)用于存放整型數(shù)據(jù)的數(shù)組scorescore=newint[3];//為score數(shù)組分配存儲(chǔ)空間(也稱創(chuàng)建數(shù)組)2.1數(shù)組的定義與初始化數(shù)組是一種引用數(shù)據(jù)類型。數(shù)組元素和數(shù)組名在內(nèi)存里是分開存放的。Java把內(nèi)存分成兩種,一種叫做棧內(nèi)存,一種叫做堆內(nèi)存。棧內(nèi)存用于存放一些基本類型的變量和引用類型的變量(如數(shù)組名或?qū)ο竺6褍?nèi)存用于存放由new創(chuàng)建的數(shù)組或?qū)ο蟆?.1數(shù)組的定義與初始化2.數(shù)組的初始化數(shù)組的初始化分為動(dòng)態(tài)初始化和靜態(tài)初始化。動(dòng)態(tài)初始化是指定義數(shù)組時(shí)沒有為數(shù)組元素賦初始值,這時(shí)系統(tǒng)會(huì)自動(dòng)為數(shù)組中的元素賦初始值。Java中不同數(shù)據(jù)類型元素的默認(rèn)初始值如下表所示。數(shù)據(jù)類型默認(rèn)初始值byte、short、int、long0float、double0.0char一個(gè)空字符,即’\u0000’booleanfalse引用數(shù)據(jù)類型null,表示變量不引用任何對(duì)象2.1數(shù)組的定義與初始化靜態(tài)初始化是指在定義數(shù)組的同時(shí)就為數(shù)組元素指定相應(yīng)的初始值。格式:數(shù)組類型[]數(shù)組名=new數(shù)組類型[]{初值0,初值1,...,初值n};功能:定義數(shù)組的同時(shí)為數(shù)組指定初始值。提示:數(shù)組靜態(tài)初始化時(shí)數(shù)組長度必須省略,系統(tǒng)會(huì)自動(dòng)根據(jù)給出的初值個(gè)數(shù)決定數(shù)組的長度。如果給出數(shù)組長度,編譯時(shí)反而會(huì)出錯(cuò)。2.1數(shù)組的定義與初始化例:定義一個(gè)長度為4的整型數(shù)組,并給出相應(yīng)的初始值。int[]score=newint[]{50,60,90,80};數(shù)組靜態(tài)初始化也可將數(shù)組聲明和數(shù)組的創(chuàng)建分開寫,即上述代碼也可采用如下形式表示。int[]score;score=newint[]{50,60,90,80};數(shù)組的靜態(tài)初始化還可以采用如下更簡潔的方式。int[]score={50,60,90,80};采用此種方式時(shí),數(shù)組的聲明和創(chuàng)建不能分開寫,即寫成如下形式是錯(cuò)誤的。int[]score;score={50,60,90,80};2.2數(shù)組的常用操作1.數(shù)組元素的訪問對(duì)數(shù)組中元素可通過數(shù)組名[下標(biāo)]的方式來訪問,數(shù)組元素下標(biāo)從0開始。例:score[0],score[2]2.數(shù)組長度屬性
每個(gè)數(shù)組都有一個(gè)length屬性,通過該屬性可獲取到數(shù)組的長度。
例:score.length3.數(shù)組的遍歷
操作數(shù)組時(shí),經(jīng)常需要依次訪問數(shù)組中的每個(gè)元素,這種操作稱為數(shù)組的遍歷。2.2數(shù)組的常用操作【例
4?1】定義一個(gè)包含5個(gè)學(xué)生成績的數(shù)組,然后分別順序、逆序輸出數(shù)組中所有元素。2.2數(shù)組的常用操作foreach循環(huán)格式:for(類型名變量:數(shù)組名){
循環(huán)體}功能:對(duì)數(shù)組中的每個(gè)元素依次執(zhí)行一遍循環(huán)體。說明:類型名為數(shù)組元素的類型,循環(huán)時(shí)系統(tǒng)自動(dòng)依次將每個(gè)數(shù)組元素賦值給變量,然后執(zhí)行一遍循環(huán)體。2.2數(shù)組的常用操作【例4?2】利用foreach循環(huán)遍歷數(shù)組2.2數(shù)組的常用操作4.數(shù)組最值找一組數(shù)中的最大值或最小值也是數(shù)組的常用操作之一。找最值通常采用“打擂臺(tái)法”來實(shí)現(xiàn)。以找最大值為例:首先假設(shè)第一個(gè)元素為當(dāng)前的最大值(即擂主),用一個(gè)變量記錄其下標(biāo)然后數(shù)組中第二個(gè)元素到最后一個(gè)元素依次與當(dāng)前最大值進(jìn)行比較(打擂),誰大就記錄下誰的下標(biāo)(即當(dāng)前新擂主)當(dāng)所有元素都比較完,變量中記錄的下標(biāo)就是最大值所在的下標(biāo)(最終擂主)。2.2數(shù)組的常用操作【例4?3】已知一組學(xué)生成績,求其最高分。2.2數(shù)組的常用操作5.排序排序也是數(shù)組的常見操作,排序方法也有很多,如選擇排序、冒泡排序等。假設(shè)數(shù)組score中存放了n個(gè)學(xué)生成績,要求按成績從高到低進(jìn)行排序。采用選擇排序法進(jìn)行降序排序的過程如下:(1)從n個(gè)成績中找出最高者與score[0]交換。(2)從剩余的n-1個(gè)成績中找出最高者與score[1]交換。......(n-1)從剩余的2個(gè)成績中找出最高者與score[n-2]交換。選擇排序?qū)嶋H上就是每次從當(dāng)前的一組數(shù)中找最值與指定位置上的元素進(jìn)行交換。n個(gè)元素共需要找n-1次最值。2.2數(shù)組的常用操作【例4?4】已知一組學(xué)生的成績,將其從高到低進(jìn)行排序。2.3二維數(shù)組二維數(shù)組可以看作是一個(gè)特殊的一維數(shù)組,即數(shù)組中的每個(gè)元素本身又是一個(gè)數(shù)組。可以把二維數(shù)組的邏輯結(jié)構(gòu)比作成二維表格。表格由若干行、若干列構(gòu)成,每一行中包含的列數(shù)可以相同,也可以不相同。2.3二維數(shù)組1.二維數(shù)組定義方式1:同時(shí)指定二維數(shù)組的長度和每個(gè)數(shù)組的元素個(gè)數(shù),例:int[][]score=newint[3][4];說明:上面代碼實(shí)際上是定義了3個(gè)int[]類型的一維數(shù)組,每個(gè)一維數(shù)組中的元素又是一個(gè)長度為4的一維數(shù)組。相當(dāng)于一個(gè)行數(shù)為3、列數(shù)為4的二維表格,其邏輯結(jié)構(gòu)如下所示。2.3二維數(shù)組方式2:只指定二維數(shù)組的長度,不指定每個(gè)數(shù)組的元素個(gè)數(shù),例:int[][]score=newint[3][];說明:上述代碼只指定了二維數(shù)組的長度,相當(dāng)于只指定了二維表格的行數(shù),沒指定每行的列數(shù),可通過下面代碼指定每行中包含的列數(shù)(實(shí)際上就是為每個(gè)一維數(shù)組分配相應(yīng)的存儲(chǔ)空間)。score[0]=newint[1];score[1]=newint[2];score[2]=newint[3];其邏輯結(jié)構(gòu)如圖所示。2.3二維數(shù)組2.二維數(shù)組的靜態(tài)初始化二維數(shù)組的初始化同樣也分為動(dòng)態(tài)初始化和靜態(tài)初始化。定義時(shí)沒有指定初始值的系統(tǒng)會(huì)自動(dòng)為其賦默認(rèn)初始值。二維數(shù)組靜態(tài)初始化方法與一維數(shù)組靜態(tài)初始化類似,將要初始化的數(shù)據(jù)放在大括號(hào)內(nèi),每行數(shù)據(jù)單獨(dú)用一個(gè)大括號(hào)包裹,每個(gè)大括號(hào)中的數(shù)據(jù)個(gè)數(shù)可以相同,也可以不相同(即每行中包含的列數(shù)可以相同,也可以不同),例:int[][]score=newint[][]{{1,2},{3,4,5,6},{7,8,9}}同樣,上述代碼也可簡寫成如下形式:int[][]score={{1,2},{3,4,5,6},{7,8,9}}2.3二維數(shù)組3.二維數(shù)組元素的訪問二維數(shù)組元素的訪問通過數(shù)組名[下標(biāo)1][下標(biāo)2]的方式實(shí)現(xiàn),每個(gè)下標(biāo)都是從0開始的。下標(biāo)1相當(dāng)于行下標(biāo),下標(biāo)2相當(dāng)于列下標(biāo)。例:score[0][1]4.二維數(shù)組的遍歷二維數(shù)組元素的遍歷需要借助于雙重循環(huán),外循環(huán)用于控制行數(shù),內(nèi)循環(huán)用于控制列數(shù)。二維數(shù)組也有l(wèi)ength屬性,用于獲取數(shù)組長度。2.3二維數(shù)組【例4?5】二維數(shù)組的遍歷2.3二維數(shù)組二維數(shù)組的遍歷也可采用foreach形式遍歷:2.3二維數(shù)組5.二維數(shù)組應(yīng)用示例【例4?6】已知學(xué)生選修課程數(shù)學(xué)、英語、語文的成績(每門課程選修人數(shù)不同),求各門課程平均分。2.4命令行參數(shù)數(shù)組main()方法中的參數(shù)String[]args,稱為命令行參數(shù)數(shù)組,此數(shù)組用于接收以命令方式運(yùn)行程序時(shí)在命令行傳遞的參數(shù)?!纠??7】命令行參數(shù)數(shù)組應(yīng)用示例2.5方法的定義與調(diào)用在編寫程序時(shí),可能會(huì)碰到一段相同代碼需要重復(fù)使用多次的情況,如在數(shù)組排序時(shí)數(shù)組的遍歷輸出就用了兩次,這時(shí)就可以把這些需要重復(fù)使用的代碼定義成一個(gè)方法,以后需要用到此段代碼的時(shí)候只需要調(diào)用該方法就可以。使用方法可提高代碼的重用性,從而也可提高代碼的可維護(hù)性。Java中的方法就類似于C語言中的函數(shù)。通常情況下,在結(jié)構(gòu)化編程里面將單獨(dú)定義的一段可重復(fù)調(diào)用的代碼稱為函數(shù),在面向?qū)ο缶幊汤锩鎰t稱之為方法。2.5方法的定義與調(diào)用1.方法的定義
publicstatic返回值類型方法名([形參表]){
方法體;}說明:(1)方法可以有返回值,也可以沒有返回值。如果有返回值,則在方法體中用“return表達(dá)式”語句返回相應(yīng)的結(jié)果。表達(dá)式值的類型即返回值的類型。如果沒有返回值,則返回值類型應(yīng)設(shè)為void。(2)形參可以有0個(gè)或多個(gè)。每個(gè)形參都需要用類似“類型參數(shù)名”的形式進(jìn)行聲明,即使多個(gè)形參的類型相同,也不能共用一個(gè)類型,如(inta,b)這樣的參數(shù)聲明是不合法的,正確的聲明方式應(yīng)是:(inta,intb)。(3)形參需要用括號(hào)包裹,即使沒有形參,方法名后的括號(hào)也不能省略。(4)public表示這個(gè)方法的訪問權(quán)限是公共的,static表示這個(gè)方法是靜態(tài)方法。(5)方法名命名規(guī)則:第一個(gè)單詞首字母小寫,后面單詞首字母大寫,如printMenu。2.5方法的定義與調(diào)用2.方法的調(diào)用方法定義好后,就可以在其它方法中使用這一方法,稱為方法的調(diào)用。格式:方法名([實(shí)參表])說明:如果方法定義時(shí)沒有形參,則調(diào)用時(shí)也不必給出實(shí)參。2.5方法的定義與調(diào)用【例4?8】定義一個(gè)求階乘的方法,然后利用該方法求5的階乘。2.5方法的定義與調(diào)用【例4?9】定義一個(gè)輸出社會(huì)主義核心價(jià)值觀內(nèi)容的方法,然后在main()方法中調(diào)用。2.6方法的重載引例:設(shè)有如下應(yīng)用場(chǎng)景,要在程序中實(shí)現(xiàn)一個(gè)對(duì)數(shù)字求和的方法,數(shù)字可能是整數(shù),也可能是小數(shù),參與運(yùn)算的數(shù)可能是2個(gè),也可能是3個(gè)。此時(shí)我們可能需要定義4個(gè)不同方法來實(shí)現(xiàn),定義一個(gè)對(duì)2個(gè)整數(shù)求和的方法,定義一個(gè)對(duì)3個(gè)整數(shù)求和的方法,定義一個(gè)對(duì)2個(gè)小數(shù)求和的方法,定義一個(gè)對(duì)3個(gè)小數(shù)求和的方法。2.6方法的重載上述代碼缺點(diǎn):程序中用到的方法名比較多,不便于使用。解決辦法:方法重載。Java允許在一個(gè)類中定義多個(gè)名稱相同,但是參數(shù)個(gè)數(shù)或類型不同的方法,這就是方法的重載(方法重載實(shí)際上就是指一個(gè)類中有多個(gè)同名方法)。在調(diào)用時(shí)系統(tǒng)會(huì)自動(dòng)根據(jù)傳遞的參數(shù)個(gè)數(shù)或參數(shù)類型來決定調(diào)用哪個(gè)同名方法。方法的重載必須要滿足兩個(gè)條件:一是方法名相同,二是參數(shù)個(gè)數(shù)或參數(shù)類型不同。與返回值類型無關(guān)。2.7不定長參數(shù)在求幾個(gè)數(shù)相加時(shí),可能是兩個(gè)數(shù),也可能是三個(gè)數(shù),或者是四個(gè)、五個(gè),即參數(shù)個(gè)數(shù)不確定。如果按照前述方法得需要分別定義不同參數(shù)個(gè)數(shù)的add()方法,盡管名稱都相同,可是add()方法還是需要定義多個(gè),仍然不夠靈活,這時(shí)可采用可變長度參數(shù)(也叫不定長參數(shù))。在定義方法時(shí),在形參類型后(或者在形參名前)增加三個(gè)點(diǎn)(...),表示該形參可以接收多個(gè)參數(shù)值,接收進(jìn)來的多個(gè)參數(shù)值被當(dāng)成數(shù)組傳入。不定長參數(shù)只能處于形參列表的最后,而且一個(gè)方法中最多只能包含一個(gè)不定長參數(shù)。調(diào)用一個(gè)包含不定長形參的方法時(shí),這個(gè)不定長形參既可以接收多個(gè)參數(shù),也可以接收一個(gè)數(shù)組。2.7不定長參數(shù)【例4?12】求任意多個(gè)整數(shù)和任意多個(gè)小數(shù)的和。2.8參數(shù)傳遞方法調(diào)用時(shí)參數(shù)傳遞方向是單向傳遞,即由實(shí)參傳遞給形參。需注意的是形參如果是基本數(shù)據(jù)類型,則在方法體中對(duì)形參的修改不會(huì)影響到實(shí)參。如果形參是引用數(shù)據(jù)類型,則在方法體中對(duì)形參的修改可能會(huì)影響到實(shí)參。2.8參數(shù)傳遞【例4?13】基本數(shù)據(jù)類型做形參。2.8參數(shù)傳遞【例4?14】引用數(shù)據(jù)類型做形參。2.9變量作用域程序中用到的變量并不是在任何位置都可以訪問的,訪問權(quán)限取決于這個(gè)變量是在哪里定義的。變量起作用的代碼范圍稱為變量的作用域。變量的作用域決定了在哪一部分代碼中可以訪問哪些變量。在方法中,變量的作用域分為塊級(jí)和方法級(jí),對(duì)應(yīng)的變量分別稱為塊級(jí)變量和局部變量。塊級(jí)變量是在代碼塊(代碼塊是指用大括號(hào)包裹的一組語句)中定義的變量,其作用域?yàn)閺亩x處到所在的代碼塊結(jié)束。局部變量是在方法內(nèi)部定義的變量,其作用域?yàn)閺亩x處到方法結(jié)束。在同一作用域內(nèi)不允許有同名變量出現(xiàn),但在不同作用域內(nèi)可以有同名變量,兩者互不影響。2.9變量作用域【例4?15】塊級(jí)和方法級(jí)變量作用域應(yīng)用示例。3.1統(tǒng)計(jì)課程最高分任務(wù)實(shí)施3.2統(tǒng)計(jì)課程最低分3.3統(tǒng)計(jì)課程平均分3.4統(tǒng)計(jì)課程不及格人數(shù)3.2學(xué)生成績管理子模塊實(shí)現(xiàn)3.1統(tǒng)計(jì)課程最高分每門課程成績可以用一個(gè)一維數(shù)組來存放,3門課程都需要統(tǒng)計(jì)課程最高分,可以定義一個(gè)求課程最高分的方法,然后通過調(diào)用該方法得到每門課程的最高分。3.2統(tǒng)計(jì)課程最低分每門課程成績用一個(gè)一維數(shù)組來存放,3門課程都需要統(tǒng)計(jì)課程最低分,將求課程最低分定義成一個(gè)方法,然后通過調(diào)用該方法得到每門課程的最低分。3.3統(tǒng)計(jì)課程平均分每門課程成績用一個(gè)一維數(shù)組來存放,3門課程都需要統(tǒng)計(jì)課程平均分,可以定義一個(gè)求平均分的方法,然后通過分別調(diào)用該方法得到每門課程的平均分。3.4統(tǒng)計(jì)課程不及格人數(shù)每門課程成績可以用一個(gè)一維數(shù)組來存放,3門課程都需要統(tǒng)計(jì)課程不及格人數(shù),可以定義一個(gè)求統(tǒng)計(jì)不及格人數(shù)的方法,然后通過分別調(diào)用該方法得到每門課程相應(yīng)的不及格人數(shù)。3.5成績管理子模塊實(shí)現(xiàn)上述各功能是分開實(shí)現(xiàn)的,實(shí)際項(xiàng)目中需要將各功能整合在一起,為用戶提供相應(yīng)的功能菜單,用戶通過選擇相應(yīng)的菜單來實(shí)現(xiàn)課程數(shù)據(jù)的相關(guān)統(tǒng)計(jì)?!救蝿?wù)要求】進(jìn)入成績管理子模塊后,首先顯示相應(yīng)的功能菜單及相應(yīng)的命令提示符“score>”。用戶可在命令提示符后面輸入相應(yīng)的命令來執(zhí)行相應(yīng)的功能。能夠接收的命令是“avg”、“max”、“min”、“fails”和“return”,其他輸入無效。系統(tǒng)啟動(dòng)后,循環(huán)等待用戶輸入命令,直到用戶輸入“return”結(jié)束。3.5成績管理子模塊實(shí)現(xiàn)參考代碼:3.5成績管理子模塊實(shí)現(xiàn)參考代碼:3.5成績管理子模塊實(shí)現(xiàn)參考代碼:3.5成績管理子模塊實(shí)現(xiàn)參考代碼:3.5成績管理子模塊實(shí)現(xiàn)參考代碼:3.5成績管理子模塊實(shí)現(xiàn)參考代碼:3.5成績管理子模塊實(shí)現(xiàn)運(yùn)行結(jié)果:J
程序設(shè)計(jì)謝謝J
程序設(shè)計(jì)任務(wù)5:學(xué)生基本信息管理模塊實(shí)現(xiàn)1任務(wù)描述目錄2技術(shù)準(zhǔn)備3任務(wù)實(shí)施1、任務(wù)描述本任務(wù)采用面向?qū)ο蟪绦蚓幊谭椒▉韺?shí)現(xiàn)學(xué)生基本信息管理子模塊的主要功能:學(xué)生信息的添加、刪除、修改和顯示。完成本任務(wù)需要了解和掌握面向?qū)ο蟪绦蛟O(shè)計(jì)方法,掌握J(rèn)ava中類與對(duì)象的使用。2.1類與對(duì)象技術(shù)準(zhǔn)備2.2類的組織2.3訪問權(quán)限2.4封裝2.5繼承2.6多態(tài)2.7內(nèi)部類2.8
Lambda表達(dá)式2.1類與對(duì)象面向?qū)ο蟪绦蛟O(shè)計(jì)思想是一種更加符合人類思維習(xí)慣的編程思想,主要是針對(duì)大型軟件設(shè)計(jì)而提出的,使得軟件設(shè)計(jì)更加靈活,能夠很好地支持代碼復(fù)用和設(shè)計(jì)復(fù)用,使代碼具有更好的可讀性和可擴(kuò)展性,大幅度降低了軟件開發(fā)的難度。Java完全采用了面向?qū)ο蟮某绦蛟O(shè)計(jì)思想,是真正面向?qū)ο蟮母呒?jí)編程語言,支持封裝、繼承、多態(tài)等面向?qū)ο蟮幕竟δ堋?.1類與對(duì)象面向?qū)ο蟪绦蛟O(shè)計(jì)中,程序的基本單元是類。類是對(duì)具有相同屬性和行為的一組實(shí)例對(duì)象的抽象,一個(gè)類包含數(shù)據(jù)(描述類的屬性)和方法(對(duì)數(shù)據(jù)的操作)兩部分。例如,每個(gè)學(xué)生都有學(xué)號(hào)、姓名、成績等屬性,都有對(duì)這些屬性的操作(例如設(shè)置學(xué)生信息、讀取學(xué)生信息等)。因此,可以將描述學(xué)生屬性的數(shù)據(jù)(學(xué)號(hào)、姓名、成績)和對(duì)數(shù)據(jù)進(jìn)行操作的方法(設(shè)置學(xué)生信息、讀取學(xué)生信息)封裝在一起,形成一個(gè)學(xué)生類,每個(gè)學(xué)生都是學(xué)生類的一個(gè)具體實(shí)例對(duì)象。類與對(duì)象的關(guān)系就如數(shù)據(jù)類型和數(shù)據(jù)之間的關(guān)系:類是對(duì)象的抽象;而對(duì)象則是類的具體實(shí)例。類中用于描述對(duì)象屬性的數(shù)據(jù)稱為成員變量,描述對(duì)象行為的操作稱為成員方法,成員變量和成員方法統(tǒng)稱為類的成員。2.1類與對(duì)象1.類的定義[修飾符]class類名{
類成員定義;}說明:(1)類修飾符可以省略,也可以使用public、final、abstract,final與abstract不能同時(shí)出現(xiàn)??珊営洺桑篬public][final|abstract]。(2)類名為自定義的類的名字,須遵循標(biāo)識(shí)符命名規(guī)則。通常情況下建議類名首字母大寫。(3)類的成員包括成員變量和成員方法,不論是哪種成員,可以是0個(gè)或多個(gè),根據(jù)需要來定義。2.1類與對(duì)象(4)成員變量定義格式如下:[修飾符]數(shù)據(jù)類型變量名[=值];成員變量修飾符可以省略,也可以是public、private、protected、final、static。其中public、private、protected三個(gè)最多只能出現(xiàn)其中之一,可以與final、static組合起來修飾成員變量。簡記成:[public|private|protected][final][static]。2.1類與對(duì)象(5)成員方法定義格式如下:[修飾符]返回值類型方法名([形參表]){
方法體;}成員方法修飾符可以省略,也可以是public、private、protected、final、abstract、static,其中public、private、protected三個(gè)最多只能出現(xiàn)其中之一;abstract與final兩者最多只能出現(xiàn)其一,它們可與static組合起來修飾方法。成員方法修飾符可簡記成:[public|private|protected][final|abstract][static]。2.1類與對(duì)象【例5?1】定義一個(gè)學(xué)生類成員變量成員方法2.1類與對(duì)象2.對(duì)象的創(chuàng)建類定義好后,就可以通過該類來實(shí)例化一個(gè)對(duì)象。格式:類名對(duì)象名=new類名();例創(chuàng)建一個(gè)學(xué)生類對(duì)象:Studentstu=newStudent();上述代碼首先聲明了一個(gè)對(duì)象變量,然后為其分配存儲(chǔ)空間。這兩步通常合并在一起寫,也可分開寫成如下形式:Studentstu;stu=newStudent();與數(shù)組類似,類也是一種引用數(shù)據(jù)類型,因此上述代碼中的stu也是一個(gè)引用類型變量,stu本身存放在棧內(nèi)存中,而stu指向的真正的對(duì)象則是存儲(chǔ)在堆內(nèi)存中。2.1類與對(duì)象3.對(duì)象的使用對(duì)象創(chuàng)建完畢,就可以使用該對(duì)象。通過成員運(yùn)算符“.”來訪問對(duì)象的成員變量或調(diào)用成員方法。格式:對(duì)象名.成員變量名對(duì)象名.成員方法名([實(shí)參表])2.1類與對(duì)象【例5?2】對(duì)象的使用示例(類與測(cè)試類在不同文件中)。2.1類與對(duì)象【例5?2】對(duì)象的使用示例(類與測(cè)試類在同一文件中)。2.1類與對(duì)象【例5?2】對(duì)象的使用示例(直接在類中添加一個(gè)main()方法測(cè)試類的使用)。2.1類與對(duì)象4.構(gòu)造方法構(gòu)造方法(也叫構(gòu)造器)是類的一個(gè)特殊方法,在實(shí)例化對(duì)象時(shí)由系統(tǒng)自動(dòng)調(diào)用,如果沒有顯示定義該方法,系統(tǒng)會(huì)調(diào)用缺省構(gòu)造方法。該方法通常用于初始化對(duì)象,如為成員變量設(shè)置初始值或進(jìn)行其他必要的初始化工作。構(gòu)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中醫(yī)內(nèi)科診療工作流程規(guī)范
- 麻醉科人員崗位職責(zé)及績效考核標(biāo)準(zhǔn)
- 醫(yī)院評(píng)審標(biāo)準(zhǔn)及實(shí)施細(xì)則解讀
- 小學(xué)體操前滾翻教學(xué)課案設(shè)計(jì)
- 鍋爐改造節(jié)能方案全流程文檔
- 九年級(jí)語文字音字形專項(xiàng)復(fù)習(xí)手冊(cè)
- 小學(xué)美術(shù)教師集體備課記錄范文
- 民辦幼兒園招生宣傳策劃方案
- 建筑工地安全與工傷賠償風(fēng)險(xiǎn)預(yù)防
- 七年級(jí)數(shù)學(xué)找規(guī)律專項(xiàng)訓(xùn)練試題
- 男朋友男德守則100條
- 食品安全風(fēng)險(xiǎn)管控日管控檢查清單
- 鄉(xiāng)村振興匯報(bào)模板
- 津16D19 天津市住宅區(qū)及住宅建筑內(nèi)光纖到戶通信設(shè)施標(biāo)準(zhǔn)設(shè)計(jì)圖集 DBJT29-205-2016
- 醫(yī)院感染科室院感管理委員會(huì)會(huì)議記錄
- 高分子物理-第2章-聚合物的凝聚態(tài)結(jié)構(gòu)課件
- CNAS體系基礎(chǔ)知識(shí)培訓(xùn)課件
- 三字經(jīng)全文帶拼音打印版帶翻譯
- 河蟹健康養(yǎng)殖與常見疾病防治技術(shù)課件
- 兒童牙外傷講稿
- GB∕T 41491-2022 配網(wǎng)用復(fù)合材料桿塔
評(píng)論
0/150
提交評(píng)論