




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單元一:Java語(yǔ)言程序設(shè)計(jì)基礎(chǔ)任務(wù)一:搭建開(kāi)發(fā)環(huán)境教學(xué)目標(biāo)知識(shí)目標(biāo)了解Java語(yǔ)言歷史;掌握搭建Java集成開(kāi)發(fā)環(huán)境方法;掌握Eclipse的基本使用方法;能力目標(biāo)能會(huì)搭建Java集成開(kāi)發(fā)環(huán)境。教學(xué)內(nèi)容4任務(wù)陳述123知識(shí)準(zhǔn)備任務(wù)實(shí)施任務(wù)拓展任務(wù)實(shí)訓(xùn)5任務(wù)描述:本部分主要完成Java集成開(kāi)發(fā)環(huán)境Eclipse的搭建。1.任務(wù)陳述2.1Java的發(fā)展歷史
–1991年,美國(guó)的Sun公司成立了專(zhuān)門(mén)的研究小組對(duì)家用消費(fèi)類(lèi)電子設(shè)備方面進(jìn)行前沿研究,以James領(lǐng)導(dǎo)的Green小組在吸收C/C++語(yǔ)言的優(yōu)勢(shì)的基礎(chǔ)上,自主創(chuàng)新了一種新的語(yǔ)言。因公司門(mén)前有一棵橡樹(shù)故起名為Oak(橡樹(shù)),這就是Java語(yǔ)言的前身。
–
隨著Java技術(shù)在web方面的不斷成熟,它已成為Web應(yīng)用程序的首選開(kāi)發(fā)語(yǔ)言。
2.知識(shí)準(zhǔn)備2.1Java的發(fā)展歷史以下是Java語(yǔ)言發(fā)展歷史大事記:1995年3月,Sun公司正式向外界發(fā)布Java語(yǔ)言,Java語(yǔ)言正式誕生。1996年1月,JDK1.0發(fā)布。1997年2月,JDK1.1發(fā)布。1998年12月,JDK1.2發(fā)布,這是Java語(yǔ)言的里程碑,Java也被首次劃分為J2SE、J2EE、J2ME三個(gè)開(kāi)發(fā)技術(shù)。2000年5月,JDK1.3發(fā)布。2002年2月,JDK1.4發(fā)布。2004年10月,JDK1.5發(fā)布,同時(shí)Sun公司將JDK1.5改名為J2SE5.0。2006年6月,JDK1.6發(fā)布,也稱JavaSE6.0,同時(shí)Java的各版本去掉2的稱號(hào),J2EE改稱JavaEE,J2SE改稱JavaSE,J2ME改稱JavaME。
2.知識(shí)準(zhǔn)備2.2Java的特點(diǎn)及優(yōu)勢(shì)
Java是一種優(yōu)秀的編程語(yǔ)言,具有以下特性:平臺(tái)無(wú)關(guān)性、面向?qū)ο蟆⒖煽啃院桶踩?、多線程等。2.知識(shí)準(zhǔn)備2.3Java的運(yùn)行機(jī)制
Java程序的運(yùn)行必須經(jīng)過(guò)編寫(xiě)、編譯、運(yùn)行三個(gè)步驟。
2.知識(shí)準(zhǔn)備2.4Java的JDKJDK(JavaDevelopmentKit,Java開(kāi)發(fā)者工具箱)是Sun公司免費(fèi)提供給全世界Java程序員的Java開(kāi)發(fā)工具。其中的開(kāi)發(fā)工具:編譯工具(javac.exe)打包工具(jar.exe)等。
2.知識(shí)準(zhǔn)備3.1解決步驟(1)安裝和配置JDK;(2)安裝和配置Eclipse。3.任務(wù)實(shí)施3.2實(shí)現(xiàn)步驟(1)JDK下載官方下載地址:
/download/jdk6/6u10/promoted/b32/binaries/jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe
3.任務(wù)實(shí)施3.任務(wù)實(shí)施
(2)JDK安裝
1)雙擊下載的JDK可執(zhí)行文件進(jìn)行安裝,彈出如下窗口;
2)點(diǎn)擊“接受”按鈕,彈出如下窗口,可以通過(guò)“更改”選項(xiàng)改變JDK的安裝路徑,然后按照提示步驟逐步完成JDK的安裝。
3.任務(wù)實(shí)施
(2)環(huán)境變量配置
1)右擊“我的電腦”,打開(kāi)“屬性”,選擇“高級(jí)”里面的“環(huán)境變量”,彈出如下窗口。在新打開(kāi)的界面中系統(tǒng)變量需要設(shè)置三個(gè)屬性:JAVA_HOME、PATH和classpath。
3.任務(wù)實(shí)施2)右擊“我的電腦”,點(diǎn)擊“新建”,然后變量名寫(xiě)上“JAVA_HOME”,顧名思義就是java的安裝路徑,然后在變量值寫(xiě)上剛才的安裝路徑“C:\ProgramFiles\Java\jdk1.6.0_02”,即JDK
的安裝路徑,如圖所示。
3.任務(wù)實(shí)施3)右擊“我的電腦”,在系統(tǒng)變量里找到PATH,點(diǎn)擊“編輯”。PATH的含義就是系統(tǒng)在任何路徑下都可以識(shí)別java命令。添加變量值“;%JAVA_HOME%\bin;%java_home%\jre\bin”。(其中“%JAVA_HOME%”的意思是剛才設(shè)置的JAVA_HOME的值),如圖所示。
3.任務(wù)實(shí)施4)點(diǎn)擊“新建”,然后變量名寫(xiě)“classpath”,該變量的含義為java加載類(lèi)(binorlib)的路徑,只有類(lèi)在classpath中,java命令才能識(shí)別。其值為“.;%java_home%\lib;%java_home%\lib\tools.jar”,如圖所示。
【注意】在設(shè)置classpath時(shí),“.;”表示當(dāng)前目錄,必須添加!3.任務(wù)實(shí)施5)驗(yàn)證JDK1.6安裝是否成功。點(diǎn)擊“開(kāi)始”->“運(yùn)行,輸入"cmd",進(jìn)入命令行界面,鍵入"java-version",如果安裝成功,則系統(tǒng)顯示javaversion"1.6.0_02"……(不同版本號(hào)則不同),如圖所示。
3.任務(wù)實(shí)施6)到“/downloads/”下載相關(guān)軟件,解壓縮之后,Eclipse即可使用。在Eclipse安裝目錄下找到eclipse.exe執(zhí)行文件,雙擊就可以啟動(dòng)Eclipse。
C和C++是貝爾實(shí)驗(yàn)室的研發(fā)產(chǎn)物。C++完全向C兼容,C程序幾乎不用修改即可在C++的編譯器上運(yùn)行。C++也稱為帶類(lèi)的C,在C的基礎(chǔ)上增加了許多面向?qū)ο蟮母拍睢?/p>
Java是在C++的基礎(chǔ)上再一次改進(jìn)后的編程語(yǔ)言,側(cè)重于網(wǎng)絡(luò)和數(shù)據(jù)庫(kù)編程。
4.任務(wù)拓展一、實(shí)訓(xùn)目的能夠按照教材中任務(wù)實(shí)施的具體步驟,實(shí)現(xiàn)環(huán)境搭建。
二、實(shí)訓(xùn)內(nèi)容仿照“任務(wù)一”中任務(wù)實(shí)施的具體過(guò)程,完成:JDK的下載、JDK的安裝、環(huán)境變量設(shè)置,在命令提示符窗口中能夠運(yùn)行java命令和javac命令。
5.任務(wù)實(shí)訓(xùn)單元一:Java語(yǔ)言程序設(shè)計(jì)基礎(chǔ)任務(wù)二:初入Java世界教學(xué)目標(biāo)知識(shí)目標(biāo)了解Java程序的分類(lèi);掌握J(rèn)ava應(yīng)用程序的結(jié)構(gòu);掌握使用Eclipse創(chuàng)建Java應(yīng)用程序的步驟;能力目標(biāo)能會(huì)使用Eclipse的創(chuàng)建Java應(yīng)用程序。教學(xué)內(nèi)容4任務(wù)陳述123知識(shí)準(zhǔn)備任務(wù)實(shí)施任務(wù)拓展任務(wù)實(shí)訓(xùn)5任務(wù)描述:
使用Eclipse編寫(xiě)本教材的第一個(gè)Java程序,要求輸出一個(gè)字符串:”WelcometoJavaWorld!”。運(yùn)行結(jié)果如下所示:1.任務(wù)陳述2.1Java程序結(jié)構(gòu)2.1.1Java應(yīng)用程序
2.知識(shí)準(zhǔn)備publicclassWelcome{publicstaticvoidmain(String[]args){
…這里填寫(xiě)代碼!...}}外層框架Java入口程序框架填寫(xiě)代碼2.1.2.JavaApplet2.知識(shí)準(zhǔn)備publicclassWelcomeextendsApplet{
……
}JavaApplet入口點(diǎn)填寫(xiě)代碼2.2使用Eclipse創(chuàng)建Java程序的步驟使用Eclipse編寫(xiě)Java程序步驟:1、創(chuàng)建一個(gè)Java項(xiàng)目2、手動(dòng)創(chuàng)建Java源程序3、編譯運(yùn)行Java源程序2.知識(shí)準(zhǔn)備2.2使用Eclipse創(chuàng)建Java程序的步驟使用Eclipse編寫(xiě)Java程序步驟:1、創(chuàng)建一個(gè)Java項(xiàng)目2、手動(dòng)創(chuàng)建Java源程序3、編譯運(yùn)行Java源程序2.知識(shí)準(zhǔn)備第一個(gè)Java應(yīng)用程序:
2.知識(shí)準(zhǔn)備publicclassWelcome{publicstaticvoidmain(String[]args){System.out.println(“WelcometoJavaWorld!");}}
2.知識(shí)準(zhǔn)備publicclassWelcome{
publicstaticvoidmain(String[]args){System.out.println("WelcometoJavaWorld!");}}關(guān)鍵字高亮顯示類(lèi)名與文件名完全一樣main方法是Java程序執(zhí)行的入口點(diǎn){和}一一對(duì)應(yīng),缺一不可main方法四要素必不可少?gòu)目刂婆_(tái)輸出信息3.1解決步驟(1)按照2.2部分所示步驟創(chuàng)建一個(gè)名為“Welcome”的類(lèi);(2)在main方法中書(shū)寫(xiě)向控制臺(tái)打印信息的代碼
;3.任務(wù)實(shí)施3.2任務(wù)代碼packagecom.task02;//包名publicclassWelcome{ publicstaticvoidmain(String[]args){//程序執(zhí)行入口
//TODOAuto-generatedmethodstub System.out.print("WelcometoJavaWorld!");//控制臺(tái)輸出語(yǔ)句
}}3.任務(wù)實(shí)施Java程序運(yùn)行時(shí)有一個(gè)入口,Java定義該入口的格式如下:
publicstaticvoidmain(String[]args);main方法中有一個(gè)String數(shù)組類(lèi)型的參數(shù)“args”。參數(shù)可以通過(guò)命令行傳入。4.任務(wù)拓展 publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub System.out.println(args[0]);//輸出第一個(gè)參數(shù)
System.out.println(args[1]);//輸出第二個(gè)參數(shù)
System.out.println(args[2]);//輸出第三個(gè)參數(shù)
System.out.println(args[3]);//輸出第四個(gè)參數(shù)
}
右鍵單擊“Welcome.java”->“RunAs”->“RunConfiguration”。在彈出窗口下“Arguments”下的“Programarguments”中輸入”WelcomtoJavaWorld!”,點(diǎn)擊“Run”按鈕。4.任務(wù)拓展一、實(shí)訓(xùn)目的
1、掌握使用Eclipse開(kāi)發(fā)簡(jiǎn)單Java程序;
2、掌握J(rèn)ava程序的框架;
3、掌握創(chuàng)建一個(gè)Java程序的步驟;
4、掌握J(rèn)ava項(xiàng)目組織結(jié)構(gòu)。
二、實(shí)訓(xùn)內(nèi)容仿照“任務(wù)二”在Eclipse中編寫(xiě)一個(gè)輸出自己的基本信息(如所在學(xué)校、所屬專(zhuān)業(yè)、姓名和年齡)的JavaApplication程序。
5.任務(wù)實(shí)訓(xùn)任務(wù)三:求扇形周長(zhǎng)和面積程序設(shè)計(jì)單元一:Java語(yǔ)言程序設(shè)計(jì)基礎(chǔ)教學(xué)目標(biāo)知識(shí)目標(biāo)掌握J(rèn)ava的標(biāo)識(shí)符、關(guān)鍵字和保留字;掌握J(rèn)ava的注釋方法;掌握J(rèn)ava的數(shù)據(jù)類(lèi)型;掌握J(rèn)ava的運(yùn)算符和表達(dá)式。能力目標(biāo)能會(huì)使用Java注釋方法;能會(huì)Java數(shù)據(jù)類(lèi)型轉(zhuǎn)換;運(yùn)用Java常用的運(yùn)算符進(jìn)行程序設(shè)計(jì)。教學(xué)內(nèi)容4任務(wù)陳述123知識(shí)準(zhǔn)備任務(wù)實(shí)施任務(wù)拓展任務(wù)實(shí)訓(xùn)5任務(wù)描述:
輸入扇形的半徑和角度,經(jīng)過(guò)程序執(zhí)行在控制臺(tái)輸出扇形的周長(zhǎng)和面積。要求:扇形的周長(zhǎng)只保留整數(shù)部分,舍掉小數(shù)部分。運(yùn)行結(jié)果如下所示:1.任務(wù)陳述2.1Java中的標(biāo)識(shí)符程序中的各個(gè)元素加以命名時(shí),使用的命名記號(hào)稱為標(biāo)識(shí)符。Java中的包、類(lèi)、方法、參數(shù)和變量的名字,可由任意順序的大小寫(xiě)字母、數(shù)字、下劃線(_)和美元符號(hào)($)組成,但標(biāo)識(shí)符不能以數(shù)字開(kāi)頭,不能是Java中的保留字或關(guān)鍵字。2.知識(shí)準(zhǔn)備2.2Java中的關(guān)鍵字和其他語(yǔ)言一樣,Java中也有許多關(guān)鍵字,如public、static等。這些關(guān)鍵字不能當(dāng)作標(biāo)識(shí)符使用。下面列出了Java中的關(guān)鍵字,這些關(guān)鍵字并不需要讀者去強(qiáng)記,因?yàn)橐坏┦褂昧诉@些關(guān)鍵字做標(biāo)識(shí)符時(shí),編輯器會(huì)自動(dòng)提示錯(cuò)誤。2.知識(shí)準(zhǔn)備2.知識(shí)準(zhǔn)備關(guān)鍵字用途boolean、byte、char、double、float、int、long、short、void基本類(lèi)型true、false布爾類(lèi)型abstract、final、private、protected、public、static修飾說(shuō)明synchronized線程同步if、else、switch、case、default、do、while、for控制語(yǔ)句break、continue、return控制轉(zhuǎn)移try、catch、finally、throws、assert異常處理new、super、this、instanceof、null對(duì)象創(chuàng)建、引用native、transient、volatile其它2.3Java中的保留字所謂保留字是指Java中現(xiàn)在還沒(méi)有用到,但是以后隨著java版本的升級(jí)可能用到。主要有兩個(gè):goto和const。與關(guān)鍵字一樣,在程序里保留字不能用來(lái)做為自定義的標(biāo)識(shí)符。2.知識(shí)準(zhǔn)備2.4Java中的注釋為程序添加注釋可以用來(lái)解釋程序的某些語(yǔ)句的作用和功能,提高程序的可讀性。也可以使用注釋在原程序中插入設(shè)計(jì)者的個(gè)人信息。此外,還可以用程序注釋來(lái)暫時(shí)屏蔽某些程序語(yǔ)句,讓編譯器暫時(shí)不要處理這部分語(yǔ)句,等到需要處理的時(shí)候,只需把注釋標(biāo)記取消就可以了。2.知識(shí)準(zhǔn)備2.知識(shí)準(zhǔn)備publicclassWelcome{publicstaticvoidmain(String[]args){
//輸出消息到控制臺(tái)
System.out.println("WelcometoJavaWorld!");}}單行注釋以//開(kāi)始,以行末結(jié)束2.知識(shí)準(zhǔn)備/**Welcome.java*2012-5-8*第一個(gè)Java程序*/publicclassWelcome{publicstaticvoidmain(String[]args){System.out.println("WelcometoJavaWorld!");}}文件的名稱日期功能說(shuō)明符號(hào)/**/指示中間的語(yǔ)句是該程序中的注釋多行注釋以/*開(kāi)始,以*/結(jié)束2.5Java中的分隔符Java和其他語(yǔ)言一樣有起分割作用的特殊符號(hào),稱為分隔符Java里的分割符有6個(gè),分別是分號(hào);大括號(hào){}、方括號(hào)[]、小括號(hào)()、圓點(diǎn).、空格。2.知識(shí)準(zhǔn)備2.6Java中的變量與常量2.6.1.Java中的常量所謂常量,就是程序運(yùn)行過(guò)程中不改變的量。常量有不同類(lèi)型:布爾常量、整數(shù)型常量、字符型常量、浮點(diǎn)型常量和字符串型常量。不同數(shù)據(jù)類(lèi)型在后續(xù)內(nèi)容會(huì)具體講解。在Java語(yǔ)言中,使用final關(guān)鍵字聲明常量,格式如下:
final常量類(lèi)型常量標(biāo)識(shí)符[=數(shù)值];例如:finalPI=3.1415;//聲明一個(gè)常量PI。2.知識(shí)準(zhǔn)備【注意】在Java語(yǔ)言中,定義常量的時(shí)候一般都用大寫(xiě)字符。2.6.2.Java中的變量日常生活中把眾多事物進(jìn)行歸納、所謂變量,就是值可以改變的量,變量用來(lái)存放數(shù)據(jù)并保存對(duì)象的狀態(tài)。變量的聲明格式如下:變量類(lèi)型變量名;例如:Stringname;//聲明一個(gè)變量name。變量聲明之后,即可以對(duì)其進(jìn)行賦值,例如使用如下方式對(duì)上述變量name進(jìn)行賦值,格式如下:變量名=數(shù)值;
例如:name=”Tom”;//為變量name賦值。2.知識(shí)準(zhǔn)備2.7Java中的數(shù)據(jù)類(lèi)型Java的數(shù)據(jù)類(lèi)型劃分為兩大類(lèi):基本數(shù)據(jù)類(lèi)型和引用數(shù)據(jù)類(lèi)型。2.知識(shí)準(zhǔn)備2.7.1.基本數(shù)據(jù)類(lèi)型1.整數(shù)型整數(shù)型是指不帶小數(shù)的數(shù),但包括負(fù)數(shù)。例如123、-345。整數(shù)型變量有四種用來(lái)存儲(chǔ)整數(shù):字節(jié)型、字符型、整型、長(zhǎng)整型。2.浮點(diǎn)型浮點(diǎn)型分為float和double兩種類(lèi)型。3.字符型數(shù)據(jù)Java中的字符通過(guò)Unicode字符編碼,以二進(jìn)制的形式存儲(chǔ)到計(jì)算機(jī)中。Unicode編碼采用無(wú)符號(hào)編碼,一共可存儲(chǔ)65536個(gè)字符,所以Java中的字符幾乎可以處理所有國(guó)家的語(yǔ)言文字。4.邏輯型聲明為邏輯型的常量或變量用來(lái)存儲(chǔ)邏輯值,邏輯值只有true和false,分別用來(lái)代表邏輯判斷中的“真”和“假”,邏輯型利用關(guān)鍵字“boolean”進(jìn)行聲明。2.知識(shí)準(zhǔn)備2.7.2.引用數(shù)據(jù)類(lèi)型Java語(yǔ)言中除8種基本數(shù)據(jù)類(lèi)型以外的數(shù)據(jù)類(lèi)型被稱為引用數(shù)據(jù)類(lèi)型,也稱復(fù)合數(shù)據(jù)類(lèi)型。包括類(lèi)引用、接口引用以及數(shù)組引用。在程序中聲明的引用類(lèi)型變量只是為該對(duì)象起一個(gè)名字,或者說(shuō)是對(duì)該對(duì)象的引用,變量值是對(duì)象在內(nèi)存空間的存儲(chǔ)地址而不是對(duì)象本身,因此稱為引用類(lèi)型。2.知識(shí)準(zhǔn)備2.8類(lèi)型轉(zhuǎn)換Java的數(shù)據(jù)類(lèi)型在定義時(shí)就已經(jīng)確定了,因此不能隨意轉(zhuǎn)換成其它的數(shù)據(jù)類(lèi)型,但Java容許用戶有限度地做類(lèi)型轉(zhuǎn)換處理。數(shù)據(jù)類(lèi)型的轉(zhuǎn)換方式可分為“自動(dòng)類(lèi)型轉(zhuǎn)換”及“強(qiáng)制類(lèi)型轉(zhuǎn)換”兩種。2.知識(shí)準(zhǔn)備2.8.1.自動(dòng)類(lèi)型轉(zhuǎn)換在某種條件下,系統(tǒng)自動(dòng)完成類(lèi)型轉(zhuǎn)換兩種類(lèi)型兼容例如:int和double兼容目標(biāo)類(lèi)型大于源類(lèi)型例如:double型大于int型對(duì)于表達(dá)式如果一個(gè)操作數(shù)為double型,則整個(gè)表達(dá)式可提升為double型2.知識(shí)準(zhǔn)備intbefore=20;//apple筆記本市場(chǎng)份額doublerise=9.8;//增長(zhǎng)的份額intnow=before+rise;//現(xiàn)在的份額intnow=before+(int)rise;去年Apple筆記本所占的市場(chǎng)份額是20,今年增長(zhǎng)的市場(chǎng)份額是9.8,求今年所占的份額?編譯出錯(cuò):不能完成自動(dòng)類(lèi)型轉(zhuǎn)換(類(lèi)型名)表達(dá)式強(qiáng)制類(lèi)型轉(zhuǎn)換intb=(int)10.2;doublea=10;intc=(int)a;2.知識(shí)準(zhǔn)備更改為2.8.2.強(qiáng)制類(lèi)型轉(zhuǎn)換2.9運(yùn)算符與表達(dá)式2.9.1.賦值運(yùn)算符2.知識(shí)準(zhǔn)備變量名表達(dá)式;=Z=(X*2)+(5–Y)表達(dá)式表達(dá)式表達(dá)式表達(dá)式舉例2.9.1.算術(shù)運(yùn)算符2.知識(shí)準(zhǔn)備操作數(shù)操作數(shù)運(yùn)算符+-*/%2.9.3.關(guān)系運(yùn)算符關(guān)系運(yùn)算符用來(lái)比較兩個(gè)值的關(guān)系關(guān)系運(yùn)算符包括:>(大于)、<(小于)、<=(小于等于)、>=(大于等于)、==(等于)、!=(不等于)。關(guān)系運(yùn)算符的運(yùn)算結(jié)果是boolean型,當(dāng)運(yùn)算符對(duì)應(yīng)的關(guān)系成立時(shí),運(yùn)算結(jié)果是true,否則是false。2.知識(shí)準(zhǔn)備2.9.4.邏輯運(yùn)算符邏輯運(yùn)算符包括:&&、||和!。其中&&,||為二目運(yùn)算符,實(shí)現(xiàn)邏輯與,邏輯或。!為單目運(yùn)算符,實(shí)現(xiàn)邏輯非。邏輯運(yùn)算符的操作元必須是boolean型數(shù)據(jù),例如:2>8&&9>2的結(jié)果為false;2>8||9>2的結(jié)果為true。2.知識(shí)準(zhǔn)備2.9.5.自增自減運(yùn)算符自增(++)與自減(--)運(yùn)算符在C/C++中就已經(jīng)存在了,Java仍然將它們保留了下來(lái),是因?yàn)樗鼈兙哂邢喈?dāng)大的便利性。善用遞增與遞減運(yùn)算符可使程序更加簡(jiǎn)潔。例如,聲明一個(gè)int類(lèi)型的變量a,在程序運(yùn)行中想讓它加1,語(yǔ)句如下:a=a+1;//a加1后再賦值給a存放。將a的值加1后再賦值給a存放。也可以利用遞增運(yùn)算符“++”寫(xiě)出更簡(jiǎn)潔的語(yǔ)句,而語(yǔ)句的意義是相同的:a++;//a加1后再賦值給a存放,a++為簡(jiǎn)潔寫(xiě)法。2.知識(shí)準(zhǔn)備2.9.6.位移運(yùn)算符任何信息在計(jì)算機(jī)中都是以二進(jìn)制的形式存在的,位運(yùn)算符對(duì)操作數(shù)中的每個(gè)二進(jìn)制位都進(jìn)行運(yùn)算。為運(yùn)算符包括:~(位反)、>>(右移)、<<(左移)、>>>(不帶符號(hào)的右移)。2.知識(shí)準(zhǔn)備2.9.7.括號(hào)運(yùn)算符括號(hào)()也是Java的運(yùn)算符,括號(hào)運(yùn)算符()是用來(lái)處理表達(dá)式的優(yōu)先級(jí)的。以一個(gè)簡(jiǎn)單的加減乘除式子為例:3+5+4*6-7;//未加括號(hào)的表達(dá)式。2.知識(shí)準(zhǔn)備3.1解決步驟(1)在Eclipse的項(xiàng)目中創(chuàng)建包c(diǎn)om.task03,再創(chuàng)建類(lèi)AreaAndPerimeterOfFan。(2)在Main方法中定義所需要的變量和常量。(3)從命令行參數(shù)接收輸入的數(shù)據(jù),并轉(zhuǎn)化為float類(lèi)型。(4)根據(jù)扇形的公式求面積和周長(zhǎng)。(5)在控制臺(tái)輸出扇形的面積和周長(zhǎng)。3.任務(wù)實(shí)施3.2任務(wù)代碼publicstaticvoidmain(Stringargs[]) { finalfloatPI=3.1415926927f;//定義常量
floatperimeter,area;//周長(zhǎng)和面積
floatradius=Float.parseFloat(args[0]);//由字符串轉(zhuǎn)成數(shù)值
floatangle=Float.parseFloat(args[1]);//角度值
area=PI*radius*radius*angle/360;//計(jì)算面積
perimeter=2*PI*radius*angle/360+2*radius;//計(jì)算周長(zhǎng)
intperimeterInt=(int)perimeter; System.out.println("扇形的半徑:"+radius); System.out.println("扇形的角度:"+angle); System.out.println("扇形的面積:"+area); System.out.println("扇形的周長(zhǎng)(只保留整數(shù)部分):"+perimeterInt); }3.任務(wù)實(shí)施Java中規(guī)定了運(yùn)算符的優(yōu)先次序,即優(yōu)先級(jí)。當(dāng)一個(gè)表達(dá)式中有多個(gè)運(yùn)算時(shí)將按規(guī)定的優(yōu)先級(jí)進(jìn)行運(yùn)算,表3-1列出了各個(gè)運(yùn)算符的優(yōu)先級(jí)的排列,數(shù)字越小的表示優(yōu)先級(jí)越高。4.任務(wù)拓展4.任務(wù)拓展優(yōu)先級(jí)運(yùn)算符類(lèi)結(jié)合性1()括號(hào)運(yùn)算符由左至右1[]方括號(hào)運(yùn)算符由左至右2!、+(正號(hào))、-(負(fù)號(hào))一元運(yùn)算符由右至左2~位邏輯運(yùn)算符由右至左2++、--遞增與遞減運(yùn)算符由右至左3*、/、%算術(shù)運(yùn)算符由左至右4+、-算術(shù)運(yùn)算符由左至右5<<、>>位左移、右移運(yùn)算符由左至右6>、>=、<、<=關(guān)系運(yùn)算符由左至右7==、!=關(guān)系運(yùn)算符由左至右8&(位運(yùn)算符AND)位邏輯運(yùn)算符由左至右9^(位運(yùn)算符號(hào)XOR)位邏輯運(yùn)算符由左至右10|(位運(yùn)算符號(hào)OR)位邏輯運(yùn)算符由左至右11&&邏輯運(yùn)算符由左至右12||邏輯運(yùn)算符由左至右13?:條件運(yùn)算符由右至左14=賦值運(yùn)算符由右至左一、實(shí)訓(xùn)目的1、能較熟練的使用Eclipse開(kāi)發(fā)簡(jiǎn)單Java程序;2、掌握變量的定義方式;3、掌握J(rèn)ava運(yùn)算符應(yīng)用和表達(dá)式的書(shū)寫(xiě);4、掌握簡(jiǎn)單調(diào)試和排錯(cuò)方法。二、實(shí)訓(xùn)內(nèi)容仿照“任務(wù)三”,實(shí)現(xiàn)一個(gè)數(shù)字加密器。運(yùn)行時(shí)輸入加密前的整數(shù),通過(guò)加密運(yùn)算后,輸出加密后的結(jié)果,加密結(jié)果仍為一整數(shù)。加密規(guī)則為:加密結(jié)果=(整數(shù)*10+5)/2+3.141595.任務(wù)實(shí)訓(xùn)任務(wù)三:取月份天數(shù)程序設(shè)計(jì)單元一:Java語(yǔ)言程序設(shè)計(jì)基礎(chǔ)教學(xué)目標(biāo)知識(shí)目標(biāo)理解常用程序邏輯結(jié)構(gòu);掌握if條件語(yǔ)句結(jié)構(gòu);掌握if-else條件語(yǔ)句結(jié)構(gòu);掌握掌握多重條件語(yǔ)句結(jié)構(gòu)。能力目標(biāo)能會(huì)使用if-else條件語(yǔ)句結(jié)構(gòu)完成條件編程;會(huì)使用多重條件語(yǔ)句結(jié)構(gòu);能會(huì)使用Switch-case語(yǔ)句完成程序設(shè)計(jì)。教學(xué)內(nèi)容4任務(wù)陳述123知識(shí)準(zhǔn)備任務(wù)實(shí)施任務(wù)拓展任務(wù)實(shí)訓(xùn)5任務(wù)描述:
經(jīng)過(guò)程序執(zhí)行在控制臺(tái)輸出扇形的周長(zhǎng)和面積。要求:扇形的周長(zhǎng)只保留整數(shù)部分,舍掉小數(shù)部分。運(yùn)行結(jié)果如下所示:1.任務(wù)陳述2.1順序結(jié)構(gòu)程序至上而下逐行執(zhí)行,一條語(yǔ)句執(zhí)行完之后繼續(xù)執(zhí)行下一條語(yǔ)句,一直到程序的末尾。
2.知識(shí)準(zhǔn)備2.2選擇結(jié)構(gòu)2.8.1.if語(yǔ)句結(jié)構(gòu)if條件結(jié)構(gòu)是根據(jù)條件判斷之后再做處理。2.知識(shí)準(zhǔn)備if(條件表達(dá)式){//語(yǔ)句}表達(dá)式語(yǔ)句假真2.8.2.if-else語(yǔ)句結(jié)構(gòu)2.知識(shí)準(zhǔn)備if(條件){//語(yǔ)句1}else{//語(yǔ)句2}真表達(dá)式語(yǔ)句1假語(yǔ)句22.8.3.多重條件語(yǔ)句結(jié)構(gòu)多重if結(jié)構(gòu)就是在else部分中還包含其他if塊。2.知識(shí)準(zhǔn)備
if
(條件){//語(yǔ)句
}
elseif
(條件)
{//語(yǔ)句
}else
{//語(yǔ)句
}假真真假表達(dá)式1語(yǔ)句1表達(dá)式2語(yǔ)句2語(yǔ)句32.2swtivh結(jié)構(gòu)2.知識(shí)準(zhǔn)備switch(表達(dá)式){
case
常量1:
語(yǔ)句;
break;
case
常量2:
語(yǔ)句;
break;
default:
語(yǔ)句;}如果沒(méi)有找到匹配的值計(jì)算表達(dá)式的值如果等于常量1如果等于常量23.1解決步驟(1)獲得用戶在命令行輸入的月份,并轉(zhuǎn)換為整形;(2)使用if分支或switch判斷,2月28天,1月、3月、5月、7月、8月、10月、12月的天數(shù)是31天,其他月份是30天。3.任務(wù)實(shí)施3.2任務(wù)代碼 intmonth; month=Integer.parseInt(args[0]);//得到用戶輸入的月份
if(month==2)//使用IF分支控制判斷月份擁有的天數(shù)
{ System.out.print(month+"月有28天"); } elseif(month==1||month==3||month==5||month==7||month==8||month==10||month==12) { System.out.print(month+"月有31天"); } else { System.out.print(month+"月有30天"); }3.任務(wù)實(shí)施3.2任務(wù)代碼intmonth; month=Integer.parseInt(args[0]);//得到輸入月份
switch(month) { case2: System.out.print(month+"月有28天"); break; case1: case3: ……
System.out.print(month+"月有31天"); break; default: System.out.print(month+"月有30天"); break; }3.任務(wù)實(shí)施
在任務(wù)中,存在一個(gè)2月份閏年和非閏年天數(shù)不同的問(wèn)題,要實(shí)現(xiàn)準(zhǔn)確的天數(shù)確定我們需要對(duì)給定年數(shù)判定是否是閏年,判定公歷閏年應(yīng)遵循的一般規(guī)律為:四年一閏,百年不閏,四百年再閏。4.任務(wù)拓展任務(wù)代碼intyear=Integer.parseInt(args[0]); intm=year%100; if(m==0) { if((year%400)==0) System.out.print(year+"年是閏年,2月份有29天"); else System.out.print(year+"年不是閏年,2月份有28天"); }else { if((year%4)==0) System.out.print(year+"年是閏年,2月份有29天"); else System.out.print(year+"年不是閏年,2月份有28天"); }4.任務(wù)拓展一、實(shí)訓(xùn)目的1、能較熟練的掌握上機(jī)步驟和程序開(kāi)發(fā)的全過(guò)程;2、基本掌握分支流程控制結(jié)構(gòu);3、能熟練if、if-else、if-elseif條件結(jié)構(gòu);4、基本理解switch分支結(jié)構(gòu)。5.任務(wù)實(shí)訓(xùn)二、實(shí)訓(xùn)內(nèi)容仿照“任務(wù)四”,計(jì)算個(gè)人所得稅。設(shè)某人月收入為x元,假設(shè)個(gè)人所得稅征收方法如下:當(dāng)x<=3500時(shí),不需要交稅;當(dāng)3500<x≤5000時(shí),應(yīng)征稅為(x-3500)*3%;當(dāng)5000<x≤8000時(shí),應(yīng)征稅為(x-5000)*10%+1500*3%;當(dāng)8000<x≤12500時(shí),應(yīng)征稅為(x-8000)*20%+3000*10%+1500*3%;當(dāng)12500<x≤15000時(shí),應(yīng)征稅為(x-12500)*25%+4500*20%+3000*10%+1500*3%;當(dāng)15000<x時(shí),應(yīng)征稅為(x-15000)*30%+2500*25%+4500*20%+3000*10%+1500*3%;
5.任務(wù)實(shí)訓(xùn)任務(wù)五:猜數(shù)字游戲程序設(shè)計(jì)單元一:Java語(yǔ)言程序設(shè)計(jì)基礎(chǔ)教學(xué)目標(biāo)知識(shí)目標(biāo)掌握while循環(huán)結(jié)構(gòu);掌握do-while循環(huán)結(jié)構(gòu);掌握f(shuō)or循環(huán)結(jié)構(gòu)。能力目標(biāo)能會(huì)使用while循環(huán)結(jié)構(gòu);能會(huì)使用do-while循環(huán)結(jié)構(gòu);能會(huì)使用for循環(huán)結(jié)構(gòu)。教學(xué)內(nèi)容4任務(wù)陳述123知識(shí)準(zhǔn)備任務(wù)實(shí)施任務(wù)拓展任務(wù)實(shí)訓(xùn)5任務(wù)描述:
猜數(shù)游戲:給出一個(gè)等式,比如x*4=20,其中x是未知數(shù)。編寫(xiě)一個(gè)程序?qū)崿F(xiàn)求出x的數(shù)值,使它滿足等式,并輸出結(jié)果。要求:x和乘數(shù)的取值范圍都在0-9,用for循環(huán)和while循環(huán)分別實(shí)現(xiàn)。運(yùn)行結(jié)果如下所示:1.任務(wù)陳述2.1while循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)的特點(diǎn)。
2.知識(shí)準(zhǔn)備循環(huán)結(jié)構(gòu)
循環(huán)條件循環(huán)操作2.知識(shí)準(zhǔn)備2.2.2.while結(jié)構(gòu)特點(diǎn):先判斷,再執(zhí)行while(循環(huán)條件
){
循環(huán)操作}符合條件,循環(huán)繼續(xù)執(zhí)行;否則,循環(huán)退出循環(huán)中被重復(fù)執(zhí)行的操作循環(huán)操作循環(huán)條件真假while(循環(huán)條件
){
循環(huán)操作}符合條件,循環(huán)繼續(xù)執(zhí)行;否則,循環(huán)退出循環(huán)中被重復(fù)執(zhí)行的操作2.知識(shí)準(zhǔn)備錄入班級(jí)人數(shù)和學(xué)員成績(jī),計(jì)算班級(jí)學(xué)員的平均成績(jī)循環(huán)條件:目前錄入的成績(jī)數(shù)目小于總?cè)藬?shù)循環(huán)操作:錄入學(xué)生成績(jī),并累加求和while(i<=stuNum){System.out.print("請(qǐng)輸入學(xué)號(hào)"+i+"的成績(jī):");score=input.nextInt();sum=sum+score;i++;}avg=sum/stuNum; 2.2.2.do-while循環(huán)結(jié)構(gòu)2.知識(shí)準(zhǔn)備do{
循環(huán)操作}while(循環(huán)條件);while(循環(huán)條件){
循環(huán)操作}while循環(huán)先判斷,再執(zhí)行不適合描述此故事2.2.2.do-while語(yǔ)句結(jié)構(gòu)2.知識(shí)準(zhǔn)備do{
循環(huán)操作}while(循環(huán)條件
);先執(zhí)行一遍循環(huán)操作符合條件,循環(huán)繼續(xù)執(zhí)行;否則,循環(huán)退出特點(diǎn):先執(zhí)行,再判斷循環(huán)操作循環(huán)條件真假2.2.2.do-while結(jié)構(gòu)連續(xù)錄入學(xué)生姓名,輸入“q”則系統(tǒng)退出2.知識(shí)準(zhǔn)備Stringname;Scannerinput=newScanner(System.in);do{ System.out.print("請(qǐng)輸入學(xué)生姓名:"); name=input.next();}while
(!name.equals("q"));System.out.println("程序結(jié)束");2.知識(shí)準(zhǔn)備while循環(huán)和do-while循環(huán)的區(qū)別語(yǔ)法不同初始情況不滿足循環(huán)條件時(shí)while循環(huán)一次都不會(huì)執(zhí)行do-while循環(huán)不管任何情況都至少執(zhí)行一次do{
循環(huán)操作}while(循環(huán)條件);while
(循環(huán)條件){
循環(huán)操作}先判斷,再執(zhí)行先執(zhí)行,再判斷2.2.3.for循環(huán)結(jié)構(gòu)
2.知識(shí)準(zhǔn)備for(
;
;
){
;}條件為true循環(huán)體被執(zhí)行表達(dá)式1表達(dá)式2表達(dá)式3參數(shù)初始化條件判斷更新循環(huán)變量12432.2.3.for循環(huán)結(jié)構(gòu)
2.知識(shí)準(zhǔn)備for(inti=0;;i++){
System.out.println("這是"+i);}編譯正確,但是缺少循環(huán)條件,造成死循環(huán)2.2.3.for循環(huán)結(jié)構(gòu)
2.知識(shí)準(zhǔn)備for(inti=0;i<10;){
System.out.println("這是"+i);
}i++;省略表達(dá)式3,在循環(huán)體內(nèi)應(yīng)設(shè)法改變循環(huán)變量的值以結(jié)束循環(huán)編譯通過(guò),但是循環(huán)變量的值無(wú)變化,造成死循環(huán)2.2.3.for循環(huán)結(jié)構(gòu)
2.知識(shí)準(zhǔn)備for(;;){
System.out.println("這是測(cè)試");}表達(dá)式全省略,無(wú)條件判斷,循環(huán)變量無(wú)改變,應(yīng)在循環(huán)體內(nèi)設(shè)法結(jié)束循環(huán),否則會(huì)造成死循環(huán)死循環(huán)2.2.4.流程控制語(yǔ)句
2.知識(shí)準(zhǔn)備break:改變程序控制流用于do-while、while、for中時(shí),可跳出循環(huán)而執(zhí)行循環(huán)后面的語(yǔ)句while(…){………………
break;………………}跳出整個(gè)循環(huán)break通常在循環(huán)中與條件語(yǔ)句一起使用2.2.4.流程控制語(yǔ)句
2.知識(shí)準(zhǔn)備continue:只能用在循環(huán)里continue
作用:跳過(guò)循環(huán)體中剩余的語(yǔ)句而執(zhí)行下一次循環(huán)while(…){………………
continue;…………}繼續(xù)下一次循環(huán)通常與條件語(yǔ)句一起使用,加速循環(huán)for(inti=0;i<10;i++){
跑400米;
if(!口渴){
continue;//不喝水,繼續(xù)跑
}
接過(guò)水壺,喝水;}示例3.1解決步驟(1)從命令行參數(shù)獲取第二個(gè)乘數(shù)和乘法結(jié)果;(2)通過(guò)for循環(huán)遍歷0-9之間的數(shù),查找能使等式成立的數(shù)字,如果找到則用break跳出循環(huán),否則直到for循環(huán)執(zhí)行完;(3)輸出是否查找到符合要求的數(shù)字,以及數(shù)字的具體值。3.任務(wù)實(shí)施3.2任務(wù)代碼intnum1=0; intnum2=Integer.parseInt(args[0]); intresult=Integer.parseInt(args[1]); inti; for(i=0;i<10;i++) { if(i*num2==result) { num1=i; break; } if(i<10) { System.out.println("數(shù)字"+num1+"可以使下面的等式成立:"); System.out.println("x*"+num2+"="+result); } else System.out.println("沒(méi)有符合要求的數(shù)字");3.任務(wù)實(shí)施3.2任務(wù)代碼intnum1=0;
intnum2=Integer.parseInt(args[0]); intresult=Integer.parseInt(args[1]); inti=0;
while(i<10) { if(i*num2==result) { num1=i; break; } i++; } if(i<10){System.out.println("數(shù)字"+num1+"可以使下面的等式成立:");System.out.println("x*"+num2+"="+result); } else System.out.println("沒(méi)有符合要求的數(shù)字");3.任務(wù)實(shí)施
繼續(xù)拓展猜數(shù)字構(gòu)建等式游戲的程序設(shè)計(jì),如果加大游戲難度,兩個(gè)乘數(shù)都為未知數(shù),例如:x*y=200,通過(guò)循環(huán)找到所有符合等式的數(shù)字,并輸出所有符合要求的等式。要求:x和y的取值范圍是10~100。顯然單重循環(huán)已經(jīng)不能解決這個(gè)問(wèn)題了,必須使用雙重循環(huán),雙重for循環(huán)的格式為:for(…;…;…){ ……//語(yǔ)句for(…;…;…) { ……//語(yǔ)句
}……//語(yǔ)句}4.任務(wù)拓展一、實(shí)訓(xùn)目的1、熟練掌握上機(jī)步驟和程序開(kāi)發(fā)的全過(guò)程;2、掌握循環(huán)流程控制結(jié)構(gòu)的while循環(huán)結(jié)構(gòu);3、掌握循環(huán)流程控制結(jié)構(gòu)的do-while循環(huán)結(jié)構(gòu);4、掌握循環(huán)流程控制結(jié)構(gòu)的for循環(huán)結(jié)構(gòu)。
二、實(shí)訓(xùn)內(nèi)容仿照“任務(wù)五”,實(shí)現(xiàn)任務(wù):2006年培養(yǎng)學(xué)員8萬(wàn)人,每年增長(zhǎng)25%,請(qǐng)問(wèn)按此增長(zhǎng)速度,到哪一年培訓(xùn)學(xué)員人數(shù)將達(dá)到20萬(wàn)人?5.任務(wù)實(shí)訓(xùn)任務(wù)一:描述“人類(lèi)”信息程序設(shè)計(jì)單元二:面向?qū)ο蟪绦蛟O(shè)計(jì)教學(xué)目標(biāo)知識(shí)目標(biāo)類(lèi)與對(duì)象概念與特征、屬性和方法;類(lèi)與對(duì)象的關(guān)系;定義類(lèi)的語(yǔ)法;創(chuàng)建類(lèi)的對(duì)象,使用對(duì)象的步驟。能力目標(biāo)運(yùn)用面向?qū)ο蟪绦蛟O(shè)計(jì)思想分析類(lèi)和對(duì)象特征;能會(huì)創(chuàng)建和使用類(lèi)和對(duì)象。教學(xué)內(nèi)容4任務(wù)陳述123知識(shí)準(zhǔn)備任務(wù)實(shí)施任務(wù)拓展任務(wù)實(shí)訓(xùn)5任務(wù)描述:“人”是社會(huì)主體,日常生活中要想描述一個(gè)人主要包括姓名、年齡、性別、體重、家庭地址等信息。任務(wù)要求在計(jì)算機(jī)中使用Java語(yǔ)言對(duì)“人類(lèi)”進(jìn)行描述,并用Java代碼實(shí)現(xiàn),最后打印出人的信息。運(yùn)行結(jié)果如下所示:運(yùn)行結(jié)果:1.任務(wù)陳述2.1類(lèi)與對(duì)象的概念與關(guān)系2.1.1對(duì)象的概念
對(duì)象(Object)是系統(tǒng)中用來(lái)描述客觀事物的一個(gè)實(shí)體,它是構(gòu)成系統(tǒng)的一個(gè)基本單位。它們是有形的,如某個(gè)人、某種物品;也可以是無(wú)形的,如某項(xiàng)計(jì)劃、某次商業(yè)交易。
對(duì)象包含特征和行為,特征指對(duì)象的外觀、性質(zhì)、屬性等;行為指對(duì)象具有的功能、動(dòng)作等。例如,一個(gè)名字叫張三的同學(xué)就是一個(gè)對(duì)象。他具有自己的特征:學(xué)號(hào)=1,姓名=“張三”,出生年月=“1994-10-18”,家庭住址=“中國(guó)山東省濟(jì)南市”。具有上課、做作業(yè)、休息等行為。2.知識(shí)準(zhǔn)備2.1.2.類(lèi)的基本概念日常生活中把眾多事物進(jìn)行歸納、劃分,然后分類(lèi)是人類(lèi)在認(rèn)識(shí)客觀世界時(shí)經(jīng)常采用的思維方法。換句話說(shuō)“類(lèi)”是從日常生活中抽象出來(lái)的具有共同特征的實(shí)體。因此我們把具有相同特征及相同行為的一組對(duì)象稱為類(lèi)(ClassofObject),使用第一個(gè)英文單詞Class作為描述類(lèi)的Java關(guān)鍵字,Java語(yǔ)言中類(lèi)是為了描述具體對(duì)象而存在的。例如:張三同學(xué)是一個(gè)對(duì)象,李四同學(xué)也是一個(gè)對(duì)象,并且全班的同學(xué)都有學(xué)號(hào)、姓名、出生年月、家庭住址,具有上課、做作業(yè)、休息等行為。從整個(gè)班級(jí)所有的對(duì)象中抽象出共同特征和行為就可以形成我們常說(shuō)的“學(xué)生”類(lèi),此時(shí),學(xué)生就是一個(gè)類(lèi)。2.知識(shí)準(zhǔn)備2.1.3類(lèi)與對(duì)象的關(guān)系上面講述的類(lèi)和對(duì)象的概念中我們可以簡(jiǎn)單的看出:類(lèi)中的屬性對(duì)應(yīng)著對(duì)象的特征,類(lèi)中的方法則對(duì)應(yīng)著對(duì)象的行為。類(lèi)與對(duì)象的關(guān)系就如模具和鑄件的關(guān)系,類(lèi)的實(shí)例化結(jié)果就是對(duì)象,而對(duì)一類(lèi)對(duì)象的抽象就是類(lèi)。類(lèi)是廣泛的概念,表示一個(gè)有共同性質(zhì)的群體,而對(duì)象指的是具體的一個(gè)實(shí)實(shí)在在的東西。總起來(lái)說(shuō)“對(duì)象是類(lèi)的實(shí)例,類(lèi)是對(duì)象(們)的抽象”。
例如,“學(xué)生”是一個(gè)類(lèi),它可以表示班級(jí)中所有的學(xué)生;而“張三”、“李四”則是實(shí)際存在的單個(gè)對(duì)象,或者說(shuō)它們是“學(xué)生”這個(gè)類(lèi)的一個(gè)個(gè)實(shí)例。在Java中,我們可以定義類(lèi),然后創(chuàng)建類(lèi)的對(duì)象。2.知識(shí)準(zhǔn)備2.2類(lèi)的定義
類(lèi)是一個(gè)獨(dú)立的單位,它有一個(gè)類(lèi)名,其內(nèi)部包括成員變量,用于描述屬性;還包括類(lèi)的成員方法,用于描述行為。因此,類(lèi)也被認(rèn)為是一種抽象數(shù)據(jù)類(lèi)型,這種數(shù)據(jù)類(lèi)型不但包括數(shù)據(jù),還包括方法。2.2.1類(lèi)的格式[修飾符]class類(lèi)名{//定義屬性部分成員變量1;…成員變量n;//定義方法部分方法1;…方法n;}2.知識(shí)準(zhǔn)備注解:1.修飾符。修飾類(lèi)的修飾符有public、abstract和final,這些修飾符將在后面的任務(wù)中介紹。包含main方法的主類(lèi)必須定義為public。2.class關(guān)鍵字。class為Java定義類(lèi)的關(guān)鍵字,必須寫(xiě)在修飾符和類(lèi)名中間,使用空格隔開(kāi),并且不能改變?nèi)魏我粋€(gè)字符的大小寫(xiě),如:Class是錯(cuò)誤的。3.類(lèi)名。類(lèi)的名字要符合Java的命名規(guī)范,同時(shí)名字要有意義能夠反映出這個(gè)類(lèi)的內(nèi)容,第一個(gè)字母一般為大寫(xiě)?!緦?shí)例2-1】用Java類(lèi)的定義描述汽車(chē)publicclassCar{
Stringcolor;//顏色
int
count;//容納人數(shù)
Stringbound;//汽車(chē)品牌
floatweight;//重量}2.知識(shí)準(zhǔn)備2.2.2類(lèi)的成員變量和方法類(lèi)包括屬性和方法兩部分。屬性(成員變量)是用于描述從對(duì)象中抽象出來(lái)的特征項(xiàng)。方法(成員方法)是用于描述從對(duì)象中抽象出來(lái)的特征行為。例如,從所有同學(xué)中抽象出來(lái)的學(xué)號(hào)(stuNo)、姓名(stuName)、出生年月(stuBirthday)、家庭住址(stuAddress),稱為“學(xué)生”類(lèi)的成員變量。從所有同學(xué)中抽象出來(lái)的上課、做作業(yè)、課后活動(dòng)、休息等行為。 [修飾符]數(shù)據(jù)類(lèi)型
成員變量名[=初值];
例如:publicStringname=”Jack”;intage=10;類(lèi)可以分為系統(tǒng)類(lèi)和用戶自定義類(lèi)。系統(tǒng)類(lèi)存放在Java類(lèi)庫(kù)中,用戶自定義類(lèi)是程序員自己定義的類(lèi)。類(lèi)將現(xiàn)實(shí)世界中的概念模擬到計(jì)算機(jī)程序中。類(lèi)的特性包括:
封裝性、繼承性和多態(tài)性。2.知識(shí)準(zhǔn)備2.3創(chuàng)建對(duì)象2.3.1創(chuàng)建對(duì)象的格式
類(lèi)名對(duì)象名=new類(lèi)名([參數(shù)1,參數(shù)2…]);例:Cartruck=newCar();Cartruck;//聲明newCar();//實(shí)例化=//賦值2.知識(shí)準(zhǔn)備2.3.2對(duì)象的使用
通過(guò)使用運(yùn)算符“.”,對(duì)象可以實(shí)現(xiàn)對(duì)自己變量的訪問(wèn)及對(duì)自己方法的調(diào)用。對(duì)象訪問(wèn)格式如下:變量訪問(wèn):對(duì)象名.成員變量名;方法訪問(wèn):對(duì)象名.成員方法名([參數(shù)1,參數(shù)2…]);例如:Cartruck=newCar();truck.color="黑色";truck.count=3;truck.bound="黃河";truck.weight=12.5f;Carbus=newCar();bus.color="紅色";bus.count=50;bus.bound="宇通";bus.weight=8.5f;2.知識(shí)準(zhǔn)備1.實(shí)現(xiàn)思路打開(kāi)Eclipse,創(chuàng)建Person類(lèi);在類(lèi)大括號(hào)內(nèi)進(jìn)行屬性定義;利用創(chuàng)建的Person對(duì)象,使用“對(duì)象名.屬性名”形式進(jìn)行賦值,并輸出對(duì)象的各個(gè)屬性值。3.任務(wù)實(shí)施2.任務(wù)代碼
Personp1=newPerson();//聲明并實(shí)例化一Person對(duì)象p1 Personp2=newPerson();//聲明并實(shí)例化一Person對(duì)象p2 //給p1的屬性賦值
="張三"; p1.age=25; p1.address="濟(jì)南"; p1.sex='m'; p1.weight=100; //給p2的屬性賦值
="李四"; p2.age=30; p2.address="北京"; p2.sex='w'; p2.weight=80; System.out.println("我是:"++",性別:"+p1.sex+",今年:"+p1.age+"歲"+",體重:"+p1.weight+",住址是:"+p1.address); System.out.println("我是:"++",性別:"+p2.sex+",今年:"+p2.age+"歲"+",體重:"+p2.weight+",住址是:"+p2.address);3.任務(wù)實(shí)施
上面的任務(wù)代碼中,對(duì)類(lèi)Person的測(cè)試是在類(lèi)的內(nèi)部main()方法中進(jìn)行的。更多的情況下,應(yīng)該新建一個(gè)PersonTest測(cè)試類(lèi),對(duì)類(lèi)Person進(jìn)行測(cè)試。每個(gè)類(lèi)單獨(dú)為一個(gè)源代碼文件。
publicclassPerson{//源文件1 //省略屬性聲明}publicclassPersonTest
{//源文件2 publicstaticvoidmain(String[]args) {//聲明并實(shí)例化一Person對(duì)象p1 Personp1=newPerson(); //聲明并實(shí)例化一Person對(duì)象p2 Personp2=newPerson(); //省略給p1的屬性賦值
//省略給p2的屬性賦值
//省略輸出語(yǔ)句 }}4.任務(wù)拓展一、實(shí)訓(xùn)目的二、實(shí)訓(xùn)內(nèi)容三、簡(jiǎn)要提示四、實(shí)訓(xùn)思考5.任務(wù)實(shí)訓(xùn)任務(wù)二:借書(shū)卡程序設(shè)計(jì)單元二:面向?qū)ο蟪绦蛟O(shè)計(jì)教學(xué)目標(biāo)知識(shí)目標(biāo)類(lèi)的方法組成部分;定義和使用類(lèi)的方法;變量作用域;定義包和導(dǎo)入包的關(guān)鍵字;構(gòu)造方法實(shí)現(xiàn)對(duì)象成員的初始化;方法重載;對(duì)構(gòu)造方法進(jìn)行重載。能力目標(biāo)能會(huì)定義和使用類(lèi)的方法;能會(huì)正確理解變量的作用域;能會(huì)使用包組織Java工程;運(yùn)用構(gòu)造方法完成對(duì)象實(shí)例化;能會(huì)正確區(qū)分和使用方法重載。教學(xué)內(nèi)容4任務(wù)陳述123知識(shí)準(zhǔn)備任務(wù)實(shí)施任務(wù)拓展任務(wù)實(shí)訓(xùn)5任務(wù)描述:借書(shū)卡是學(xué)生日常生活重要組成部分。每張借書(shū)卡信息包含賬號(hào)、持卡人姓名、身份證號(hào)碼、地址、已借書(shū)數(shù)、可借書(shū)數(shù)、本次借書(shū)數(shù)、本次還書(shū)數(shù)。使用借書(shū)卡還可以借書(shū)、還書(shū)和查詢。要求:根據(jù)持卡人不同操作,顯示不同信息。當(dāng)借書(shū)操作后,顯示本次借書(shū)數(shù)及已借書(shū)數(shù);當(dāng)還書(shū)操作時(shí),顯示本次還書(shū)數(shù)和已借書(shū)數(shù)。運(yùn)行結(jié)果:1.任務(wù)陳述2.知識(shí)準(zhǔn)備2.4類(lèi)的方法2.4.1定義類(lèi)的方法Java類(lèi)中方法的聲明采用以下格式:[訪問(wèn)修飾符]<修飾符>返回值類(lèi)型方法名稱([參數(shù)列表]){方法體}1.返回值類(lèi)型:表示方法返回值的類(lèi)型。如果方法不返回任何值,它必須聲明為void(空)。對(duì)于有返回值的方法,方法中一定有return語(yǔ)句,方法的返回值類(lèi)型和return語(yǔ)句后面的類(lèi)型一樣。例如,如果一個(gè)方法中含有代碼return“aaaa”;那么包含該句的方法返回值是字符型。接收方法返回值的變量也必須與指定方法返回值的類(lèi)型相兼容。2.方法名稱:可以是任何合法標(biāo)識(shí)符,但具有意義,第一個(gè)字母小寫(xiě)。3.參數(shù)列表:允許將參數(shù)值傳遞到方法中。列舉的元素由逗號(hào)分開(kāi),而每一個(gè)元素包含一個(gè)類(lèi)型和一個(gè)標(biāo)識(shí)符,也稱之為形參。2.知識(shí)準(zhǔn)備2.1.2使用類(lèi)的方法對(duì)象創(chuàng)建以后,使用“.”操作符實(shí)現(xiàn)對(duì)其方法調(diào)用,方法中的局部變量被分配內(nèi)存空間,方法執(zhí)行完畢,局部變量即刻釋放內(nèi)存。1.無(wú)參方法的調(diào)用類(lèi)的方法在使用時(shí)一般要先創(chuàng)建類(lèi)的對(duì)象,再通過(guò)對(duì)象調(diào)用方法。
例如,定義Person類(lèi)的對(duì)象zhangsan
: Personzhangsan=newPerson();然后通過(guò)對(duì)象調(diào)用類(lèi)的方法。例如調(diào)用學(xué)習(xí)方法:
zhangsan.study();//study方法返回值為String類(lèi)型如果需要利用study()方法的返回值,可以將返回結(jié)果賦給同一類(lèi)型的變量。例如:Strings1=zhangsan.study();2.知識(shí)準(zhǔn)備2.有參方法的調(diào)用同樣在定義了類(lèi)的對(duì)象后調(diào)用,并需要傳入實(shí)際的參數(shù),此時(shí)的參數(shù)稱為實(shí)際參數(shù),簡(jiǎn)稱實(shí)參。實(shí)參必須與方法定義中的形參一致,所謂的一致是要求參數(shù)個(gè)數(shù)、參數(shù)類(lèi)型、參數(shù)的排列順序一致。
例如,定義Person類(lèi)的對(duì)象zhangsan,通過(guò)對(duì)象調(diào)用類(lèi)的play方法,play方法中含有一個(gè)String類(lèi)型的變量:zhangsan.play(“football”); //對(duì)象名.
play方法
同樣如果需要利用方法的返回值,可以將返回結(jié)果賦給同一類(lèi)型變量。2.知識(shí)準(zhǔn)備3.靜態(tài)方法的調(diào)用靜態(tài)方法的調(diào)用無(wú)需定義對(duì)象,可以通過(guò)類(lèi)名直接使用,我們也稱這種方法為類(lèi)方法。
定義格式:[public]static返回值方法名([參數(shù)列表]){…}
調(diào)用格式:類(lèi)名.方法名(實(shí)參1,實(shí)參2,……);
例如,在類(lèi)Person中定義一個(gè)靜態(tài)方法eat(): publicstaticvoideat(){ …… }那么,靜態(tài)方法的調(diào)用:Person.eat();
注意:靜態(tài)方法內(nèi)部只能調(diào)用靜態(tài)方法和靜態(tài)變量。
【實(shí)例2-2】計(jì)算立方體的體積程序設(shè)計(jì)2.知識(shí)準(zhǔn)備2.5構(gòu)造方法創(chuàng)建類(lèi)的對(duì)象時(shí),使用new關(guān)鍵字和一個(gè)與類(lèi)名相同的方法來(lái)完成,這個(gè)方法是在實(shí)例化過(guò)程中被調(diào)用的,稱之為構(gòu)造方法。構(gòu)造方法區(qū)別于普通的方法,有幾個(gè)明顯的特點(diǎn):它的名字必須與它所在的類(lèi)的名字完全相同。不返回任何數(shù)據(jù)類(lèi)型,也不需要使用void聲明。它的作用是創(chuàng)建對(duì)象并初始化成員變量。在創(chuàng)建對(duì)象時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用類(lèi)的構(gòu)造方法。構(gòu)造方法一般都用public來(lái)聲明,這樣才能在程序任意位置創(chuàng)建對(duì)象。每個(gè)類(lèi)至少有一個(gè)構(gòu)造方法。如果不寫(xiě)構(gòu)造方法,Java將提供一個(gè)默認(rèn)的不帶參的方法體為空的構(gòu)造方法。格式:
[訪問(wèn)權(quán)限]類(lèi)名稱([參數(shù)1,參數(shù)2,……]){ //程序語(yǔ)句; //構(gòu)造方法沒(méi)有返回值 }
注意:構(gòu)造方法不能像成員方法那樣直接被對(duì)象調(diào)用,只能在new運(yùn)算符實(shí)例化對(duì)象時(shí),被系統(tǒng)自動(dòng)調(diào)用。2.知識(shí)準(zhǔn)備2.知識(shí)準(zhǔn)備構(gòu)造方法分類(lèi)構(gòu)造方法根據(jù)參數(shù)進(jìn)行了分類(lèi):無(wú)參構(gòu)造方法和有參構(gòu)造方法。1.無(wú)參構(gòu)造方法
例如:publicclassPeople{ publicPeople(){ ……//使用固定值初始化成員變量}}
那么在含有main方法的測(cè)試類(lèi)中實(shí)例化People對(duì)象時(shí):Peoplep1=newPeople();注意:無(wú)參構(gòu)造方法可以不寫(xiě),類(lèi)中默認(rèn)含有一個(gè)無(wú)參構(gòu)造方法,并且該構(gòu)造方法的方法體內(nèi)沒(méi)有語(yǔ)句。而使用默認(rèn)值初始化對(duì)象成員變量,數(shù)值型變量初始為0,布爾型初始為false,字符型初始為“\0”,字符串初始為null;
2.知識(shí)準(zhǔn)備2.有參構(gòu)造方法
例如:publicclassPeople{ intage; Stringname; publicPeople(intmyAge,StringmyName){ age=myAge;name=myName;}} 那么在含有main方法的測(cè)試類(lèi)中實(shí)例化People對(duì)象時(shí):Peoplep1=newPeople(20,”zhangsan”);上面的實(shí)例化就可以看出是把成員變量進(jìn)行了動(dòng)態(tài)的賦值。注意:當(dāng)定義了有參的構(gòu)造方法后,無(wú)參構(gòu)造方法將不再存在,如果還想使用無(wú)參的構(gòu)造方法進(jìn)行實(shí)例化對(duì)象,就需要顯性的寫(xiě)出無(wú)參構(gòu)造方法。
2.知識(shí)準(zhǔn)備2.3方法重載2.3.1方法重載的概念方法重載是指多個(gè)方法享有相同的名字,但是這些方法的參數(shù)必須不同,所謂的不同是指:參數(shù)的個(gè)數(shù)不同,參數(shù)類(lèi)型不同,參數(shù)的順序不同。返回類(lèi)型不能用來(lái)區(qū)分重載的方法。在這種情況下,該方法就叫被重載了,這個(gè)過(guò)程稱為方法的重載。當(dāng)一個(gè)重載方法被調(diào)用時(shí)方法名是一樣的,因此Java用參數(shù)的類(lèi)型、(或)數(shù)量、(或)順序來(lái)選擇實(shí)際調(diào)用的重載方法。例如:System.out.println();里面的println這個(gè)方法就是重載方法。注意:方法的重載要使用恰當(dāng),當(dāng)一個(gè)動(dòng)作(方法)分別接受不同的指令(參數(shù))產(chǎn)生不同的效果,可以使用。但過(guò)度的使用將會(huì)降低程序的可讀性。參數(shù)不同是區(qū)分重載方法的關(guān)鍵因素,參數(shù)不同主要包括以下方面的不同:參數(shù)類(lèi)型不同。例如:publicvoidmethod(Strings);publicvoidmethod(ints);參數(shù)個(gè)數(shù)不同。例如:publicvoidmethod(Strings,inti);publicvoidmethod(Strings);參數(shù)順序不同。例如:publicvoidmethod(Strings,inti);publicvoidmethod(inti,Strings);
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 賣(mài)場(chǎng)承包經(jīng)營(yíng)合同
- 企業(yè)公司房屋租賃合同
- 公廁給排水施工方案
- bef增光膜施工方案
- 實(shí)驗(yàn)室咨詢服務(wù)合同
- TACCEM 135-2024 雙組份聚氨酯導(dǎo)熱結(jié)構(gòu)膠
- 與石油管道交叉施工方案
- 建筑工程機(jī)械租賃合同范文
- 昌河中學(xué)高一數(shù)學(xué)試卷
- 水泥樓梯改造施工方案
- 制藥工程GMP(設(shè)備驗(yàn)證)
- 亞洲的人文環(huán)境
- 初中物理之魔術(shù)物理課件
- 投用前安全檢查表
- “三備兩研”集體備課實(shí)施方案
- 醫(yī)療質(zhì)量管理制度相關(guān)知識(shí)考試試題
- 醫(yī)院病歷體格檢查表范本
- 二次供水設(shè)備保養(yǎng)維修方案(完整)
- 【直播帶貨的模式研究國(guó)內(nèi)外文獻(xiàn)綜述4300字(論文)】
- 高中英語(yǔ)-40篇英語(yǔ)短文搞定高中英語(yǔ)3500個(gè)單詞
- 2023年新改版蘇教版五年級(jí)下冊(cè)科學(xué)全冊(cè)精編知識(shí)點(diǎn)(附問(wèn)答題總結(jié))
評(píng)論
0/150
提交評(píng)論