《面向?qū)ο蟪绦蛟O(shè)計(jì)項(xiàng)目教程》教案_第1頁(yè)
《面向?qū)ο蟪绦蛟O(shè)計(jì)項(xiàng)目教程》教案_第2頁(yè)
《面向?qū)ο蟪绦蛟O(shè)計(jì)項(xiàng)目教程》教案_第3頁(yè)
《面向?qū)ο蟪绦蛟O(shè)計(jì)項(xiàng)目教程》教案_第4頁(yè)
《面向?qū)ο蟪绦蛟O(shè)計(jì)項(xiàng)目教程》教案_第5頁(yè)
已閱讀5頁(yè),還剩98頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

PAGE3PAGE11面向?qū)ο蟪绦蛟O(shè)計(jì)教案首頁(yè)課程名稱面向?qū)ο蟪绦蛟O(shè)計(jì)課程編號(hào)總學(xué)時(shí)數(shù)總學(xué)時(shí)96理論學(xué)時(shí)48實(shí)踐學(xué)時(shí)48學(xué)分?jǐn)?shù)6課程類型必修課()校級(jí)公共課()專業(yè)課(√)基礎(chǔ)課或?qū)I(yè)基礎(chǔ)課選修課()限選課()任選課授課年級(jí)專業(yè)班級(jí)2020級(jí)大數(shù)據(jù)技術(shù)與應(yīng)用1-5班授課方式講授、課堂討論、案例分析、實(shí)踐課題寫(xiě)作考核方式(√)考試()考查教學(xué)目標(biāo)及基本要求掌握面向?qū)ο蠡靖拍詈腿筇攸c(diǎn)、JDBC數(shù)據(jù)庫(kù)操作、集合應(yīng)用、文件操作、網(wǎng)絡(luò)編程的使用,熟悉SwingUI設(shè)計(jì)等。同時(shí),培養(yǎng)學(xué)生掌握基本的創(chuàng)新方法、具有追求創(chuàng)新的態(tài)度和意識(shí),能夠獨(dú)立思考、分析問(wèn)題,能夠利用計(jì)算機(jī)編程解決實(shí)際問(wèn)題的能力;并且培養(yǎng)學(xué)生具有一定的項(xiàng)目開(kāi)發(fā)能力、團(tuán)隊(duì)協(xié)作的精神以及適應(yīng)信息化社會(huì)要求的自學(xué)能力和獲取計(jì)算機(jī)新知識(shí)、新技術(shù)的能力。該課程的考核方法為“考試”,總分100分。平時(shí)成績(jī)占30%(根據(jù)出勤情況、課堂表現(xiàn)、作業(yè)完成),隨堂小測(cè)驗(yàn)20%,期末試卷占50%。教材名稱面向?qū)ο蟪绦蛟O(shè)計(jì)項(xiàng)目教程作者向守超出版社西安電子科技大學(xué)出版社出版時(shí)間2022年1月參考書(shū)1.作者及書(shū)名《Java8基礎(chǔ)應(yīng)用與開(kāi)發(fā)》QST青軟實(shí)訓(xùn)出版社及出版時(shí)間清華大學(xué)出版社2015.72.作者及書(shū)名《Java程序設(shè)計(jì)》張化祥出版社及出版時(shí)間清華大學(xué)出版社2010.103.作者及書(shū)名《Java2實(shí)用教程》顏志軍出版社及出版時(shí)間清華大學(xué)出版社2011.9授課教師向守超職稱教授系部信息工程學(xué)院授課學(xué)期2020~2021學(xué)年第2學(xué)期面向?qū)ο蟪绦蛟O(shè)計(jì)教案章節(jié)及名稱項(xiàng)目1走進(jìn)Java學(xué)時(shí)4教學(xué)目的與要求1.知識(shí)目標(biāo):1).了解Java的起源、特點(diǎn)和結(jié)構(gòu)體系。2).掌握J(rèn)ava開(kāi)發(fā)環(huán)境和集成開(kāi)發(fā)工具的安裝和配置。3).熟悉Java語(yǔ)言的編寫(xiě)規(guī)范。4).掌握J(rèn)ava應(yīng)用程序的結(jié)構(gòu)、編譯、調(diào)試和運(yùn)行的基本方法和基本步驟。2.能力目標(biāo):1).能夠理解Java體系結(jié)構(gòu)。2).能夠安裝配置Java集成開(kāi)發(fā)環(huán)境。3).能夠創(chuàng)建Java項(xiàng)目和類,并能夠編寫(xiě)簡(jiǎn)單代碼,進(jìn)行調(diào)試和運(yùn)行。教學(xué)重點(diǎn)與難點(diǎn)重點(diǎn):1.Eclipse的下載與安裝2.Java編寫(xiě)規(guī)范難點(diǎn):1.Eclipse的基本操作2.HelloWorld應(yīng)用程序教學(xué)方法與手段1.方法:項(xiàng)目制教學(xué)、案例式教學(xué)、啟發(fā)式教學(xué)、實(shí)踐型教學(xué)。2.教具:多媒體教室,教學(xué)做一體化教學(xué)多媒體教室,教學(xué)做一體化教學(xué)教學(xué)內(nèi)容提要與時(shí)間分配內(nèi)容提要輔助手段【課程導(dǎo)入】(時(shí)間5分鐘)問(wèn)題:Java的由來(lái)?【任務(wù)描述】通過(guò)HelloWorld應(yīng)用程序的解讀,從而了解Java的起源、特點(diǎn)和體系,熟悉Java語(yǔ)言的編寫(xiě)規(guī)范,掌握J(rèn)ava開(kāi)發(fā)環(huán)境和開(kāi)發(fā)工具的安裝與配置,掌握J(rèn)ava應(yīng)用程序的結(jié)構(gòu)、編譯、調(diào)試和運(yùn)行的基本方法和基本步驟等。【講授內(nèi)容】任務(wù)1認(rèn)識(shí)Java1.1Java自1995誕生,至今已經(jīng)20多年的歷史。Java的名字來(lái)源于印度尼西亞爪哇島的英文名稱。詹姆斯?高斯林(JamesGosling)也被人們親切的稱為Java之父。1.2從1995年Java誕生以來(lái),Java先后經(jīng)歷了10多個(gè)版本的變更,當(dāng)然版權(quán)的所有者也一度由Sun變?yōu)镺racle。如表1-1所示為Java發(fā)展過(guò)程中幾個(gè)重要的里程碑。1.3Java的特點(diǎn)資源開(kāi)源性、跨平臺(tái)性、健壯、安全性、高性能性、簡(jiǎn)單性、面向?qū)ο蟆?dòng)態(tài)性、多線程、支持分布式網(wǎng)絡(luò)應(yīng)用。1.4Java應(yīng)用平臺(tái)1999年,在美國(guó)舊金山的JavaOne大會(huì)上,Sun公司公布了Java體系架構(gòu),該架構(gòu)根據(jù)不同級(jí)別的應(yīng)用開(kāi)發(fā)劃分了三個(gè)版本: JavaSE(JavaStandardEdition,Java標(biāo)準(zhǔn)版) JavaEE(JavaEnterpriseEdition,Java企業(yè)版) JavaME(JavaMicroEdition,Java微型版)1.6Java跨平臺(tái)原理JVM在具體的操作系統(tǒng)之上運(yùn)行,其本身具有一套虛擬指令,但它通常是在軟件上而不是在硬件上實(shí)現(xiàn)。JVM形成一個(gè)抽象層,將底層硬件平臺(tái)、操作系統(tǒng)與編譯過(guò)的代碼聯(lián)系起來(lái)。Java字節(jié)碼的格式通用,具有跨平臺(tái)特性,但這種跨平臺(tái)建立在JVM虛擬機(jī)的基礎(chǔ)之上,只有通過(guò)JVM處理后才可以將字節(jié)碼轉(zhuǎn)換為特定機(jī)器上的機(jī)器碼,然后在特定的機(jī)器上運(yùn)行。任務(wù)2安裝配置開(kāi)發(fā)環(huán)境2.1JDK簡(jiǎn)介JDK包含一批用于Java開(kāi)發(fā)的組件,其中包括以下幾部分:●Java開(kāi)發(fā)工具。這些開(kāi)發(fā)工具都是可執(zhí)行程序,主要包括:javac.exe(編譯工具)、java.exe(運(yùn)行工具)、javadoc.exe(生成JavaDoc文檔的工具)和jar.exe(打包工具)等。●Java運(yùn)行環(huán)境。Java虛擬機(jī)可以運(yùn)行在各種操作系統(tǒng)平臺(tái)上,負(fù)責(zé)解析和執(zhí)行Java程序?!馢ava繼承類庫(kù)(rt.jar)。提供了最基礎(chǔ)的Java類以及各種實(shí)用類。如java.lang、java.io、java.util、java.awt、java.swing和java.sql包中的類都位于JDK類庫(kù)中。2.2JDK安裝配置2.3JDK目錄JDK主要目錄如下:●bin:JDK包中命令及工具所在目錄。這是JDK中非常重要的目錄,它包含大量開(kāi)發(fā)當(dāng)中的常用工具程序,如編譯器、解釋器、打包工具、代碼轉(zhuǎn)換器和相關(guān)調(diào)試工具等?!駄re:運(yùn)行環(huán)境目錄。JDK自己附帶的Java運(yùn)行環(huán)境?!駆ib:類庫(kù)所在目錄。包含了開(kāi)發(fā)所需要的類庫(kù)(即JavaAPI)和支持文件?!馾b:附帶數(shù)據(jù)庫(kù)目錄。在JDK6.0以上的版本中附帶ApacheDerby數(shù)據(jù)庫(kù),這是一個(gè)Java編寫(xiě)的數(shù)據(jù)庫(kù),支持JDBC4.0。●include:包含本地代碼的C頭文件的目錄。用于支持java本地接口和Java虛擬機(jī)調(diào)試程序接口的本地代碼編譯。●src.zip:源代碼壓縮文件。Java提供的API都可以通過(guò)此文件查看其源代碼是如何實(shí)現(xiàn)的。在JDK的bin目錄下,提供了大量的開(kāi)發(fā)工具程序,以下是幾個(gè)常用的工具:●javac:Java語(yǔ)言編譯器??梢詫ava源文件編譯成與平臺(tái)無(wú)關(guān)的字節(jié)碼文件(.class文件)?!駄ava:Java字節(jié)碼解釋器。將字節(jié)碼文件在不同的平臺(tái)中解釋執(zhí)行?!駄avap:Java字節(jié)碼分解程序??梢圆榭碕ava程序的變量以及方法等信息?!駄avadoc:文檔生成器??梢詫⒋a中的文檔注釋生成HTML格式的JavaAPI文檔?!駄avah:JNI編程工具。用于從Java類調(diào)用C++代碼?!馻ppletviewer:小應(yīng)用程序?yàn)g覽工具,用于測(cè)試并運(yùn)行Java小應(yīng)用程序。●jar:打包工具。在JavaSE中壓縮包的擴(kuò)展名為.jar。2.4Eclipse簡(jiǎn)介Eclipse是一個(gè)開(kāi)放源代碼、可擴(kuò)展的、跨平臺(tái)的集成開(kāi)發(fā)環(huán)境。Eclipse最初主要用來(lái)進(jìn)行Java語(yǔ)言開(kāi)發(fā),如今也是一些開(kāi)發(fā)人員通過(guò)插件使其作為其他語(yǔ)言如C++和PHP的開(kāi)發(fā)工具。Eclipse本身只是一個(gè)框架平臺(tái),眾多插件的支持使得Eclipse具有更高的靈活性,這也是其他功能相對(duì)固定的IDE工具很難做到的。2.5Eclipse下載及安裝2.6Eclipse基本操作()板書(shū)()實(shí)物展示()投影片(√)電子教案(√)項(xiàng)目展示課后小結(jié)實(shí)訓(xùn)、作業(yè)備注面向?qū)ο蟪绦蛟O(shè)計(jì)教案章節(jié)及名稱項(xiàng)目2數(shù)據(jù)類型與運(yùn)算符學(xué)時(shí)8教學(xué)目的與要求1.知識(shí)目標(biāo):1).掌握J(rèn)ava中的字符集、分隔符、標(biāo)識(shí)符、關(guān)鍵字2).掌握變量和常量的定義和初始化3).掌握基本數(shù)據(jù)類型4).掌握J(rèn)ava中數(shù)據(jù)類型的轉(zhuǎn)換、運(yùn)算符和表達(dá)式2.能力目標(biāo):1).能夠進(jìn)行標(biāo)識(shí)符的正確定義,明確常見(jiàn)的關(guān)鍵字2).能夠進(jìn)行變量和常量的定義與初始化3).能夠正確使用基本的數(shù)據(jù)類型4).能夠進(jìn)行Java中數(shù)據(jù)類型的轉(zhuǎn)換5).能夠運(yùn)用運(yùn)算符和表達(dá)式進(jìn)行簡(jiǎn)單的編程教學(xué)重點(diǎn)與難點(diǎn)重點(diǎn):1.掌握變量和常量的定義和初始化2.掌握基本數(shù)據(jù)類型3.掌握J(rèn)ava中數(shù)據(jù)類型難點(diǎn):1.掌握變量和常量的定義和初始化2.掌握基本數(shù)據(jù)類型3.掌握J(rèn)ava中數(shù)據(jù)類型教學(xué)方法與手段1.方法:項(xiàng)目制教學(xué)、案例式教學(xué)、啟發(fā)式教學(xué)、實(shí)踐型教學(xué)。2.教具:多媒體教室,教學(xué)做一體化教學(xué)多媒體教室,教學(xué)做一體化教學(xué)教學(xué)內(nèi)容提要與時(shí)間分配內(nèi)容提要輔助手段【課程導(dǎo)入】(時(shí)間5分鐘)問(wèn)題:編寫(xiě)的四則計(jì)算器程序。【任務(wù)描述】通過(guò)簡(jiǎn)單計(jì)算器的編寫(xiě),從而理解Java的數(shù)據(jù)類型,掌握變量、常量、運(yùn)算符和表達(dá)式的應(yīng)用?!局v授內(nèi)容】任務(wù)1了解字符1.1字符集字符是各種文字和符號(hào)的總稱,包括各國(guó)家文字、標(biāo)點(diǎn)符號(hào)、圖形符號(hào)、數(shù)字等。字符集是多個(gè)字符的集合,不同的字符集所包含的字符個(gè)數(shù)也不同Unicode支持UTF-8、UTF-16和UTF-32這三種字符編碼方案,這三種方案的區(qū)別如表2-1所示。1.2分隔符Java中使用多種字符作為分隔符,用于輔助程序編寫(xiě)、閱讀和理解。這些分隔符可以分為兩類:●空白符:沒(méi)有確定意義,但幫助編譯器正確理解源程序,包括空格、回車、換行和制表符(Tab);●普通分隔符:擁有確定含義,常用的普通分隔符如表2-2所示。1.3標(biāo)識(shí)符在各種編程語(yǔ)言中,通常要為程序中處理的各種變量、常量、方法、對(duì)象和類等起個(gè)名字作為標(biāo)記,以便通過(guò)名字進(jìn)行訪問(wèn),這些名字統(tǒng)稱標(biāo)識(shí)符。Java中的標(biāo)識(shí)符由字母、數(shù)字、下劃線或美元符組成,且必須以字母、下劃線(_)或美元符($)開(kāi)頭。Java中標(biāo)識(shí)符的命名規(guī)則如下:●可以包含數(shù)字,但不能以數(shù)字開(kāi)頭;●除下劃線“_”和“$”符以外,不包含任何其他特殊字符,如空格;●區(qū)分大小寫(xiě),例如“abc”和“ABC”是兩個(gè)不同的標(biāo)識(shí)符;●不能使用Java關(guān)鍵字?!駱?biāo)識(shí)符可有任意長(zhǎng)度。1.4關(guān)鍵字關(guān)鍵字又叫保留字,是編程語(yǔ)言中事先定義的、有特別意義的標(biāo)識(shí)符。關(guān)鍵字對(duì)編譯器具有特殊的意義,用于表示一種數(shù)據(jù)類型或程序的結(jié)構(gòu)等,關(guān)鍵字不能用于變量名、方法名、類名以及包名。任務(wù)2變量和常量的定義2.1變量變量是數(shù)據(jù)的基本存儲(chǔ)形式,因Java是一種強(qiáng)類型的語(yǔ)言,所以每個(gè)變量都必須先聲明后再使用。變量的定義包括變量類型和變量名,其定義的基本格式如下:數(shù)據(jù)類型變量名=初始值;例如:定義整型變量inta=1;//聲明變量并賦初始值2.2常量常量是指一旦賦值之后其值不能再改變的變量。在Java語(yǔ)言中,使用final關(guān)鍵字來(lái)定義常量,其語(yǔ)法格式如下:final數(shù)據(jù)類型變量名=初始值;例如:定義常量finaldoublePI=3.1416;//聲明了一個(gè)double類型的常量,初始化值為3.1416任務(wù)3數(shù)據(jù)類型3.1基本數(shù)據(jù)類型Java的基本數(shù)據(jù)類型主要包括如下四類:●整數(shù)類型:byte、short、int、long●浮點(diǎn)類型:float、double●字符類型:char●布爾類型:boolean1.整型類型整數(shù)類型根據(jù)大小分為byte(字節(jié)型)、short(短整型)、int(整型)和long(長(zhǎng)整型)四種,其中int是最常用的整數(shù)類型,因此通常情況下,直接給出一個(gè)整數(shù)值默認(rèn)就是int類型。其中,在定義long類型的變量時(shí),其常量后面需要用后綴l或L。例如:聲明整型類型變量byteb=51;//聲明字節(jié)型變量shorts=34;//聲明短整型變量inti=100;//聲明整型變量longm=12l;//聲明長(zhǎng)整型變量longn=23L;//聲明長(zhǎng)整型變量Java中整數(shù)值有4種表示方式:●二進(jìn)制:每個(gè)數(shù)據(jù)位上的值是0或1,二進(jìn)制是整數(shù)在內(nèi)存中的真實(shí)存在形式,從Java7開(kāi)始新增了對(duì)二進(jìn)制整數(shù)的支持,二進(jìn)制的整數(shù)以“0b”或“0B”開(kāi)頭?!癜诉M(jìn)制:每個(gè)數(shù)據(jù)位上的值是0,1,2,3,4,5,6,7,其實(shí)八進(jìn)制是由3位二進(jìn)制數(shù)組成的,程序中八進(jìn)制的整數(shù)以“0”開(kāi)頭?!袷M(jìn)制:每個(gè)數(shù)據(jù)位上的值是0,1,2,3,4,5,6,7,8,9,十進(jìn)制是生活中常用的數(shù)值表現(xiàn)形式,因此在程序中如無(wú)特殊指明,數(shù)值默認(rèn)為十進(jìn)制?!袷M(jìn)制:每個(gè)數(shù)據(jù)位上的值是0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,與八進(jìn)制類似,十六進(jìn)制是由4位二進(jìn)制數(shù)組成的,程序中十六進(jìn)制的整數(shù)以“0x”或“0X”開(kāi)頭。2.浮點(diǎn)類型浮點(diǎn)數(shù)據(jù)類型有單精度(float)和雙精度(double)兩種,主要用來(lái)存儲(chǔ)小數(shù)數(shù)值,也可以用來(lái)存儲(chǔ)范圍更大的整數(shù)。單精度浮點(diǎn)型變量使用關(guān)鍵字float來(lái)聲明,常量后面必須要有后綴f或F。例如:聲明單精度浮點(diǎn)型變量floatheight=1.78f;//聲明變量height為單精度浮點(diǎn)型,并賦初始值為1.78floatweight=56.8F;//聲明變量weight為單精度浮點(diǎn)型,并賦初始值為56.8雙精度浮點(diǎn)型變量使用關(guān)鍵字double來(lái)聲明,常量后面可以有后綴d或D,也可以省略,浮點(diǎn)類型默認(rèn)為double型。例如:聲明雙精度浮點(diǎn)型變量doublea=1.24d;doubleb=4.87D;doublec=3.14;3.字符型Java語(yǔ)言中字符型char是采用16位的Unicode字符集作為編碼方式,因此支持世界上各種語(yǔ)言的字符。char通常用于表示單個(gè)字符,字符值必須使用單引號(hào)(’)括起來(lái)。例如:charc='A';//聲明變量c為字符型,并賦初值為'A'字符型char的值有以下三種表示形式:●通過(guò)單個(gè)字符來(lái)指定字符型值,例如:'A'、'8'、'Z'等;●通過(guò)轉(zhuǎn)義字符來(lái)表示特殊字符型值,例如:'\n'、'\t'等;●直接使用Unicode值來(lái)表示字符型值,格式是‘\uXXXX’,其中XXXX代表一個(gè)十六進(jìn)制的整數(shù),例如:’\u00FF’、’\u0056’等。4.布爾類型布爾類型又稱邏輯類型,使用關(guān)鍵字boolean來(lái)聲明,只有true和false兩種值。布爾類型的默認(rèn)值是false,即如果定義一個(gè)布爾變量但沒(méi)有賦初始值,默認(rèn)的布爾變量值是false。布爾類型通常用于邏輯判斷,尤其多用在程序的流程控制中。例如:聲明一個(gè)boolean類型變量booleanmale=true;//聲明變量male為布爾類型,并賦初始值為true3.2引用數(shù)據(jù)類型引用類型變量中的值是指向內(nèi)存“堆”中的指針,即該變量所表示數(shù)據(jù)的地址。Java語(yǔ)言中通常有5種引用類型:●數(shù)組:具有相同數(shù)據(jù)類型的變量的集合?!耦悾╟lass):變量和方法的集合?!窠涌冢╥nterface):一系列方法的聲明,方法特征的集合?!衩杜e(enum):一種獨(dú)特的值類型,用于聲明一組命名的常數(shù)?!窨疹愋停╪ulltype):空引用,即值為null的類型。3.3數(shù)據(jù)類型轉(zhuǎn)換在Java程序中,不同的基本類型的值經(jīng)常需要進(jìn)行相互轉(zhuǎn)換。Java語(yǔ)言提供7個(gè)基本數(shù)據(jù)類型間的相互轉(zhuǎn)換,轉(zhuǎn)換的方式有兩種:自動(dòng)類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換。1.自動(dòng)類型轉(zhuǎn)換自動(dòng)類型轉(zhuǎn)換是將某種基本類型變量的值直接賦值給另一種基本類型變量。當(dāng)把一個(gè)數(shù)值范圍小的變量直接賦值給一個(gè)數(shù)值范圍大的變量時(shí),系統(tǒng)將進(jìn)行自動(dòng)類型轉(zhuǎn)換,否則就需要強(qiáng)制類型轉(zhuǎn)換。Java語(yǔ)言中7個(gè)基本數(shù)據(jù)類型間的自動(dòng)類型轉(zhuǎn)換如圖2.2所示。在圖2.2中,順著箭頭方向可以進(jìn)行自動(dòng)類型轉(zhuǎn)換。2.強(qiáng)制類型轉(zhuǎn)換當(dāng)把一個(gè)數(shù)值范圍大的變量賦值給一個(gè)數(shù)值范圍小的變量時(shí),即沿圖2.1中箭頭反方向賦值時(shí),則必須使用強(qiáng)制類型轉(zhuǎn)換。強(qiáng)制類型轉(zhuǎn)換的基本格式如下:數(shù)據(jù)類型變量1=(數(shù)據(jù)類型)變量2;例如:inta=56;charc=(char)a;//把整型變量a強(qiáng)制類型轉(zhuǎn)換為字符型任務(wù)4運(yùn)算符與表達(dá)式運(yùn)算符也稱為操作符,是一種特殊的符號(hào),用來(lái)將一個(gè)或多個(gè)操作數(shù)連接成執(zhí)行性語(yǔ)句,以實(shí)現(xiàn)特定功能。Java中的運(yùn)算符按照操作數(shù)的個(gè)數(shù)可以分為三大類型:●一元運(yùn)算符:只操作一個(gè)操作數(shù);●二元運(yùn)算符:操作兩個(gè)操作數(shù);●三元運(yùn)算符:操作三個(gè)操作數(shù)。4.1自增、自減運(yùn)算符++是自增運(yùn)算符,將操作數(shù)在原來(lái)的基礎(chǔ)上加1,--是自減運(yùn)算符,將操作數(shù)在原來(lái)的基礎(chǔ)上減1。使用自增、自減運(yùn)算符時(shí)需要注意以下兩點(diǎn):●自增、自減運(yùn)算符只能操作單個(gè)數(shù)值型的變量(整型、浮點(diǎn)型都行),不能操作常量或表達(dá)式;●自增、自減運(yùn)算符可以放在操作數(shù)的前面(前綴自增自減),也可以放在操作數(shù)后面(后綴自增自減)。前綴自增自減的特點(diǎn)是先把操作數(shù)自增或自減1后,再放入表達(dá)式中運(yùn)算,后綴自增自減的特點(diǎn)是先使用原來(lái)的值,當(dāng)表達(dá)式運(yùn)算結(jié)束后再將操作數(shù)自增或自減1。4.2算術(shù)運(yùn)算符算術(shù)運(yùn)算符用于執(zhí)行基本的數(shù)學(xué)運(yùn)算,包括加(+)、減(-)、乘(*)、除(/)以及取余(%)運(yùn)算符,4.3關(guān)系運(yùn)算符關(guān)系運(yùn)算符用于判斷兩個(gè)操作數(shù)的大小,其運(yùn)算結(jié)果是一個(gè)布爾類型值(true或false)4.4邏輯運(yùn)算符邏輯運(yùn)算符又稱布爾運(yùn)算符,用于進(jìn)行邏輯運(yùn)算。邏輯運(yùn)算符包括&&(邏輯與或短路邏輯與)、||(邏輯或或短路邏輯或)、?。ㄟ壿嫹牵?、&(非短路邏輯與)和|(非短路邏輯或)。4.5位運(yùn)算符Java語(yǔ)言中的位運(yùn)算符總體來(lái)說(shuō)分為兩類:按位運(yùn)算符和移位運(yùn)算符。Java語(yǔ)言中有4種按位運(yùn)算符,它們是按位與(&)、按位或(|)、按位非(~)和按位異或(^);移位運(yùn)算符有3種,分別是右移位(>>)、左移位(<<)和無(wú)符號(hào)右移位(>>>)。4.6賦值運(yùn)算符賦值運(yùn)算符用于為變量指定變量值,Java中使用“=”作為賦值運(yùn)算符。通常使用“=”可以直接將一個(gè)值賦給變量。例如:inta=3;floatb=3.14f;除此以外,也可以使用“=”將一個(gè)變量值或表達(dá)式的值賦給另一個(gè)變量。例如:inta=3;floatb=a;doubled=b+3;賦值運(yùn)算符可與算術(shù)運(yùn)算符、位運(yùn)算符結(jié)合,擴(kuò)展成復(fù)合賦值運(yùn)算符。4.7條件運(yùn)算符Java語(yǔ)言中只有一個(gè)條件運(yùn)算符是“?:”,也是唯一的一個(gè)三元運(yùn)算符,其語(yǔ)法格式如下:表達(dá)式?value1:value2其中:●表達(dá)式的值必須為布爾類型,可以是關(guān)系表達(dá)式或邏輯表達(dá)式;●若表達(dá)式的值為true,則返回value1的值;●若表達(dá)式的值為false,則返回value2的值。例如://判斷a>b是否為真,如果為真則返回a的值,否則返回b的值,//實(shí)現(xiàn)獲取兩個(gè)數(shù)中的最大數(shù)a>b?a:b4.8運(yùn)算符優(yōu)先級(jí)通常數(shù)學(xué)運(yùn)算都是從左到右,只有一元運(yùn)算符、賦值運(yùn)算符和三元運(yùn)算符除外。一元運(yùn)算符、賦值運(yùn)算符和三元運(yùn)算符是從右向左結(jié)合的,即從右向左運(yùn)算。乘法和加法是兩個(gè)可結(jié)合的運(yùn)算,即+、*運(yùn)算符左右兩邊的操作數(shù)可以互換位置而不會(huì)影響結(jié)果。運(yùn)算符具有不同的優(yōu)先級(jí),所謂優(yōu)先級(jí)是指在表達(dá)式運(yùn)算中的運(yùn)算順序。在表達(dá)式求值時(shí),會(huì)先按運(yùn)算符的優(yōu)先級(jí)別由高到低的次序執(zhí)行,例如,算術(shù)運(yùn)算符中采用“先乘除后加減,先括號(hào)內(nèi)后括號(hào)外”。()板書(shū)()實(shí)物展示()投影片(√)電子教案(√)項(xiàng)目展示課后小結(jié)實(shí)訓(xùn)、作業(yè)備注面向?qū)ο蟪绦蛟O(shè)計(jì)教案章節(jié)及名稱項(xiàng)目3了解流程控制結(jié)構(gòu)學(xué)時(shí)16教學(xué)目的與要求1.知識(shí)目標(biāo):1)掌握程序控制語(yǔ)句的基本語(yǔ)法結(jié)構(gòu)2)掌握分支語(yǔ)句和循環(huán)語(yǔ)句的應(yīng)用3)理解并熟練使用程序跳轉(zhuǎn)語(yǔ)句2.能力目標(biāo):1)能運(yùn)用分支語(yǔ)句編寫(xiě)分支結(jié)構(gòu)程序,并繪制相應(yīng)的程序流程圖。2)能運(yùn)用三大循環(huán)語(yǔ)句編寫(xiě)循環(huán)結(jié)構(gòu)程序,并繪制相應(yīng)的程序流程圖。3)能運(yùn)用跳轉(zhuǎn)語(yǔ)句完成比較復(fù)雜的程序編寫(xiě)。教學(xué)重點(diǎn)與難點(diǎn)重點(diǎn):1.掌握程序控制語(yǔ)句的基本語(yǔ)法結(jié)構(gòu)2.掌握分支語(yǔ)句和循環(huán)語(yǔ)句的應(yīng)用3.理解并熟練使用程序跳轉(zhuǎn)語(yǔ)句難點(diǎn):1.掌握程序控制語(yǔ)句的基本語(yǔ)法結(jié)構(gòu)2.掌握分支語(yǔ)句和循環(huán)語(yǔ)句的應(yīng)用3.理解并熟練使用程序跳轉(zhuǎn)語(yǔ)句教學(xué)方法與手段1.方法:項(xiàng)目制教學(xué)、案例式教學(xué)、啟發(fā)式教學(xué)、實(shí)踐型教學(xué)。2.教具:多媒體教室,教學(xué)做一體化教學(xué)多媒體教室,教學(xué)做一體化教學(xué)教學(xué)內(nèi)容提要與時(shí)間分配內(nèi)容提要輔助手段【課程導(dǎo)入】(時(shí)間5分鐘)問(wèn)題:猜數(shù)字游戲【任務(wù)描述】本節(jié)主要是掌握J(rèn)ava的流程控制結(jié)構(gòu),包括分支結(jié)構(gòu),循環(huán)結(jié)構(gòu)和跳轉(zhuǎn)語(yǔ)句。能運(yùn)用相關(guān)控制語(yǔ)句編寫(xiě)簡(jiǎn)單的猜數(shù)字游戲程序?!局v授內(nèi)容】任務(wù)1了解語(yǔ)句概述Java里的語(yǔ)句可分為以下六類。1.方法調(diào)用語(yǔ)句如:System.out.println("Hello");2.表達(dá)式語(yǔ)句由一個(gè)表達(dá)式構(gòu)成一個(gè)語(yǔ)句,即表示式尾加上分號(hào)。比如賦值語(yǔ)句:x=23;3.復(fù)合語(yǔ)句可以用{}把一些語(yǔ)句括起來(lái)構(gòu)成復(fù)合語(yǔ)句,如:{z=123+x;System.out.println("Howareyou");}4.空語(yǔ)句一個(gè)分號(hào)也是一條語(yǔ)句,叫做空語(yǔ)句。5.控制語(yǔ)句控制語(yǔ)句分為條件分支語(yǔ)句、開(kāi)關(guān)語(yǔ)句和循環(huán)語(yǔ)句。6.package語(yǔ)句和import語(yǔ)句package語(yǔ)句和import語(yǔ)句與類、對(duì)象有關(guān),將在以后的章節(jié)中講解。任務(wù)2掌握分支結(jié)構(gòu)應(yīng)用2.1if條件語(yǔ)句if條件語(yǔ)句是最常用的分支結(jié)構(gòu),其語(yǔ)法格式如下:if(條件表達(dá)式1){語(yǔ)句塊1}[elseif(條件表達(dá)式2){語(yǔ)句塊2}][elseif(條件表達(dá)式3){語(yǔ)句塊3}][else{語(yǔ)句塊n}]其中,if語(yǔ)句需要注意以下幾點(diǎn):●所有條件表達(dá)式的結(jié)果為布爾值(true或false);●當(dāng)“條件表達(dá)式1”為true時(shí)執(zhí)行if語(yǔ)句中的“語(yǔ)句塊1”部分;●當(dāng)“條件表達(dá)式1”為false時(shí),執(zhí)行elseif語(yǔ)句,繼續(xù)向下判斷條件表達(dá)式,哪個(gè)條件表達(dá)式成立,執(zhí)行相應(yīng)的語(yǔ)句塊;●當(dāng)所有條件表達(dá)式為false時(shí)執(zhí)行else語(yǔ)句中的“語(yǔ)句塊n”部分。●elseif可以有多個(gè);●[]括起來(lái)的elseif、else可以省略。根據(jù)語(yǔ)法規(guī)則,可以將if語(yǔ)句分為如下三種形式。1.if語(yǔ)句if語(yǔ)句是單條件單分支語(yǔ)句,即根據(jù)一個(gè)條件來(lái)控制程序執(zhí)行的流程。if語(yǔ)句的語(yǔ)法格式如下:if(條件表達(dá)式){語(yǔ)句塊}if語(yǔ)句的流程圖如圖3.2所示。在if語(yǔ)句中,關(guān)鍵字if后面的一對(duì)小括號(hào)()內(nèi)的條件表達(dá)式的值必須為boolean類型,當(dāng)值為true時(shí),則執(zhí)行緊跟著的語(yǔ)句塊,否則,結(jié)束當(dāng)前if語(yǔ)句的執(zhí)行。需要注意的是,在if語(yǔ)句中,其中的語(yǔ)句塊如果只有一條語(yǔ)句,{}可以省略不寫(xiě),但為了增強(qiáng)程序的可讀性,最好不要省略。2.if-else語(yǔ)句if-else語(yǔ)句是單條件雙分支語(yǔ)句,即根據(jù)一個(gè)條件來(lái)控制程序執(zhí)行的流程。if-else語(yǔ)句的語(yǔ)法格式如下:if(條件表達(dá)式){語(yǔ)句塊}else{語(yǔ)句塊}If-else語(yǔ)句的流程圖如圖3.3所示。在if-else語(yǔ)句中,關(guān)鍵字if后面小括號(hào)()內(nèi)的條件表達(dá)式的值必須為boolean類型,當(dāng)值為true時(shí),則執(zhí)行緊跟著的語(yǔ)句塊,否則,則執(zhí)行關(guān)鍵字else后面的語(yǔ)句塊,結(jié)束當(dāng)前if-else語(yǔ)句的執(zhí)行。3.if-elseif-else語(yǔ)句if-elseif-else語(yǔ)句是多條件分支語(yǔ)句,即根據(jù)多個(gè)條件來(lái)控制程序執(zhí)行的流程。if-elseif-else語(yǔ)句的語(yǔ)法格式如下:if(條件表達(dá)式){語(yǔ)句塊}elseif(條件表達(dá)式){語(yǔ)句塊}elseif(條件表達(dá)式){語(yǔ)句塊}//可以有多個(gè)elseif語(yǔ)句else{語(yǔ)句塊}…2.2switch開(kāi)關(guān)語(yǔ)句switch語(yǔ)句的語(yǔ)法格式如下:switch(控制表達(dá)式){casevalue1: 語(yǔ)句1; break;casevalue2: 語(yǔ)句2; break;casevalueN: 語(yǔ)句N; break;[default:默認(rèn)語(yǔ)句;]}其中,switch語(yǔ)句需要注意以下幾點(diǎn):●控制表達(dá)式的數(shù)據(jù)類型只能是byte、short、char、int、String和枚舉類型;●case標(biāo)簽后的value值必須是常量,且數(shù)據(jù)類型必須與控制表達(dá)式的值保持一致;●break用于跳出switch語(yǔ)句,即當(dāng)執(zhí)行完一個(gè)case分支后,終止switch語(yǔ)句的執(zhí)行;只有在一些特殊情況下,當(dāng)多個(gè)連續(xù)的case值要執(zhí)行一組相同的操作時(shí),此時(shí)可以不用break?!馾efault語(yǔ)句是可選的。用在當(dāng)所有case語(yǔ)句都不匹配控制表達(dá)式值時(shí),默認(rèn)執(zhí)行的語(yǔ)句。任務(wù)3循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)是根據(jù)循環(huán)條件,要求程序反復(fù)執(zhí)行某一段代碼,直到條件終止為止的程序控制結(jié)構(gòu)。循環(huán)結(jié)構(gòu)由四部分組成:●初始化部分。開(kāi)始循環(huán)之前,需要設(shè)置循環(huán)變量的初始值。●循環(huán)條件。循環(huán)條件是一個(gè)含有循環(huán)變量的布爾表達(dá)式,循環(huán)體的執(zhí)行需要循環(huán)條件來(lái)控制,每執(zhí)行一次循環(huán)體都需要判斷該表達(dá)式的值,用于決定循環(huán)是否繼續(xù)。●循環(huán)體。需要反復(fù)執(zhí)行的語(yǔ)句塊,可以是一條語(yǔ)句,也可以是多條語(yǔ)句?!竦糠?。改變循環(huán)變量值的語(yǔ)句。Java語(yǔ)言中提供的循環(huán)語(yǔ)句有以下三種:●for循環(huán)●while循環(huán)●do-while循環(huán)3.1for循環(huán)for循環(huán)是最常見(jiàn)的循環(huán)語(yǔ)句,其語(yǔ)法結(jié)構(gòu)非常簡(jiǎn)潔,一般用在知道循環(huán)次數(shù)的情況下,即固定循環(huán)。for循環(huán)的語(yǔ)法結(jié)構(gòu)如下:for([初始化表達(dá)式];[條件表達(dá)式];[迭代表達(dá)式]){ 循環(huán)體}其中:●初始化表達(dá)式只在循環(huán)開(kāi)始之前執(zhí)行一次;●初始化表達(dá)式、條件表達(dá)式以及迭代表達(dá)式都可以省略,但分號(hào)不能省,當(dāng)三者都省略時(shí)將成為一個(gè)無(wú)限循環(huán)(死循環(huán));●在初始化表達(dá)式和迭代表達(dá)式中可以使用逗號(hào)隔開(kāi)多個(gè)語(yǔ)句。3.2while循環(huán)while循環(huán)語(yǔ)句的語(yǔ)法格式如下:while(條件表達(dá)式){ 循環(huán)體 迭代部分}while循環(huán)語(yǔ)句的執(zhí)行順序是先判斷條件表達(dá)式是否為true,如果為true,則執(zhí)行循環(huán)體內(nèi)的語(yǔ)句,再進(jìn)入下一次循環(huán);如果條件表達(dá)式為false,則終止循環(huán)3.3do-while循環(huán)do-while循環(huán)與while循環(huán)類似,只是while循環(huán)要先判斷后循環(huán),而do-while循環(huán)則是先循環(huán)后判斷,do-while循環(huán)至少會(huì)循環(huán)一次。do-while循環(huán)的語(yǔ)法格式如下:do{ 循環(huán)體迭代部分}while(條件表達(dá)式);do-while循環(huán)的執(zhí)行順序是先執(zhí)行一次do語(yǔ)句塊,然后再判斷條件表達(dá)式是否為true,如果為true,則進(jìn)入下一次循環(huán);如果為false,則終止循環(huán)。任務(wù)4轉(zhuǎn)移語(yǔ)句4.1break語(yǔ)句break語(yǔ)句用于終止分支結(jié)構(gòu)或循環(huán)結(jié)構(gòu),其主要用在以下3種情況:●在switch語(yǔ)句中,用于終止case語(yǔ)句,跳出switch分支結(jié)構(gòu)?!裨谘h(huán)結(jié)構(gòu)中,用于終止循環(huán)語(yǔ)句,跳出循環(huán)結(jié)構(gòu)?!衽c標(biāo)簽語(yǔ)句配合使用從內(nèi)層循環(huán)或內(nèi)層程序塊中退出。4.2continue語(yǔ)句continue的功能與break有點(diǎn)類似,區(qū)別是continue只是忽略本次循環(huán)體剩下的語(yǔ)句,接著進(jìn)入到下一次循環(huán),并不會(huì)終止循環(huán);而break則是完全終止循環(huán)。4.3return語(yǔ)句return語(yǔ)句并不是專門用于結(jié)束循環(huán)的,通常是用在方法中,以便結(jié)束一個(gè)方法。return語(yǔ)句主要有以下兩種使用格式:●單獨(dú)一個(gè)return關(guān)鍵字?!駌eturn關(guān)鍵字后面可以跟變量、常量或表達(dá)式。例如:return0;當(dāng)含有return語(yǔ)句的方法被調(diào)用時(shí),執(zhí)行return語(yǔ)句將從當(dāng)前方法中退出,返回到調(diào)用該方法的語(yǔ)句處。如果執(zhí)行的return語(yǔ)句是第一種格式,則不返回任何值;如果是第二種格式,則返回一個(gè)值。()板書(shū)()實(shí)物展示()投影片(√)電子教案(√)項(xiàng)目展示課后小結(jié)實(shí)訓(xùn)、作業(yè)備注面向?qū)ο蟪绦蛟O(shè)計(jì)教案章節(jié)及名稱項(xiàng)目4認(rèn)識(shí)數(shù)組學(xué)時(shí)8教學(xué)目的與要求1.知識(shí)目標(biāo):1)掌握一維數(shù)組的定義和遍歷2)掌握數(shù)組的冒泡排序算法3)掌握f(shuō)oreach遍歷數(shù)組元素4)了解二維數(shù)組的定義和基本應(yīng)用5)掌握Arrays類中常用方法的應(yīng)用2.能力目標(biāo):1)能運(yùn)用數(shù)組數(shù)據(jù)結(jié)構(gòu)來(lái)定義相同元素的集合。2)能運(yùn)用foreach結(jié)構(gòu)訪問(wèn)數(shù)組元素。3)能運(yùn)用冒泡排序算法對(duì)數(shù)組元素進(jìn)行排序4)能運(yùn)用Arrays類來(lái)對(duì)數(shù)組進(jìn)行相應(yīng)的操作。5)能對(duì)二維數(shù)組進(jìn)行基本的定義和操作教學(xué)重點(diǎn)與難點(diǎn)重點(diǎn):1.掌握一維數(shù)組的定義和遍歷2.掌握數(shù)組的冒泡排序算法難點(diǎn):1.掌握f(shuō)oreach遍歷數(shù)組元素2.掌握Arrays類中常用方法的應(yīng)用教學(xué)方法與手段1.方法:項(xiàng)目制教學(xué)、案例式教學(xué)、啟發(fā)式教學(xué)、實(shí)踐型教學(xué)。2.教具:多媒體教室,教學(xué)做一體化教學(xué)多媒體教室,教學(xué)做一體化教學(xué)教學(xué)內(nèi)容提要與時(shí)間分配內(nèi)容提要輔助手段【課程導(dǎo)入】(時(shí)間5分鐘)問(wèn)題:簡(jiǎn)單的投票游戲程序.【任務(wù)描述】本節(jié)主要是掌握J(rèn)ava數(shù)組的定義和應(yīng)用,包括一維數(shù)組的創(chuàng)建和使用,數(shù)組冒泡排序算法,foreach遍歷數(shù)組元素,二維數(shù)組的基本定義以及系統(tǒng)定義Arrays類的使用。能運(yùn)用數(shù)組相關(guān)知識(shí)編寫(xiě)簡(jiǎn)單的投票游戲程序?!局v授內(nèi)容】任務(wù)1創(chuàng)建數(shù)組1.1數(shù)組的聲明在Java編程語(yǔ)言中,定義數(shù)組時(shí)并不為數(shù)組元素分配內(nèi)存。只有在初始化后才會(huì)為數(shù)組中的每一個(gè)元素分配空間,并且值得注意的是數(shù)組必須經(jīng)過(guò)初始化后才可以引用。Java語(yǔ)言支持兩種語(yǔ)法格式來(lái)定義數(shù)組: dataType[]arrayName; dataTypearrayName[];對(duì)這兩種語(yǔ)法格式而言,通常推薦使用第一種格式。因?yàn)榈谝环N格式不僅具有更好的語(yǔ)意,而且具有更好的可讀性。其中,dataType是數(shù)據(jù)元素的數(shù)據(jù)類型,arrayName是用戶自定義的數(shù)組名稱,數(shù)組名的命名要符合標(biāo)識(shí)符的命名規(guī)則。1.2數(shù)組的初始化數(shù)組的初始化有靜態(tài)初始化和動(dòng)態(tài)初始化兩種方式。靜態(tài)初始化時(shí)由程序員顯示指定每個(gè)數(shù)組元素的初始值,由系統(tǒng)決定數(shù)組長(zhǎng)度;動(dòng)態(tài)初始化時(shí)程序員只指定數(shù)組長(zhǎng)度,由系統(tǒng)為數(shù)組元素分配初始值。1.靜態(tài)初始化靜態(tài)初始化的語(yǔ)法格式如下:arrayName=newdataType[]{num1,num2,num3...};在上面的語(yǔ)法格式中,dataType就是數(shù)組元素的數(shù)據(jù)類型,此處的dataType必須與定義數(shù)組變量時(shí)所使用的dataType相同,也可以是定義數(shù)組時(shí)所指定的dataType的子類,并使用花括號(hào)把所有的數(shù)組元素括起來(lái),多個(gè)元素之間用逗號(hào)隔開(kāi)。2.動(dòng)態(tài)初始化動(dòng)態(tài)初始化的語(yǔ)法格式如下:arrayName=newdataType[length];在上面的語(yǔ)法中,需要指定一個(gè)數(shù)組長(zhǎng)度的length參數(shù),也就是可以容納數(shù)組元素的個(gè)數(shù)。與靜態(tài)初始化相似的是,此處的dataType必須與定義數(shù)組變量時(shí)所使用的dataType相同,或者是定義數(shù)組時(shí)所指定的dataType的子類。任務(wù)2訪問(wèn)數(shù)組數(shù)組最常用的用法就是訪問(wèn)數(shù)組元素,包括對(duì)數(shù)組元素進(jìn)行賦值和取出數(shù)組元素的值。訪問(wèn)數(shù)組元素中某個(gè)元素的語(yǔ)法格式如下:arrayName[index]在上面的語(yǔ)法中,index表示數(shù)組的下標(biāo)索引,其取值范圍從0開(kāi)始,最大值為數(shù)組的長(zhǎng)度-1。例如,array[0]表示數(shù)組array的第1個(gè)元素,array[10]表示數(shù)組array的第11個(gè)元素。數(shù)組的長(zhǎng)度可以通過(guò)“數(shù)組名.length”進(jìn)行獲取。如果訪問(wèn)數(shù)組元素時(shí)指定的下標(biāo)索引值小于0,或者大于等于數(shù)組的長(zhǎng)度,編譯程序不會(huì)出現(xiàn)任何錯(cuò)誤,但運(yùn)行時(shí)會(huì)出現(xiàn)異常:java.lang.ArrayIndexOutOfBoundsException:N(數(shù)組索引越界異常),異常信息后的N就是程序員試圖訪問(wèn)的數(shù)組下標(biāo)索引。下面案例示例了數(shù)組的使用。任務(wù)3冒泡排序算法冒泡排序是一種簡(jiǎn)單的排序算法。這個(gè)算法的名字由來(lái)是因?yàn)樵酱蟮脑貢?huì)經(jīng)數(shù)據(jù)交換慢慢“浮”到數(shù)列的頂端而得名,它重復(fù)訪問(wèn)要排序的數(shù)列,一次比較兩個(gè)元素,如果他們的順序錯(cuò)誤就把他們交換過(guò)來(lái)。冒泡排序算法的原理如下:1.比較相鄰的元素,如果第一個(gè)比第二個(gè)大,就交換他們兩個(gè)。2.對(duì)每一對(duì)相鄰元素作同樣的工作,從開(kāi)始第一對(duì)到結(jié)尾的最后一對(duì)。在這一點(diǎn),最后的元素應(yīng)該會(huì)是最大的數(shù)。3.針對(duì)所有的元素重復(fù)以上的步驟,除了最后一個(gè)。4.持續(xù)每次對(duì)越來(lái)越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對(duì)數(shù)字需要比較。任務(wù)4foreach遍歷數(shù)組foreach循環(huán)能自動(dòng)遍歷數(shù)組或集合的每個(gè)元素。foreach語(yǔ)句的語(yǔ)法結(jié)構(gòu)如下所示:for(數(shù)據(jù)類型變量名:數(shù)組名)注意,foreach語(yǔ)句中的數(shù)據(jù)類型必須與數(shù)組的數(shù)據(jù)類型一致。任務(wù)5二維數(shù)組如果一維數(shù)組中的每個(gè)元素還是一維數(shù)組,則這種數(shù)組就被稱為二維數(shù)組。二維數(shù)組經(jīng)常用于解決矩陣方面的問(wèn)題。定義二維數(shù)組的基本語(yǔ)法格式如下:dataType[][]arrayName;二維數(shù)組的創(chuàng)建和初始化與一維數(shù)組類似,也可以使用靜態(tài)初始化和動(dòng)態(tài)初始化兩種方式,任務(wù)6Arrays類Arrays類是java.util包中的核心類,為了使用在程序中使用該類,必須在程序前導(dǎo)入java.util.Arrays類。6.1數(shù)組排序在前面介紹一維數(shù)組時(shí),曾經(jīng)使用一維數(shù)組對(duì)一系列整型數(shù)據(jù)進(jìn)行冒泡排序,其排序的過(guò)程是通過(guò)我們自己編寫(xiě)代碼實(shí)現(xiàn)的,而在Arrays類中提供了一個(gè)名為sort的方法,利用它可以直接對(duì)數(shù)組進(jìn)行排序,而不需要再編寫(xiě)代碼。sort()方法在Arrays類中是重載方法,它不僅提供了對(duì)基本數(shù)據(jù)類型的支持,而且也支持對(duì)對(duì)象進(jìn)行排序。6.2數(shù)組檢索從數(shù)組中檢索指定值是否存在是一個(gè)常見(jiàn)操作,類Arrays提供了一系列重載的binarySearch()方法可以用二分查找法對(duì)指定數(shù)組進(jìn)行檢索。binarySearch()方法用于在已經(jīng)排好序的數(shù)組中查找元素。如果找到了要查找的元素,則返回一個(gè)等于或大于0的值,否則將返回一個(gè)負(fù)值,表示在該數(shù)組目前的排序狀態(tài)下此目標(biāo)元素應(yīng)該插入的位置。負(fù)值的計(jì)算公式是“-n-1”,n表示第一個(gè)大于查找對(duì)象的元素在數(shù)組中的位置,如果數(shù)組中所有元素都小于要查找的對(duì)象,則n為數(shù)組的長(zhǎng)度,如果數(shù)組中包含重復(fù)元素,則無(wú)法保證找到的是哪一個(gè)元素。因此,在調(diào)用binarySearch()方法對(duì)數(shù)組進(jìn)行檢索之前,一定要確保被檢索的數(shù)組是有序的。6.3數(shù)組復(fù)制Arrays類提供了copyOf()方法和copyOfRange()方法實(shí)現(xiàn)數(shù)組的復(fù)制功能。copyOf()方法的第一個(gè)參數(shù)為源數(shù)組,第二個(gè)參數(shù)為生成的目標(biāo)數(shù)組的元素個(gè)數(shù)。如果指定的目標(biāo)數(shù)組元素個(gè)數(shù)小于源數(shù)組元素個(gè)數(shù),源數(shù)組前面的元素將被復(fù)制到目標(biāo)數(shù)組中;如果指定的目標(biāo)數(shù)組元素個(gè)數(shù)大于源數(shù)組元素個(gè)數(shù),則將源數(shù)組所有元素復(fù)制到目標(biāo)數(shù)組,目標(biāo)數(shù)組中多出的元素以0或null進(jìn)行填充。使用copyOfRange()方法可以指定將源數(shù)組中的一段元素復(fù)制到目標(biāo)數(shù)組。()板書(shū)()實(shí)物展示()投影片(√)電子教案(√)項(xiàng)目展示課后小結(jié)實(shí)訓(xùn)、作業(yè)備注面向?qū)ο蟪绦蛟O(shè)計(jì)教案章節(jié)及名稱項(xiàng)目5認(rèn)識(shí)類和對(duì)象(一)學(xué)時(shí)8教學(xué)目的與要求1.知識(shí)目標(biāo):1)了解面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想2)掌握類和對(duì)象的聲明與使用3)熟練掌握方法的聲明,參數(shù)的傳遞和方法的重載4)掌握構(gòu)造方法的定義和使用2.能力目標(biāo):1)掌握類和對(duì)象的聲明與使用2)熟練掌握方法的聲明,參數(shù)的傳遞和方法的重載3)掌握構(gòu)造方法的定義和使用教學(xué)重點(diǎn)與難點(diǎn)重點(diǎn):1、類和對(duì)象的聲明與使用2、方法的聲明,參數(shù)的傳遞和方法的重載3、構(gòu)造方法的定義和使用難點(diǎn):1、類和對(duì)象的聲明與使用2、方法的聲明,參數(shù)的傳遞和方法的重載教學(xué)方法與手段1.方法:項(xiàng)目制教學(xué)、案例式教學(xué)、啟發(fā)式教學(xué)、實(shí)踐型教學(xué)。2.教具:多媒體教室,教學(xué)做一體化教學(xué)多媒體教室,教學(xué)做一體化教學(xué)教學(xué)內(nèi)容提要與時(shí)間分配內(nèi)容提要輔助手段【課程導(dǎo)入】(時(shí)間5分鐘)問(wèn)題:面向過(guò)程與面向?qū)ο蟮膮^(qū)別?【任務(wù)描述】本節(jié)主要是掌握J(rèn)ava類和對(duì)象的創(chuàng)建和使用,包括類和對(duì)象的基本概念,類和對(duì)象的創(chuàng)建,方法的編寫(xiě)、重載和調(diào)用,構(gòu)造方法的編寫(xiě)和使用,訪問(wèn)權(quán)限修飾符的使用。通過(guò)該項(xiàng)目的學(xué)習(xí),能運(yùn)用類和對(duì)象的基本知識(shí)完成JavaBean的創(chuàng)建和調(diào)用。【講授內(nèi)容】一、面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想1、面向?qū)ο笫且袁F(xiàn)實(shí)生活中客觀存在的事物(即對(duì)象)來(lái)構(gòu)造軟件系統(tǒng),當(dāng)前,在軟件開(kāi)發(fā)領(lǐng)域有兩種主流的開(kāi)發(fā)方法:結(jié)構(gòu)化開(kāi)發(fā)方法(StructureAnalysisStructureDesign,SASD)和面向?qū)ο?ObjectOriented,OO)開(kāi)發(fā)方法。面向?qū)ο蟮膬?yōu)點(diǎn):(1)可重用性減少軟件中的代碼重復(fù)編程,實(shí)現(xiàn)一次編程,多次使用。(2)可擴(kuò)展性當(dāng)軟件必須增加新的功能時(shí),能夠在現(xiàn)有系統(tǒng)結(jié)構(gòu)的基礎(chǔ)上,方便地創(chuàng)建新的子系統(tǒng),而不需要改變系統(tǒng)現(xiàn)有的結(jié)構(gòu),也不會(huì)影響已經(jīng)存在的子系統(tǒng)。(3)可維護(hù)性當(dāng)用戶需求發(fā)生變化時(shí),只需要修改局部子系統(tǒng)的少量代碼,而不需要全部改動(dòng)。2、面向?qū)ο蟮幕久Q包括對(duì)象、類、消息、封裝性、繼承性和多態(tài)性。(1)對(duì)象抽象事物的具體化,就是對(duì)象??陀^世界中的任何實(shí)體都可以用對(duì)象(Object)來(lái)表示,對(duì)象是實(shí)體的抽象,由一組表示其靜態(tài)特征的屬性和它可執(zhí)行的一組操作組成。(2)類類(class)是具有相同或相似性質(zhì)的具體事物抽象化。類是對(duì)象的模板,對(duì)象是類的具體化,是對(duì)應(yīng)類的一個(gè)具體實(shí)例。(3)消息消息是一個(gè)實(shí)例與另一個(gè)實(shí)例之間傳遞的信息,是對(duì)象之間進(jìn)行通信的一種規(guī)格說(shuō)明。它一般由三部分組成:接收消息的對(duì)象的名稱;消息標(biāo)識(shí)符,也稱消息名;零個(gè)或多個(gè)參數(shù)。(4)封裝性封裝(Encapsulation)是一種信息隱蔽技術(shù)。對(duì)象的外特性:封裝使數(shù)據(jù)和加工該數(shù)據(jù)的方法封裝為一個(gè)整體,以實(shí)現(xiàn)獨(dú)立性很強(qiáng)的模塊,使得用戶只能見(jiàn)到對(duì)象的內(nèi)特性:保存內(nèi)部狀態(tài)的私有數(shù)據(jù)和實(shí)現(xiàn)加工能力的算法,對(duì)用戶是隱蔽的。Java語(yǔ)言中的訪問(wèn)控制級(jí)別有以下四種。public:公共級(jí)別,對(duì)外公開(kāi)。protected:受保護(hù)級(jí)別,對(duì)同一個(gè)包的類或子類公開(kāi)。default:默認(rèn)級(jí)別,對(duì)同一個(gè)包中的類公開(kāi)。private:私有級(jí)別,不對(duì)外公開(kāi),只在本類內(nèi)部訪問(wèn)。(5)繼承性繼承(extends)指子類自動(dòng)繼承父類的屬性和方法,這是類之間的一種關(guān)系。(6)多態(tài)性多態(tài)(Polymorphism)就是方法的多種形態(tài)。二、類的聲明類(class)定義了一種新的數(shù)據(jù)類型,是具有相同特征(屬性)和共同行為(方法)的一組對(duì)象的集合。類的聲明就是定義一個(gè)類,其語(yǔ)法格式如下:[訪問(wèn)符][修飾符]class類名{[屬性][方法]}三、對(duì)象的創(chuàng)建和使用創(chuàng)建對(duì)象需要通過(guò)關(guān)鍵new為其分配內(nèi)存空間,其語(yǔ)法格式如下:類名對(duì)象名=new構(gòu)造方法();聲明對(duì)象后,如果不想給對(duì)象分配內(nèi)存空間,則可以使用“null”關(guān)鍵字給對(duì)象賦值,例如:Personperson=null;“null”關(guān)鍵字表示“空”,用于標(biāo)識(shí)一個(gè)不確定的對(duì)象,即該對(duì)象的引用為空。因此可以將null賦給引用類型變量,但不可以賦給基本類型變量。例如:privateStringname=null;//是正確的privateintage=null;//是錯(cuò)誤的null本身雖然能代表一個(gè)不確定的對(duì)象,但null不是對(duì)象,也不是類的實(shí)例。null的另外一個(gè)用途就是釋放內(nèi)存,在Java中,當(dāng)某一個(gè)非null的引用類型變量指向的對(duì)象不再使用時(shí),若想加快其內(nèi)存回收,可讓其指向null,這樣該對(duì)象將不再被使用,并由JVM拉結(jié)回收機(jī)制去回收。創(chuàng)建對(duì)象之后,接下來(lái)就可以使用該對(duì)象。通過(guò)使用對(duì)象運(yùn)算符“.”,對(duì)象可以實(shí)現(xiàn)對(duì)自己的變量訪問(wèn)和方法的調(diào)用。使用對(duì)象大致有以下兩個(gè)作用:△訪問(wèn)對(duì)象的屬性,即對(duì)象的實(shí)例變量,格式是“對(duì)象名.屬性名”?!髟L問(wèn)對(duì)象的方法,格式是“對(duì)象名.方法名()”。如果訪問(wèn)權(quán)限允許,類里定義的成員變量和方法都可以通過(guò)對(duì)象來(lái)調(diào)用,例如:person.display();//調(diào)用對(duì)象的方法四、對(duì)象數(shù)組對(duì)象數(shù)組就是一個(gè)數(shù)組中的所有元素都是對(duì)象。聲明對(duì)象數(shù)組與普通基本數(shù)據(jù)類型的數(shù)組格式一樣,具體格式如下:類名[]數(shù)組名=new類名[數(shù)組長(zhǎng)度];下面語(yǔ)句示例了創(chuàng)建一個(gè)長(zhǎng)度為5的Person類的對(duì)象數(shù)組:Person[]arrayPerson=newPerson[5];上面的語(yǔ)句也可以分成兩行,等價(jià)于;Person[]arrayPerson;arrayPerson=newPerson[5];由于對(duì)象數(shù)組中的每個(gè)元素都是對(duì)象,所以每個(gè)元素都需要單獨(dú)實(shí)例化,即還需使用new關(guān)鍵字實(shí)例化每個(gè)元素,代碼如下所示。arrayPerson[0]=newPerson("李四",20,"重慶");arrayPerson[1]=newPerson("張三",21,"成都");創(chuàng)建對(duì)象數(shù)組時(shí)也可以同時(shí)實(shí)例化數(shù)組中的每個(gè)元素對(duì)象,此時(shí)無(wú)須指明對(duì)象數(shù)組的長(zhǎng)度,類似基本數(shù)據(jù)類型的數(shù)組靜態(tài)初始化。示例代碼如下Person[]arrayPerson=newPerson[]{ newPerson("李四",20,"重慶"), newPerson("張三",21,"成都"), newPerson("唐二",21,"上海")};也可以直接簡(jiǎn)化成如下代碼:Person[]arrayPerson={ newPerson("李四",20,"重慶"), newPerson("張三",21,"成都"), newPerson("唐二",21,"上海")};五、變量成員變量和局部變量可以定義為Java語(yǔ)言中的任何數(shù)據(jù)類型,包括簡(jiǎn)單類型和引用類型。成員變量和局部變量的區(qū)別如下:●成員變量可以定義在整個(gè)類體中的任意位置,其有效性與它在類體中書(shū)寫(xiě)的先后位置無(wú)關(guān),它的作用域是整個(gè)類;局部變量的作用域從定義它的位置開(kāi)始,直到定義它的語(yǔ)句塊結(jié)束。●成員變量和局部變量可以重名,成員方法中訪問(wèn)重名的局部變量時(shí),成員變量被隱藏。如果想在成員方法中訪問(wèn)重名的成員變量,需要在前面加關(guān)鍵字this?!癯蓡T變量有默認(rèn)值,但局部變量沒(méi)有默認(rèn)值。因此,在使用局部變量之前,必須保證局部變量有具體的值。六、方法的聲明類體中定義的方法分為實(shí)例成員方法、類成員方法(靜態(tài)成員方法)和構(gòu)造方法。方法是類的行為的體現(xiàn),定義方法的語(yǔ)法格式如下所示:[訪問(wèn)符][修飾符]<返回值類型>方法名([參數(shù)列表]){//方法體}其中:△訪問(wèn)符用于指明方法的訪問(wèn)權(quán)限,可以是public(公共的)、protected(受保護(hù)的)、private(私有的)或默認(rèn)的?!餍揎椃糜谥该魉x的方法的特性,可以是abstract(抽象的)、static(靜態(tài)的)、final(最終的)或默認(rèn)的,這些修飾符在定義類方法不是必需的,需要根據(jù)方法的特性進(jìn)行使用?!鞣祷刂殿愋褪窃摲椒ㄟ\(yùn)行后返回值的數(shù)據(jù)類型,如果一個(gè)方法沒(méi)有返回值,則該方法的返回類型為void。△方法名是指所定義方法的名字,方法名的命名與變量名一樣必須符合命名規(guī)則,Java中的方法名通常由一個(gè)或多個(gè)有意義的單詞連綴而成,第一個(gè)單詞的首字母小寫(xiě),其他單詞的首字母大寫(xiě),其他字母小寫(xiě)?!鲄?shù)列表是方法運(yùn)行所需要特定類型的參數(shù)?!鞣椒w是大括號(hào)括起來(lái)的部分,用于完成方法功能的實(shí)現(xiàn)。七、方法的參數(shù)傳遞機(jī)制方法的參數(shù)列表可以帶參數(shù),也可以不帶參數(shù),是否帶參數(shù)根據(jù)定義方法的具體情況而定,通過(guò)參數(shù)可以給方法傳遞數(shù)據(jù),例如:publicvoidsetAge(intage){ this.age=age;}根據(jù)參數(shù)的使用場(chǎng)合,可以將參數(shù)分為“形參”和“實(shí)參”兩種:形參是聲明方法時(shí)給方法定義的形式上的參數(shù),此時(shí)形參沒(méi)有具體的數(shù)值,形參前必須有數(shù)據(jù)類型,其格式是“方法名(數(shù)據(jù)類型形參)”;實(shí)參是調(diào)用方法時(shí)程序給方法傳遞的實(shí)際數(shù)據(jù),實(shí)參前面沒(méi)有數(shù)據(jù)類型,其使用格式是“對(duì)象名.方法名(實(shí)參)”。形參本身沒(méi)有具體的數(shù)值,需要實(shí)參將實(shí)際的數(shù)值傳遞給它之后才具有數(shù)值。實(shí)參和形參之間傳遞數(shù)值的方式有兩種:值傳遞和引用傳遞。1.值傳遞值傳遞是將實(shí)參的值傳遞給形參,被調(diào)方法為形參創(chuàng)建一份新的內(nèi)存拷貝來(lái)存儲(chǔ)實(shí)參傳遞過(guò)來(lái)的值,然后再對(duì)形參進(jìn)行數(shù)值操作。值傳遞時(shí),實(shí)參和形參在內(nèi)存中占不同的空間,當(dāng)實(shí)參的值傳遞給形參后,兩者之間將互不影響,因此形參值的改變不會(huì)影響原來(lái)實(shí)參的值。在Java中,當(dāng)參數(shù)的數(shù)據(jù)類型是基本數(shù)據(jù)類型時(shí),實(shí)參和形參之間是按值傳遞的。2.引用傳遞引用傳遞時(shí)將實(shí)參的地址傳遞給形參,被調(diào)方法通過(guò)傳遞的地址獲取其指向的內(nèi)存空間,從而在原來(lái)的內(nèi)存空間直接進(jìn)行操作。引用傳遞時(shí),實(shí)參和形參指向內(nèi)存中的同一空間,因此當(dāng)修改了形參的值時(shí),實(shí)參的值也會(huì)改變。在Java中,當(dāng)參數(shù)的數(shù)據(jù)類型是引用類型時(shí),如類、數(shù)組,實(shí)參和形參之間會(huì)是按引用傳遞值的。下述代碼示例參數(shù)的引用傳遞。八、構(gòu)造方法構(gòu)造方法是類的一個(gè)特殊方法,用于創(chuàng)建對(duì)象是初始化對(duì)象中的屬性值。它具有如下特點(diǎn)。(1)訪問(wèn)權(quán)限符一般是public,也可以是其他訪問(wèn)符。(2)沒(méi)有返回值,也不能有void修飾符。(3)方法名稱必須和類名相同。(4)如果沒(méi)有定義構(gòu)造方法,系統(tǒng)自動(dòng)定義默認(rèn)的構(gòu)造方法,該構(gòu)造方法不帶參數(shù),將類成員屬性進(jìn)行默認(rèn)賦值;如果為類定義了構(gòu)造方法,系統(tǒng)將不創(chuàng)建默認(rèn)構(gòu)造方法,而執(zhí)行用戶定義的構(gòu)造方法。(5)構(gòu)造方法可以重載,通過(guò)構(gòu)造方法中參數(shù)個(gè)數(shù)不同、參數(shù)類型不同及順序的不同實(shí)現(xiàn)構(gòu)造方法的重載。(6)在生成類的對(duì)象時(shí)調(diào)用,一個(gè)類中如果定義了多個(gè)構(gòu)造方法,則根據(jù)參數(shù)自動(dòng)選擇調(diào)用相應(yīng)的構(gòu)造方法。構(gòu)造方法定義的語(yǔ)法結(jié)構(gòu)如下所示。[訪問(wèn)符]構(gòu)造方法名([參數(shù)列表]){//初始化語(yǔ)句}九、方法的重載在Java語(yǔ)言程序中,如果同一個(gè)類中包含了兩個(gè)或兩個(gè)以上方法的方法名相同,但參數(shù)列表不同,則被稱為方法重載,方法的重載也是多態(tài)的一種。對(duì)于重載的方法,編譯器是根據(jù)方法的參數(shù)來(lái)進(jìn)行方法綁定的。根據(jù)方法重載的概念,也可以將方法重載分成三種類型,分別是參數(shù)類型的重載、參數(shù)數(shù)量的重載和參數(shù)順序的重載。參數(shù)類型的重載是當(dāng)實(shí)現(xiàn)重載方法的參數(shù)個(gè)數(shù)相同時(shí),而參數(shù)的類型不同;參數(shù)數(shù)量的重載是指實(shí)現(xiàn)重載的方法的參數(shù)數(shù)量不同;最后一種重載是相同參數(shù)數(shù)量的方法,但參數(shù)順序不同。注意,方法的返回值類型不是方法簽名的一部分,因此進(jìn)行方法重載的時(shí)候,不能將返回值類型的不同當(dāng)成兩個(gè)方法的區(qū)別。方法重載必須遵守以下三條原則:(1)在同一個(gè)類中;(2)方法名相同(3)方法的參數(shù)類型、個(gè)數(shù)及順序至少有一項(xiàng)不同。()板書(shū)()實(shí)物展示()投影片(√)電子教案(√)項(xiàng)目展示課后小結(jié)實(shí)訓(xùn)、作業(yè)備注面向?qū)ο蟪绦蛟O(shè)計(jì)教案章節(jié)及名稱項(xiàng)目5認(rèn)識(shí)類和對(duì)象(二)學(xué)時(shí)8教學(xué)目的與要求1.知識(shí)目標(biāo):1)掌握this和static關(guān)鍵字的使用2)掌握可變參數(shù)的使用3)掌握訪問(wèn)控制修飾符的使用4)了解包的聲明和使用5)了解單例類的概念2.能力目標(biāo):1)掌握this和static關(guān)鍵字的使用2)掌握可變參數(shù)的使用3)掌握訪問(wèn)控制修飾符的使用4)了解包的聲明和使用5)了解單例類的概念教學(xué)重點(diǎn)與難點(diǎn)重點(diǎn):1、this和static關(guān)鍵字的使用2、訪問(wèn)控制修飾符的使用3、包的聲明和使用難點(diǎn):1、this和static關(guān)鍵字的使用2、訪問(wèn)控制修飾符的使用3、包的聲明和使用教學(xué)方法與手段1.方法:項(xiàng)目制教學(xué)、案例式教學(xué)、啟發(fā)式教學(xué)、實(shí)踐型教學(xué)。2.教具:多媒體教室,教學(xué)做一體化教學(xué)多媒體教室,教學(xué)做一體化教學(xué)教學(xué)內(nèi)容提要與時(shí)間分配內(nèi)容提要輔助手段【課程導(dǎo)入】(時(shí)間5分鐘)問(wèn)題:如何實(shí)現(xiàn)項(xiàng)目中多模塊之間的訪問(wèn)?【任務(wù)描述】本節(jié)主要是掌握J(rèn)ava類和對(duì)象的創(chuàng)建和使用,包括類和對(duì)象的基本概念,類和對(duì)象的創(chuàng)建,方法的編寫(xiě)、重載和調(diào)用,構(gòu)造方法的編寫(xiě)和使用,訪問(wèn)權(quán)限修飾符的使用。通過(guò)該項(xiàng)目的學(xué)習(xí),能運(yùn)用類和對(duì)象的基本知識(shí)完成JavaBean的創(chuàng)建和調(diào)用?!局v授內(nèi)容】一、static關(guān)鍵字的使用static用來(lái)修飾類的成員變量和成員方法,同時(shí)與可以修飾代碼塊,表示靜態(tài)的代碼塊。靜態(tài)的成員變量和成員方法獨(dú)立于類的對(duì)象,被類的所有實(shí)例共享。因此可不生成類的任何對(duì)象,直接通過(guò)類實(shí)現(xiàn)對(duì)靜態(tài)成員的訪問(wèn)。當(dāng)類加載后,Java虛擬機(jī)能根據(jù)類名在運(yùn)行時(shí)數(shù)據(jù)區(qū)的方法區(qū)內(nèi)找到它們。訪問(wèn)類的靜態(tài)變量和靜態(tài)方法時(shí),可以直接通過(guò)類名訪問(wèn),語(yǔ)法格式如下:類名.靜態(tài)方法名(形參列表);類名.靜態(tài)變量名;當(dāng)Java虛擬機(jī)加載類時(shí),靜態(tài)代碼塊被一次性執(zhí)行,稱為加載時(shí)執(zhí)行。若類中有多個(gè)靜態(tài)代碼塊,JVM將按照它們出現(xiàn)的先后依次執(zhí)行,且每個(gè)代碼塊只被執(zhí)行一次。類的方法可以相互調(diào)用,但當(dāng)一個(gè)方法定義為靜態(tài)方法時(shí),它可以直接訪問(wèn)類的靜態(tài)變量,調(diào)用類的靜態(tài)方法,但不能直接訪問(wèn)類的非靜態(tài)變量和調(diào)用類的非靜態(tài)方法,只能通過(guò)生成類的對(duì)象,并通過(guò)該對(duì)象訪問(wèn)相應(yīng)的變量和調(diào)用相應(yīng)的方法。同時(shí)靜態(tài)的方法不能以任何方式引用this和super關(guān)鍵字,因?yàn)殪o態(tài)方法獨(dú)立于類的任何對(duì)象,因此靜態(tài)方法必須被實(shí)現(xiàn),而不能定義靜態(tài)抽象方法。利用靜態(tài)代碼塊可對(duì)static類變量賦值。下述示例示范了類的static方法、static變量以及static代碼塊的定義和使用。二、this關(guān)鍵字的使用this是Java語(yǔ)言中一個(gè)非常重要的關(guān)鍵字,用來(lái)表示當(dāng)前實(shí)例。它可以出現(xiàn)在實(shí)例成員方法和構(gòu)造方法中,但不可以出現(xiàn)在類成員方法中。this關(guān)鍵字有兩種用法,其一是作用在成員方法和構(gòu)造方法中,代表正在調(diào)用該方法的實(shí)例,如果方法的參數(shù)和類中的成員變量重名時(shí),必須使用this關(guān)鍵字,以區(qū)分實(shí)例變量和成員方法變量;如果方法的參數(shù)名和成員變量名不重名時(shí),this可以省略。this關(guān)鍵字的第二種用法,就是放在構(gòu)造方法中,使用this(參數(shù)列表)的方式,來(lái)調(diào)用類中其他的構(gòu)造方法,而且this(參數(shù)列表)必須放在第一行。三、可變參數(shù)的使用前面講述方法時(shí)定義的參數(shù)個(gè)數(shù)都是固定的,而從JDK1.5之后,Java允許定義方法時(shí)參數(shù)的個(gè)數(shù)可以變化,這種情況稱為“可變參數(shù)”。定義可變參數(shù)非常簡(jiǎn)單,只需在方法的最后一個(gè)參數(shù)的數(shù)據(jù)類型后增加3個(gè)點(diǎn)(…)即可,其具體語(yǔ)法格式如下:[訪問(wèn)符][修飾符]<返回值類型>方法名([參數(shù)列表],數(shù)據(jù)類型…變量){//方法體}可變參數(shù)需要注意以下幾點(diǎn):△可變參數(shù)只能處于參數(shù)列表的最后。△一個(gè)方法中最多只能包含一個(gè)可變參數(shù)?!骺勺儏?shù)的本質(zhì)就是一個(gè)數(shù)組,因此在調(diào)用一個(gè)包含可變參數(shù)的方法時(shí),既可以傳入多個(gè)參數(shù),也可以傳入一個(gè)數(shù)組。四、包1、包的概述Java引入包(package)的機(jī)制,提供了類的多層命名空間,解決類的命名沖突、類文件管理等問(wèn)題。包可以對(duì)類進(jìn)行組織和管理,使其與其他源代碼庫(kù)中的類分隔開(kāi),只需保證同一個(gè)包中不存在同名的類即可,以確保類名的唯一性,避免類名的重復(fù)。借助于包可以將自己定義的類與其他類庫(kù)中的類分開(kāi)管理。Java的基礎(chǔ)類庫(kù)就是使用包進(jìn)行管理的,例如,java.lang包、java.util包等。在不同的包中,類名可以相同,例如,java.util.Date類和java.sql.Date類,這兩個(gè)類的類名都是Date,但分別屬于java.util包和java.sql包,因此能夠同時(shí)存在。2、包的聲明定義包的語(yǔ)法格式如下:package包名;使用package關(guān)鍵字可以指定類所屬的包,定義包需要注意以下幾點(diǎn):△package語(yǔ)句必須作為Java源文件的第一條非注釋性語(yǔ)句?!饕粋€(gè)Java源文件只能指定一個(gè)包,即只有一條package語(yǔ)句,不能有多條package語(yǔ)句。△定義包以后,Java源文件中可以定義多個(gè)類,這些類將全部位于該包下。△多個(gè)Java源文件可以定義相同的包,這些源文件將全部位于該包下。下述代碼示例了包的定義packagecom;上述語(yǔ)句聲明了一個(gè)名為com的包。在物理上,Java使用文件夾目錄來(lái)組織包,任何聲明了“packagecom”的類,編譯后形成的字節(jié)碼文件(.class)都被存儲(chǔ)在一個(gè)com目錄中。與文件目錄一樣,包與可以分成多級(jí),多級(jí)的包名之間使用“.”進(jìn)行分隔。例如:packagecom.zdsoft.wlw;上述語(yǔ)句在物理上的表現(xiàn)形式將是嵌套的文件目錄,即“com\zdsoft\wlw”目錄,所有聲明了“packagecom.zdsoft.wlw”的類,其編譯結(jié)果都被存儲(chǔ)在wlw子目錄下。3、包的導(dǎo)入Java中一個(gè)類可以訪問(wèn)其所在包中的其他所有的類,但是如果需要訪問(wèn)其他包中的類,則可以使用import語(yǔ)句導(dǎo)入包。Java中導(dǎo)入包的語(yǔ)法格式如下:import包名.*;//導(dǎo)入指定包中所有的類或import包名.類名;//導(dǎo)入指定包中指定的類注意,*指明導(dǎo)入當(dāng)前包中的所有類,但不能使用“java.*”或“java.*.*”這種語(yǔ)句來(lái)導(dǎo)入以java為前綴的所有包的所有類。一個(gè)Java源文件只能有一條package語(yǔ)句,但可以有多條import語(yǔ)句,且package語(yǔ)句必須在import語(yǔ)句之前。導(dǎo)入包以后,可以在代碼中直接訪問(wèn)包中的相關(guān)類。當(dāng)然,也可以不使用import語(yǔ)句倒入相應(yīng)的包,只需在使用的類名前直接添加完整的包名即可。例如:java.util.DatenewDate=newjava.util.Date();當(dāng)程序中導(dǎo)入兩個(gè)或多個(gè)包中同名的類后,如果直接使用類名,編譯器將無(wú)法區(qū)分,此時(shí)就可以使用上述方式,在類名前面加上完全限定的包名。4、Java常用包的概述Java的核心類都放在java這個(gè)包及其子包下,Java擴(kuò)展的許多類都放在javax包及其子包下。這些使用類就是應(yīng)用程序接口。下面幾個(gè)包是Java語(yǔ)言中的常用包。△java.lang:這個(gè)包下包含了Java語(yǔ)言的核心類,如String、Math、System和Thread類等,使用這個(gè)包下的類無(wú)須使用import語(yǔ)句導(dǎo)入,系統(tǒng)會(huì)自動(dòng)導(dǎo)入這個(gè)包下的所有類。△java.util:這個(gè)包下包含了Java的大量工具類/接口和集合框架類/接口,例如Arrays、List和Set等?!鱦ava.net:這個(gè)包下包含了一些Java網(wǎng)絡(luò)編程相關(guān)的類/接口?!鱦ava.io:這個(gè)包下包含了一些Java輸入/輸出編程相關(guān)的類/接口。△java.text:這個(gè)包下包含了一些Java格式化相關(guān)的類?!鱦ava.sql:這個(gè)包下包含了Java進(jìn)行JDBC數(shù)據(jù)庫(kù)編程相關(guān)的類/接口?!鱦ava.awt:這個(gè)包下包含了抽象窗口工具集和相關(guān)類/接口,這些類主要用于構(gòu)建圖形用戶界面(GUI)程序?!鱦ava.swing:這個(gè)包下包含了Swing圖形用戶界面編程的相關(guān)類/接口,這些類可用于構(gòu)建平臺(tái)無(wú)關(guān)的GUI程序。五、垃圾回收機(jī)制Java語(yǔ)言中很多對(duì)象的數(shù)據(jù)(成員變量)都存放在堆中,對(duì)象從中分配空間,Java虛擬機(jī)的堆中存儲(chǔ)著正在運(yùn)行的應(yīng)用程序所建立的所有對(duì)象,這些對(duì)象通過(guò)new等關(guān)鍵字建立,但是它們不需要程序代碼來(lái)顯示地釋放。一般來(lái)說(shuō),堆中的無(wú)用對(duì)象是由垃圾回收器來(lái)負(fù)責(zé)的,盡管Java虛擬機(jī)規(guī)范并不要求特殊的垃圾回收技術(shù),甚至根本就不需要垃圾回收,但是由于內(nèi)存的有限性,虛擬機(jī)在實(shí)現(xiàn)的時(shí)候都有一個(gè)由垃圾回收器管理的堆。垃圾回收是一種動(dòng)態(tài)存儲(chǔ)管理技術(shù),它自動(dòng)地釋放不再被程序引用的對(duì)象,按照特定的垃圾收集算法來(lái)實(shí)現(xiàn)資源自動(dòng)回收的功能。當(dāng)一個(gè)對(duì)象不再被引用時(shí),垃圾收集器會(huì)在適當(dāng)?shù)臅r(shí)候?qū)⑵滗N毀,適當(dāng)?shù)臅r(shí)候,即意味著無(wú)法預(yù)知何時(shí)垃圾收集器會(huì)進(jìn)行工作。當(dāng)對(duì)象被回收的時(shí)候,finalize()方法會(huì)被虛擬機(jī)自動(dòng)調(diào)用,如果重寫(xiě)了finalize()方法,這個(gè)方法也會(huì)被自動(dòng)執(zhí)行。一般用戶不自行調(diào)用finalize()方法。六、訪問(wèn)權(quán)限修飾符面向?qū)ο蟮姆诸愋孕枰玫椒庋b,為了實(shí)現(xiàn)良好的封裝,需要從以下兩個(gè)方面考慮:△將對(duì)象的成員變量和實(shí)現(xiàn)細(xì)節(jié)隱藏起來(lái),不允許外部直接訪問(wèn);△把方法暴露出來(lái),讓方法對(duì)成員變量進(jìn)行安全訪問(wèn)和操作。因此,封裝實(shí)際上把該隱藏的隱藏,該暴露的暴露,這些都需要通過(guò)Java訪問(wèn)權(quán)限修飾符來(lái)實(shí)現(xiàn)。Java的訪問(wèn)權(quán)限修飾符對(duì)類、屬性和方法進(jìn)行聲明和控制,以便隱藏類的一些實(shí)際細(xì)節(jié),防止對(duì)封裝數(shù)據(jù)未經(jīng)授權(quán)的訪問(wèn)和不合理的操作。實(shí)現(xiàn)封裝的關(guān)鍵是不讓外界直接與對(duì)象屬性交互,而是要通過(guò)指定的方法操作對(duì)象的屬性。Java提供了四個(gè)訪問(wèn)權(quán)限修飾符,分別是private(私有的)、protected(受保護(hù)的)、public(公共的)和默認(rèn)的。其中,默認(rèn)訪問(wèn)符又稱友好的(friendly),而friendly不是關(guān)鍵字,它只是一種默認(rèn)訪問(wèn)權(quán)限修飾符的稱謂而以。這四個(gè)訪問(wèn)權(quán)限修飾符級(jí)別的詳細(xì)介紹如下?!鱬rivate(當(dāng)前類訪問(wèn)權(quán)限):如果類中的一個(gè)成員(包括屬性、成員方法和構(gòu)造方法等)使用private訪問(wèn)權(quán)限修飾符來(lái)修飾,則這個(gè)成員只能在當(dāng)前類的內(nèi)部被訪問(wèn)。很顯然,這個(gè)訪問(wèn)權(quán)限修飾符用來(lái)修飾屬性最合適,使用它來(lái)修飾屬性就可以把屬性隱藏在該類的內(nèi)部?!髂J(rèn)的(包訪問(wèn)權(quán)限):如果類中的一個(gè)成員(包括屬性、成員方法和構(gòu)造方法等)或者一個(gè)外部類不使用任何訪問(wèn)權(quán)限修飾符,我們稱它是包訪問(wèn)權(quán)限,默認(rèn)修飾符控制的成員和外部類可以被相同包下的其他類訪問(wèn)?!鱬rotected(子類訪問(wèn)權(quán)限):如果類中的一個(gè)成員(包括屬性、成員方法和構(gòu)造方法等)使用protected訪問(wèn)權(quán)限修飾符來(lái)修飾,那么這個(gè)成員既可以被同一個(gè)包中的其他類訪問(wèn),也可以被不同包中的子類訪問(wèn)。在通常情況下,如果使用protected來(lái)修飾一個(gè)方法,是希望其子類來(lái)重寫(xiě)這個(gè)方法。△public(公共訪問(wèn)權(quán)限):這是一個(gè)最寬松的訪問(wèn)控制級(jí)別,如果類中的一個(gè)成員(包括屬性、成員方法和構(gòu)造方法等)或者一個(gè)外部類使用public訪問(wèn)權(quán)限修飾符,那么這個(gè)成員或者外部類就可以被所有類訪問(wèn),不管訪問(wèn)類和被訪問(wèn)類是否處于同一個(gè)包中,是否具有父子繼承關(guān)系。對(duì)于外部類而言,只能有兩種訪問(wèn)權(quán)限修飾符:public和默認(rèn)的,外部類不能使用private和protected來(lái)修飾,因?yàn)橥獠款悰](méi)有處于任何類的內(nèi)部,也就沒(méi)有其所在類的內(nèi)部、所在類的子類兩個(gè)范圍,因此private和protected訪問(wèn)權(quán)限修飾符對(duì)外部類沒(méi)有任何意義。外部類使用public修飾,可以被當(dāng)前項(xiàng)目下的所有類使用,使用默認(rèn)修飾符的外部類只能被同一個(gè)包中的其他類使用。如果一個(gè)Java源文件里定義的所有類都沒(méi)有使用public修飾,則這個(gè)Java源文件的文件名可以是一切合法的文件名;但如果一個(gè)Java源文件里定義了一個(gè)public修飾的類,則這個(gè)源文件的文件名必須與public修飾的類同名。七、單例類在大部分時(shí)候,我們把類的構(gòu)造方法都定義成public訪問(wèn)權(quán)限,允許任何類自由創(chuàng)建該類的對(duì)象。但在某些時(shí)候,允許其他類自由創(chuàng)建該類的對(duì)象沒(méi)有任何意義,還可能造成系統(tǒng)性能下降。例如,系統(tǒng)可能只有一個(gè)窗口管理器、一個(gè)假脫機(jī)打印設(shè)備或一個(gè)數(shù)據(jù)庫(kù)引擎訪問(wèn)點(diǎn),此時(shí)如果在系統(tǒng)中為這些類創(chuàng)建多個(gè)對(duì)象就沒(méi)有太大的實(shí)際意義。如果一個(gè)類始終只能創(chuàng)建一個(gè)實(shí)例,則這個(gè)類被稱為單例類。在一些特殊場(chǎng)景下,要求不允許自由創(chuàng)建該類的對(duì)象,而只允許為該類創(chuàng)建一個(gè)對(duì)象。為了避免其他類自由創(chuàng)建該類的對(duì)象,我們可以把該類的構(gòu)造方法使用private修飾,從而把該類的所有構(gòu)造方法隱蔽起來(lái)。根據(jù)良好封裝的原則:一旦把該類的構(gòu)造方法隱蔽起來(lái),就需要提供一個(gè)public方法作為該類的訪問(wèn)點(diǎn),用于創(chuàng)建該類的對(duì)象,且該方法必須使用static修飾(因?yàn)檎{(diào)用該方法之前還不存在對(duì)象,因此調(diào)用該方法的不可能是對(duì)象,只能是類)。除此之外,該類還必須緩存以經(jīng)創(chuàng)建的對(duì)象,否則該類無(wú)法知道是否曾經(jīng)創(chuàng)建過(guò)對(duì)象,也就無(wú)法保證只創(chuàng)建一個(gè)對(duì)象。為此該類需要使用一個(gè)成員變量來(lái)保存曾經(jīng)創(chuàng)建的對(duì)象,因此該成員變量需要被靜態(tài)方法訪問(wèn),故該成員變量必須使用static修飾。()板書(shū)()實(shí)物展示()投影片(√)電子教案(√)項(xiàng)目展示課后小結(jié)實(shí)訓(xùn)、作業(yè)備注面向?qū)ο蟪绦蛟O(shè)計(jì)教案章節(jié)及名稱項(xiàng)目6了解Java常用類學(xué)時(shí)8教學(xué)目的與要求1.知識(shí)目標(biāo):1)掌握基本類型的封裝類的使用2)掌握Object類的使用3)掌握字符串類的使用4)掌握Scanner、Math和日期類的使用5)理解格式化處理的應(yīng)用2.能力目標(biāo):1)能實(shí)現(xiàn)字符串?dāng)?shù)據(jù)和數(shù)字型數(shù)據(jù)之間的相互轉(zhuǎn)換。2)能完成數(shù)據(jù)之間的比較。3)能靈活運(yùn)用字符串類的相應(yīng)方法完成相應(yīng)的業(yè)務(wù)邏輯功能。4)能靈活運(yùn)用掃描器類、數(shù)學(xué)類和日期類完成相應(yīng)的業(yè)務(wù)邏輯功能。5)能實(shí)現(xiàn)日常生活中的數(shù)據(jù)格式化處理。教學(xué)重點(diǎn)與難點(diǎn)重點(diǎn):1、基本類型的封裝類2、Object類的使用3、字符串類的定義和使用難點(diǎn):1、字符串類的定義和使用2、Scanner類的使用3、Date類和Calendar類的使用教學(xué)方法與手段1.方法:項(xiàng)目制教學(xué)、案例式教學(xué)、啟發(fā)式教學(xué)、實(shí)踐型教學(xué)。2.教具:多媒體教室,教學(xué)做一體化教學(xué)多媒體教室,教學(xué)做一體化教學(xué)教學(xué)內(nèi)容提要與時(shí)間分配內(nèi)容提要輔助手段【課程導(dǎo)入】(時(shí)間5分鐘)問(wèn)題:數(shù)據(jù)類型直接的轉(zhuǎn)換.【任務(wù)描述】本節(jié)主要是掌握利用JavaAPI查閱Java常用類,并能使用相應(yīng)方法完成一定的邏輯功能,其中包括基本類型的封裝類及其相互轉(zhuǎn)換,所有類的父類Object類,最常用的字符串類、日期類、數(shù)學(xué)類和掃描器類,及其日常生活中的常用格式化處理。通過(guò)該項(xiàng)目的學(xué)習(xí),能利用JavaAPI查閱項(xiàng)目開(kāi)發(fā)中遇到的陌生類,并通過(guò)這種學(xué)習(xí)完成項(xiàng)目開(kāi)發(fā)任務(wù)。【講授內(nèi)容】一、基本類型的封裝類Java為其8個(gè)基本數(shù)據(jù)類型提供了對(duì)應(yīng)的封裝類,通過(guò)這些封裝類可以把8個(gè)基本類型的值封裝成對(duì)象進(jìn)行使用。從JDK1.5之后,Java提供了自動(dòng)裝箱(Autoboxing)和自動(dòng)拆箱(AutoUnboxing)功能,因此,基本類型變量和封裝類之間可以直接賦值,例如:Integerobj=10;intb=obj;自動(dòng)裝箱和自動(dòng)拆箱大大簡(jiǎn)化了基本數(shù)據(jù)類型和封裝類之間的轉(zhuǎn)換過(guò)程,但進(jìn)行自動(dòng)裝箱和拆箱操作時(shí),必須注意類型匹配,例如Integer只能和int匹配,不能跟boolean或char等其他類型匹配。除此之外,封裝類還可以實(shí)現(xiàn)基本類型變量和字符串之間的轉(zhuǎn)換:1、將字符串的值轉(zhuǎn)換為基本類型的值有兩種方式:●直接利用封裝類的構(gòu)造方法,即Xxx(Strings)構(gòu)造方法●調(diào)用封裝類提供的parseXxx(Strings)靜態(tài)方法2、將基本類型的值轉(zhuǎn)換成字符串有三種方式:●直接使用一個(gè)空字符串來(lái)連接數(shù)值即可?!裾{(diào)用封裝類提供的toString()靜態(tài)方法?!裾{(diào)用String類提供的valueOf()靜態(tài)方法。二、Object類Java基礎(chǔ)類庫(kù)提供了一些常用的核心類,包括Object、String、Math等。其中,Object對(duì)象類定義在java.lang包中,是所有類的頂級(jí)父類。1、equals()方法兩個(gè)基本類型的變量比較是否相等時(shí)直接使用“==”運(yùn)算符即可,但兩個(gè)引用類型的對(duì)象比較是否相等時(shí)則有兩種方式:使用“==”運(yùn)算符或使用equals()方法。在比較兩個(gè)對(duì)象是否相等時(shí),“==”運(yùn)算符和equals()方法是有區(qū)別的:●“==”運(yùn)算符比較的是兩個(gè)對(duì)象地址是否相同,即引用的是同一個(gè)對(duì)象。●equals()方法通??梢杂糜诒容^兩個(gè)對(duì)象的內(nèi)容是否相同。2、toString()方法Object類的toString()方法是一個(gè)非常特殊的方法,它是一個(gè)“自我描述”的方法,該方法返回當(dāng)前對(duì)象的字符串表示。當(dāng)使用System.out.println(obj)輸出語(yǔ)句直接打印對(duì)象時(shí),或字符串與對(duì)象進(jìn)行連接操作時(shí),例如:"info"+obj,系統(tǒng)都會(huì)自動(dòng)調(diào)用對(duì)象的toString()方法。Object類中的toString()方法返回包含類名和散列碼的字符串,具體格式如下:類名@哈希代碼值三、字符串類字符串就是用雙引號(hào)引起來(lái)的一連串的字符序列,Ja

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論