版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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í)踐課題寫作考核方式(√)考試()考查教學(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ú)立思考、分析問題,能夠利用計(jì)算機(jī)編程解決實(shí)際問題的能力;并且培養(yǎng)學(xué)生具有一定的項(xiàng)目開發(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月參考書1.作者及書名《Java8基礎(chǔ)應(yīng)用與開發(fā)》QST青軟實(shí)訓(xùn)出版社及出版時(shí)間清華大學(xué)出版社2015.72.作者及書名《Java程序設(shè)計(jì)》張化祥出版社及出版時(shí)間清華大學(xué)出版社2010.103.作者及書名《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開發(fā)環(huán)境和集成開發(fā)工具的安裝和配置。3).熟悉Java語言的編寫規(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集成開發(fā)環(huán)境。3).能夠創(chuàng)建Java項(xiàng)目和類,并能夠編寫簡(jiǎn)單代碼,進(jìn)行調(diào)試和運(yùn)行。教學(xué)重點(diǎn)與難點(diǎn)重點(diǎn):1.Eclipse的下載與安裝2.Java編寫規(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分鐘)問題:Java的由來?【任務(wù)描述】通過HelloWorld應(yīng)用程序的解讀,從而了解Java的起源、特點(diǎn)和體系,熟悉Java語言的編寫規(guī)范,掌握J(rèn)ava開發(fā)環(huán)境和開發(fā)工具的安裝與配置,掌握J(rèn)ava應(yīng)用程序的結(jié)構(gòu)、編譯、調(diào)試和運(yùn)行的基本方法和基本步驟等?!局v授內(nèi)容】任務(wù)1認(rèn)識(shí)Java1.1Java自1995誕生,至今已經(jīng)20多年的歷史。Java的名字來源于印度尼西亞爪哇島的英文名稱。詹姆斯?高斯林(JamesGosling)也被人們親切的稱為Java之父。1.2從1995年Java誕生以來,Java先后經(jīng)歷了10多個(gè)版本的變更,當(dāng)然版權(quán)的所有者也一度由Sun變?yōu)镺racle。如表1-1所示為Java發(fā)展過程中幾個(gè)重要的里程碑。1.3Java的特點(diǎn)資源開源性、跨平臺(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)用開發(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)與編譯過的代碼聯(lián)系起來。Java字節(jié)碼的格式通用,具有跨平臺(tái)特性,但這種跨平臺(tái)建立在JVM虛擬機(jī)的基礎(chǔ)之上,只有通過JVM處理后才可以將字節(jié)碼轉(zhuǎn)換為特定機(jī)器上的機(jī)器碼,然后在特定的機(jī)器上運(yùn)行。任務(wù)2安裝配置開發(fā)環(huán)境2.1JDK簡(jiǎn)介JDK包含一批用于Java開發(fā)的組件,其中包括以下幾部分:●Java開發(fā)工具。這些開發(fā)工具都是可執(zhí)行程序,主要包括:javac.exe(編譯工具)、java.exe(運(yùn)行工具)、javadoc.exe(生成JavaDoc文檔的工具)和jar.exe(打包工具)等?!馢ava運(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中非常重要的目錄,它包含大量開發(fā)當(dāng)中的常用工具程序,如編譯器、解釋器、打包工具、代碼轉(zhuǎn)換器和相關(guān)調(diào)試工具等。●jre:運(yùn)行環(huán)境目錄。JDK自己附帶的Java運(yùn)行環(huán)境。●lib:類庫(kù)所在目錄。包含了開發(fā)所需要的類庫(kù)(即JavaAPI)和支持文件。●db:附帶數(shù)據(jù)庫(kù)目錄。在JDK6.0以上的版本中附帶ApacheDerby數(shù)據(jù)庫(kù),這是一個(gè)Java編寫的數(shù)據(jù)庫(kù),支持JDBC4.0?!駃nclude:包含本地代碼的C頭文件的目錄。用于支持java本地接口和Java虛擬機(jī)調(diào)試程序接口的本地代碼編譯?!駍rc.zip:源代碼壓縮文件。Java提供的API都可以通過此文件查看其源代碼是如何實(shí)現(xiàn)的。在JDK的bin目錄下,提供了大量的開發(fā)工具程序,以下是幾個(gè)常用的工具:●javac:Java語言編譯器??梢詫ava源文件編譯成與平臺(tái)無關(guān)的字節(jié)碼文件(.class文件)?!駄ava:Java字節(jié)碼解釋器。將字節(jié)碼文件在不同的平臺(tái)中解釋執(zhí)行?!駄avap:Java字節(jié)碼分解程序??梢圆榭碕ava程序的變量以及方法等信息。●javadoc:文檔生成器??梢詫⒋a中的文檔注釋生成HTML格式的JavaAPI文檔?!駄avah:JNI編程工具。用于從Java類調(diào)用C++代碼?!馻ppletviewer:小應(yīng)用程序?yàn)g覽工具,用于測(cè)試并運(yùn)行Java小應(yīng)用程序?!駄ar:打包工具。在JavaSE中壓縮包的擴(kuò)展名為.jar。2.4Eclipse簡(jiǎn)介Eclipse是一個(gè)開放源代碼、可擴(kuò)展的、跨平臺(tái)的集成開發(fā)環(huán)境。Eclipse最初主要用來進(jìn)行Java語言開發(fā),如今也是一些開發(fā)人員通過插件使其作為其他語言如C++和PHP的開發(fā)工具。Eclipse本身只是一個(gè)框架平臺(tái),眾多插件的支持使得Eclipse具有更高的靈活性,這也是其他功能相對(duì)固定的IDE工具很難做到的。2.5Eclipse下載及安裝2.6Eclipse基本操作()板書()實(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í)符的正確定義,明確常見的關(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分鐘)問題:編寫的四則計(jì)算器程序?!救蝿?wù)描述】通過簡(jiǎn)單計(jì)算器的編寫,從而理解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中使用多種字符作為分隔符,用于輔助程序編寫、閱讀和理解。這些分隔符可以分為兩類:●空白符:沒有確定意義,但幫助編譯器正確理解源程序,包括空格、回車、換行和制表符(Tab);●普通分隔符:擁有確定含義,常用的普通分隔符如表2-2所示。1.3標(biāo)識(shí)符在各種編程語言中,通常要為程序中處理的各種變量、常量、方法、對(duì)象和類等起個(gè)名字作為標(biāo)記,以便通過名字進(jìn)行訪問,這些名字統(tǒng)稱標(biāo)識(shí)符。Java中的標(biāo)識(shí)符由字母、數(shù)字、下劃線或美元符組成,且必須以字母、下劃線(_)或美元符($)開頭。Java中標(biāo)識(shí)符的命名規(guī)則如下:●可以包含數(shù)字,但不能以數(shù)字開頭;●除下劃線“_”和“$”符以外,不包含任何其他特殊字符,如空格;●區(qū)分大小寫,例如“abc”和“ABC”是兩個(gè)不同的標(biāo)識(shí)符;●不能使用Java關(guān)鍵字?!駱?biāo)識(shí)符可有任意長(zhǎng)度。1.4關(guān)鍵字關(guān)鍵字又叫保留字,是編程語言中事先定義的、有特別意義的標(biāo)識(shí)符。關(guān)鍵字對(duì)編譯器具有特殊的意義,用于表示一種數(shù)據(jù)類型或程序的結(jié)構(gòu)等,關(guān)鍵字不能用于變量名、方法名、類名以及包名。任務(wù)2變量和常量的定義2.1變量變量是數(shù)據(jù)的基本存儲(chǔ)形式,因Java是一種強(qiáng)類型的語言,所以每個(gè)變量都必須先聲明后再使用。變量的定義包括變量類型和變量名,其定義的基本格式如下:數(shù)據(jù)類型變量名=初始值;例如:定義整型變量inta=1;//聲明變量并賦初始值2.2常量常量是指一旦賦值之后其值不能再改變的變量。在Java語言中,使用final關(guān)鍵字來定義常量,其語法格式如下: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開始新增了對(duì)二進(jìn)制整數(shù)的支持,二進(jìn)制的整數(shù)以“0b”或“0B”開頭?!癜诉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”開頭?!袷M(jìn)制:每個(gè)數(shù)據(jù)位上的值是0,1,2,3,4,5,6,7,8,9,十進(jìn)制是生活中常用的數(shù)值表現(xiàn)形式,因此在程序中如無特殊指明,數(shù)值默認(rèn)為十進(jìn)制。●十六進(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”開頭。2.浮點(diǎn)類型浮點(diǎn)數(shù)據(jù)類型有單精度(float)和雙精度(double)兩種,主要用來存儲(chǔ)小數(shù)數(shù)值,也可以用來存儲(chǔ)范圍更大的整數(shù)。單精度浮點(diǎn)型變量使用關(guān)鍵字float來聲明,常量后面必須要有后綴f或F。例如:聲明單精度浮點(diǎn)型變量floatheight=1.78f;//聲明變量height為單精度浮點(diǎn)型,并賦初始值為1.78floatweight=56.8F;//聲明變量weight為單精度浮點(diǎn)型,并賦初始值為56.8雙精度浮點(diǎn)型變量使用關(guān)鍵字double來聲明,常量后面可以有后綴d或D,也可以省略,浮點(diǎn)類型默認(rèn)為double型。例如:聲明雙精度浮點(diǎn)型變量doublea=1.24d;doubleb=4.87D;doublec=3.14;3.字符型Java語言中字符型char是采用16位的Unicode字符集作為編碼方式,因此支持世界上各種語言的字符。char通常用于表示單個(gè)字符,字符值必須使用單引號(hào)(’)括起來。例如:charc='A';//聲明變量c為字符型,并賦初值為'A'字符型char的值有以下三種表示形式:●通過單個(gè)字符來指定字符型值,例如:'A'、'8'、'Z'等;●通過轉(zhuǎn)義字符來表示特殊字符型值,例如:'\n'、'\t'等;●直接使用Unicode值來表示字符型值,格式是‘\uXXXX’,其中XXXX代表一個(gè)十六進(jìn)制的整數(shù),例如:’\u00FF’、’\u0056’等。4.布爾類型布爾類型又稱邏輯類型,使用關(guān)鍵字boolean來聲明,只有true和false兩種值。布爾類型的默認(rèn)值是false,即如果定義一個(gè)布爾變量但沒有賦初始值,默認(rèn)的布爾變量值是false。布爾類型通常用于邏輯判斷,尤其多用在程序的流程控制中。例如:聲明一個(gè)boolean類型變量booleanmale=true;//聲明變量male為布爾類型,并賦初始值為true3.2引用數(shù)據(jù)類型引用類型變量中的值是指向內(nèi)存“堆”中的指針,即該變量所表示數(shù)據(jù)的地址。Java語言中通常有5種引用類型:●數(shù)組:具有相同數(shù)據(jù)類型的變量的集合?!耦悾╟lass):變量和方法的集合?!窠涌冢╥nterface):一系列方法的聲明,方法特征的集合?!衩杜e(enum):一種獨(dú)特的值類型,用于聲明一組命名的常數(shù)。●空類型(nulltype):空引用,即值為null的類型。3.3數(shù)據(jù)類型轉(zhuǎn)換在Java程序中,不同的基本類型的值經(jīng)常需要進(jìn)行相互轉(zhuǎn)換。Java語言提供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語言中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),用來將一個(gè)或多個(gè)操作數(shù)連接成執(zhí)行性語句,以實(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ù)在原來的基礎(chǔ)上加1,--是自減運(yùn)算符,將操作數(shù)在原來的基礎(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)是先使用原來的值,當(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ùn)算符總體來說分為兩類:按位運(yùn)算符和移位運(yùn)算符。Java語言中有4種按位運(yùn)算符,它們是按位與(&)、按位或(|)、按位非(~)和按位異或(^);移位運(yùn)算符有3種,分別是右移位(>>)、左移位(<<)和無符號(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語言中只有一個(gè)條件運(yùn)算符是“?:”,也是唯一的一個(gè)三元運(yùn)算符,其語法格式如下:表達(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í)物展示()投影片(√)電子教案(√)項(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)掌握程序控制語句的基本語法結(jié)構(gòu)2)掌握分支語句和循環(huán)語句的應(yīng)用3)理解并熟練使用程序跳轉(zhuǎn)語句2.能力目標(biāo):1)能運(yùn)用分支語句編寫分支結(jié)構(gòu)程序,并繪制相應(yīng)的程序流程圖。2)能運(yùn)用三大循環(huán)語句編寫循環(huán)結(jié)構(gòu)程序,并繪制相應(yīng)的程序流程圖。3)能運(yùn)用跳轉(zhuǎn)語句完成比較復(fù)雜的程序編寫。教學(xué)重點(diǎn)與難點(diǎn)重點(diǎn):1.掌握程序控制語句的基本語法結(jié)構(gòu)2.掌握分支語句和循環(huán)語句的應(yīng)用3.理解并熟練使用程序跳轉(zhuǎn)語句難點(diǎn):1.掌握程序控制語句的基本語法結(jié)構(gòu)2.掌握分支語句和循環(huán)語句的應(yīng)用3.理解并熟練使用程序跳轉(zhuǎn)語句教學(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分鐘)問題:猜數(shù)字游戲【任務(wù)描述】本節(jié)主要是掌握J(rèn)ava的流程控制結(jié)構(gòu),包括分支結(jié)構(gòu),循環(huán)結(jié)構(gòu)和跳轉(zhuǎn)語句。能運(yùn)用相關(guān)控制語句編寫簡(jiǎn)單的猜數(shù)字游戲程序?!局v授內(nèi)容】任務(wù)1了解語句概述Java里的語句可分為以下六類。1.方法調(diào)用語句如:System.out.println("Hello");2.表達(dá)式語句由一個(gè)表達(dá)式構(gòu)成一個(gè)語句,即表示式尾加上分號(hào)。比如賦值語句:x=23;3.復(fù)合語句可以用{}把一些語句括起來構(gòu)成復(fù)合語句,如:{z=123+x;System.out.println("Howareyou");}4.空語句一個(gè)分號(hào)也是一條語句,叫做空語句。5.控制語句控制語句分為條件分支語句、開關(guān)語句和循環(huán)語句。6.package語句和import語句package語句和import語句與類、對(duì)象有關(guān),將在以后的章節(jié)中講解。任務(wù)2掌握分支結(jié)構(gòu)應(yīng)用2.1if條件語句if條件語句是最常用的分支結(jié)構(gòu),其語法格式如下:if(條件表達(dá)式1){語句塊1}[elseif(條件表達(dá)式2){語句塊2}][elseif(條件表達(dá)式3){語句塊3}][else{語句塊n}]其中,if語句需要注意以下幾點(diǎn):●所有條件表達(dá)式的結(jié)果為布爾值(true或false);●當(dāng)“條件表達(dá)式1”為true時(shí)執(zhí)行if語句中的“語句塊1”部分;●當(dāng)“條件表達(dá)式1”為false時(shí),執(zhí)行elseif語句,繼續(xù)向下判斷條件表達(dá)式,哪個(gè)條件表達(dá)式成立,執(zhí)行相應(yīng)的語句塊;●當(dāng)所有條件表達(dá)式為false時(shí)執(zhí)行else語句中的“語句塊n”部分?!馿lseif可以有多個(gè);●[]括起來的elseif、else可以省略。根據(jù)語法規(guī)則,可以將if語句分為如下三種形式。1.if語句if語句是單條件單分支語句,即根據(jù)一個(gè)條件來控制程序執(zhí)行的流程。if語句的語法格式如下:if(條件表達(dá)式){語句塊}if語句的流程圖如圖3.2所示。在if語句中,關(guān)鍵字if后面的一對(duì)小括號(hào)()內(nèi)的條件表達(dá)式的值必須為boolean類型,當(dāng)值為true時(shí),則執(zhí)行緊跟著的語句塊,否則,結(jié)束當(dāng)前if語句的執(zhí)行。需要注意的是,在if語句中,其中的語句塊如果只有一條語句,{}可以省略不寫,但為了增強(qiáng)程序的可讀性,最好不要省略。2.if-else語句if-else語句是單條件雙分支語句,即根據(jù)一個(gè)條件來控制程序執(zhí)行的流程。if-else語句的語法格式如下:if(條件表達(dá)式){語句塊}else{語句塊}If-else語句的流程圖如圖3.3所示。在if-else語句中,關(guān)鍵字if后面小括號(hào)()內(nèi)的條件表達(dá)式的值必須為boolean類型,當(dāng)值為true時(shí),則執(zhí)行緊跟著的語句塊,否則,則執(zhí)行關(guān)鍵字else后面的語句塊,結(jié)束當(dāng)前if-else語句的執(zhí)行。3.if-elseif-else語句if-elseif-else語句是多條件分支語句,即根據(jù)多個(gè)條件來控制程序執(zhí)行的流程。if-elseif-else語句的語法格式如下:if(條件表達(dá)式){語句塊}elseif(條件表達(dá)式){語句塊}elseif(條件表達(dá)式){語句塊}//可以有多個(gè)elseif語句else{語句塊}…2.2switch開關(guān)語句switch語句的語法格式如下:switch(控制表達(dá)式){casevalue1: 語句1; break;casevalue2: 語句2; break;casevalueN: 語句N; break;[default:默認(rèn)語句;]}其中,switch語句需要注意以下幾點(diǎn):●控制表達(dá)式的數(shù)據(jù)類型只能是byte、short、char、int、String和枚舉類型;●case標(biāo)簽后的value值必須是常量,且數(shù)據(jù)類型必須與控制表達(dá)式的值保持一致;●break用于跳出switch語句,即當(dāng)執(zhí)行完一個(gè)case分支后,終止switch語句的執(zhí)行;只有在一些特殊情況下,當(dāng)多個(gè)連續(xù)的case值要執(zhí)行一組相同的操作時(shí),此時(shí)可以不用break?!馾efault語句是可選的。用在當(dāng)所有case語句都不匹配控制表達(dá)式值時(shí),默認(rèn)執(zhí)行的語句。任務(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)由四部分組成:●初始化部分。開始循環(huán)之前,需要設(shè)置循環(huán)變量的初始值。●循環(huán)條件。循環(huán)條件是一個(gè)含有循環(huán)變量的布爾表達(dá)式,循環(huán)體的執(zhí)行需要循環(huán)條件來控制,每執(zhí)行一次循環(huán)體都需要判斷該表達(dá)式的值,用于決定循環(huán)是否繼續(xù)?!裱h(huán)體。需要反復(fù)執(zhí)行的語句塊,可以是一條語句,也可以是多條語句?!竦糠?。改變循環(huán)變量值的語句。Java語言中提供的循環(huán)語句有以下三種:●for循環(huán)●while循環(huán)●do-while循環(huán)3.1for循環(huán)for循環(huán)是最常見的循環(huán)語句,其語法結(jié)構(gòu)非常簡(jiǎn)潔,一般用在知道循環(huán)次數(shù)的情況下,即固定循環(huán)。for循環(huán)的語法結(jié)構(gòu)如下:for([初始化表達(dá)式];[條件表達(dá)式];[迭代表達(dá)式]){ 循環(huán)體}其中:●初始化表達(dá)式只在循環(huán)開始之前執(zhí)行一次;●初始化表達(dá)式、條件表達(dá)式以及迭代表達(dá)式都可以省略,但分號(hào)不能省,當(dāng)三者都省略時(shí)將成為一個(gè)無限循環(huán)(死循環(huán));●在初始化表達(dá)式和迭代表達(dá)式中可以使用逗號(hào)隔開多個(gè)語句。3.2while循環(huán)while循環(huán)語句的語法格式如下:while(條件表達(dá)式){ 循環(huán)體 迭代部分}while循環(huán)語句的執(zhí)行順序是先判斷條件表達(dá)式是否為true,如果為true,則執(zhí)行循環(huán)體內(nèi)的語句,再進(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)的語法格式如下:do{ 循環(huán)體迭代部分}while(條件表達(dá)式);do-while循環(huán)的執(zhí)行順序是先執(zhí)行一次do語句塊,然后再判斷條件表達(dá)式是否為true,如果為true,則進(jìn)入下一次循環(huán);如果為false,則終止循環(huán)。任務(wù)4轉(zhuǎn)移語句4.1break語句break語句用于終止分支結(jié)構(gòu)或循環(huán)結(jié)構(gòu),其主要用在以下3種情況:●在switch語句中,用于終止case語句,跳出switch分支結(jié)構(gòu)?!裨谘h(huán)結(jié)構(gòu)中,用于終止循環(huán)語句,跳出循環(huán)結(jié)構(gòu)?!衽c標(biāo)簽語句配合使用從內(nèi)層循環(huán)或內(nèi)層程序塊中退出。4.2continue語句continue的功能與break有點(diǎn)類似,區(qū)別是continue只是忽略本次循環(huán)體剩下的語句,接著進(jìn)入到下一次循環(huán),并不會(huì)終止循環(huán);而break則是完全終止循環(huán)。4.3return語句return語句并不是專門用于結(jié)束循環(huán)的,通常是用在方法中,以便結(jié)束一個(gè)方法。return語句主要有以下兩種使用格式:●單獨(dú)一個(gè)return關(guān)鍵字?!駌eturn關(guān)鍵字后面可以跟變量、常量或表達(dá)式。例如:return0;當(dāng)含有return語句的方法被調(diào)用時(shí),執(zhí)行return語句將從當(dāng)前方法中退出,返回到調(diào)用該方法的語句處。如果執(zhí)行的return語句是第一種格式,則不返回任何值;如果是第二種格式,則返回一個(gè)值。()板書()實(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)掌握foreach遍歷數(shù)組元素4)了解二維數(shù)組的定義和基本應(yīng)用5)掌握Arrays類中常用方法的應(yīng)用2.能力目標(biāo):1)能運(yùn)用數(shù)組數(shù)據(jù)結(jié)構(gòu)來定義相同元素的集合。2)能運(yùn)用foreach結(jié)構(gòu)訪問數(shù)組元素。3)能運(yùn)用冒泡排序算法對(duì)數(shù)組元素進(jìn)行排序4)能運(yùn)用Arrays類來對(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.掌握foreach遍歷數(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分鐘)問題:簡(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í)編寫簡(jiǎn)單的投票游戲程序?!局v授內(nèi)容】任務(wù)1創(chuàng)建數(shù)組1.1數(shù)組的聲明在Java編程語言中,定義數(shù)組時(shí)并不為數(shù)組元素分配內(nèi)存。只有在初始化后才會(huì)為數(shù)組中的每一個(gè)元素分配空間,并且值得注意的是數(shù)組必須經(jīng)過初始化后才可以引用。Java語言支持兩種語法格式來定義數(shù)組: dataType[]arrayName; dataTypearrayName[];對(duì)這兩種語法格式而言,通常推薦使用第一種格式。因?yàn)榈谝环N格式不僅具有更好的語意,而且具有更好的可讀性。其中,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)初始化的語法格式如下:arrayName=newdataType[]{num1,num2,num3...};在上面的語法格式中,dataType就是數(shù)組元素的數(shù)據(jù)類型,此處的dataType必須與定義數(shù)組變量時(shí)所使用的dataType相同,也可以是定義數(shù)組時(shí)所指定的dataType的子類,并使用花括號(hào)把所有的數(shù)組元素括起來,多個(gè)元素之間用逗號(hào)隔開。2.動(dòng)態(tài)初始化動(dòng)態(tài)初始化的語法格式如下:arrayName=newdataType[length];在上面的語法中,需要指定一個(gè)數(shù)組長(zhǎng)度的length參數(shù),也就是可以容納數(shù)組元素的個(gè)數(shù)。與靜態(tài)初始化相似的是,此處的dataType必須與定義數(shù)組變量時(shí)所使用的dataType相同,或者是定義數(shù)組時(shí)所指定的dataType的子類。任務(wù)2訪問數(shù)組數(shù)組最常用的用法就是訪問數(shù)組元素,包括對(duì)數(shù)組元素進(jìn)行賦值和取出數(shù)組元素的值。訪問數(shù)組元素中某個(gè)元素的語法格式如下:arrayName[index]在上面的語法中,index表示數(shù)組的下標(biāo)索引,其取值范圍從0開始,最大值為數(shù)組的長(zhǎng)度-1。例如,array[0]表示數(shù)組array的第1個(gè)元素,array[10]表示數(shù)組array的第11個(gè)元素。數(shù)組的長(zhǎng)度可以通過“數(shù)組名.length”進(jì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就是程序員試圖訪問的數(shù)組下標(biāo)索引。下面案例示例了數(shù)組的使用。任務(wù)3冒泡排序算法冒泡排序是一種簡(jiǎn)單的排序算法。這個(gè)算法的名字由來是因?yàn)樵酱蟮脑貢?huì)經(jīng)數(shù)據(jù)交換慢慢“浮”到數(shù)列的頂端而得名,它重復(fù)訪問要排序的數(shù)列,一次比較兩個(gè)元素,如果他們的順序錯(cuò)誤就把他們交換過來。冒泡排序算法的原理如下:1.比較相鄰的元素,如果第一個(gè)比第二個(gè)大,就交換他們兩個(gè)。2.對(duì)每一對(duì)相鄰元素作同樣的工作,從開始第一對(duì)到結(jié)尾的最后一對(duì)。在這一點(diǎn),最后的元素應(yīng)該會(huì)是最大的數(shù)。3.針對(duì)所有的元素重復(fù)以上的步驟,除了最后一個(gè)。4.持續(xù)每次對(duì)越來越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對(duì)數(shù)字需要比較。任務(wù)4foreach遍歷數(shù)組foreach循環(huán)能自動(dòng)遍歷數(shù)組或集合的每個(gè)元素。foreach語句的語法結(jié)構(gòu)如下所示:for(數(shù)據(jù)類型變量名:數(shù)組名)注意,foreach語句中的數(shù)據(jù)類型必須與數(shù)組的數(shù)據(jù)類型一致。任務(wù)5二維數(shù)組如果一維數(shù)組中的每個(gè)元素還是一維數(shù)組,則這種數(shù)組就被稱為二維數(shù)組。二維數(shù)組經(jīng)常用于解決矩陣方面的問題。定義二維數(shù)組的基本語法格式如下: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)行冒泡排序,其排序的過程是通過我們自己編寫代碼實(shí)現(xiàn)的,而在Arrays類中提供了一個(gè)名為sort的方法,利用它可以直接對(duì)數(shù)組進(jìn)行排序,而不需要再編寫代碼。sort()方法在Arrays類中是重載方法,它不僅提供了對(duì)基本數(shù)據(jù)類型的支持,而且也支持對(duì)對(duì)象進(jìn)行排序。6.2數(shù)組檢索從數(shù)組中檢索指定值是否存在是一個(gè)常見操作,類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ù)元素,則無法保證找到的是哪一個(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í)物展示()投影片(√)電子教案(√)項(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分鐘)問題:面向過程與面向?qū)ο蟮膮^(qū)別?【任務(wù)描述】本節(jié)主要是掌握J(rèn)ava類和對(duì)象的創(chuàng)建和使用,包括類和對(duì)象的基本概念,類和對(duì)象的創(chuàng)建,方法的編寫、重載和調(diào)用,構(gòu)造方法的編寫和使用,訪問權(quán)限修飾符的使用。通過該項(xiàng)目的學(xué)習(xí),能運(yùn)用類和對(duì)象的基本知識(shí)完成JavaBean的創(chuàng)建和調(diào)用?!局v授內(nèi)容】一、面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想1、面向?qū)ο笫且袁F(xiàn)實(shí)生活中客觀存在的事物(即對(duì)象)來構(gòu)造軟件系統(tǒng),當(dāng)前,在軟件開發(fā)領(lǐng)域有兩種主流的開發(fā)方法:結(jié)構(gòu)化開發(fā)方法(StructureAnalysisStructureDesign,SASD)和面向?qū)ο?ObjectOriented,OO)開發(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)來表示,對(duì)象是實(shí)體的抽象,由一組表示其靜態(tài)特征的屬性和它可執(zhí)行的一組操作組成。(2)類類(class)是具有相同或相似性質(zhì)的具體事物抽象化。類是對(duì)象的模板,對(duì)象是類的具體化,是對(duì)應(yīng)類的一個(gè)具體實(shí)例。(3)消息消息是一個(gè)實(shí)例與另一個(gè)實(shí)例之間傳遞的信息,是對(duì)象之間進(jìn)行通信的一種規(guī)格說明。它一般由三部分組成:接收消息的對(duì)象的名稱;消息標(biāo)識(shí)符,也稱消息名;零個(gè)或多個(gè)參數(shù)。(4)封裝性封裝(Encapsulation)是一種信息隱蔽技術(shù)。對(duì)象的外特性:封裝使數(shù)據(jù)和加工該數(shù)據(jù)的方法封裝為一個(gè)整體,以實(shí)現(xiàn)獨(dú)立性很強(qiáng)的模塊,使得用戶只能見到對(duì)象的內(nèi)特性:保存內(nèi)部狀態(tài)的私有數(shù)據(jù)和實(shí)現(xiàn)加工能力的算法,對(duì)用戶是隱蔽的。Java語言中的訪問控制級(jí)別有以下四種。public:公共級(jí)別,對(duì)外公開。protected:受保護(hù)級(jí)別,對(duì)同一個(gè)包的類或子類公開。default:默認(rèn)級(jí)別,對(duì)同一個(gè)包中的類公開。private:私有級(jí)別,不對(duì)外公開,只在本類內(nèi)部訪問。(5)繼承性繼承(extends)指子類自動(dòng)繼承父類的屬性和方法,這是類之間的一種關(guān)系。(6)多態(tài)性多態(tài)(Polymorphism)就是方法的多種形態(tài)。二、類的聲明類(class)定義了一種新的數(shù)據(jù)類型,是具有相同特征(屬性)和共同行為(方法)的一組對(duì)象的集合。類的聲明就是定義一個(gè)類,其語法格式如下:[訪問符][修飾符]class類名{[屬性][方法]}三、對(duì)象的創(chuàng)建和使用創(chuàng)建對(duì)象需要通過關(guān)鍵new為其分配內(nèi)存空間,其語法格式如下:類名對(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ì)象之后,接下來就可以使用該對(duì)象。通過使用對(duì)象運(yùn)算符“.”,對(duì)象可以實(shí)現(xiàn)對(duì)自己的變量訪問和方法的調(diào)用。使用對(duì)象大致有以下兩個(gè)作用:△訪問對(duì)象的屬性,即對(duì)象的實(shí)例變量,格式是“對(duì)象名.屬性名”?!髟L問對(duì)象的方法,格式是“對(duì)象名.方法名()”。如果訪問權(quán)限允許,類里定義的成員變量和方法都可以通過對(duì)象來調(diào)用,例如:person.display();//調(diào)用對(duì)象的方法四、對(duì)象數(shù)組對(duì)象數(shù)組就是一個(gè)數(shù)組中的所有元素都是對(duì)象。聲明對(duì)象數(shù)組與普通基本數(shù)據(jù)類型的數(shù)組格式一樣,具體格式如下:類名[]數(shù)組名=new類名[數(shù)組長(zhǎng)度];下面語句示例了創(chuàng)建一個(gè)長(zhǎng)度為5的Person類的對(duì)象數(shù)組:Person[]arrayPerson=newPerson[5];上面的語句也可以分成兩行,等價(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í)無須指明對(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語言中的任何數(shù)據(jù)類型,包括簡(jiǎn)單類型和引用類型。成員變量和局部變量的區(qū)別如下:●成員變量可以定義在整個(gè)類體中的任意位置,其有效性與它在類體中書寫的先后位置無關(guān),它的作用域是整個(gè)類;局部變量的作用域從定義它的位置開始,直到定義它的語句塊結(jié)束。●成員變量和局部變量可以重名,成員方法中訪問重名的局部變量時(shí),成員變量被隱藏。如果想在成員方法中訪問重名的成員變量,需要在前面加關(guān)鍵字this?!癯蓡T變量有默認(rèn)值,但局部變量沒有默認(rèn)值。因此,在使用局部變量之前,必須保證局部變量有具體的值。六、方法的聲明類體中定義的方法分為實(shí)例成員方法、類成員方法(靜態(tài)成員方法)和構(gòu)造方法。方法是類的行為的體現(xiàn),定義方法的語法格式如下所示:[訪問符][修飾符]<返回值類型>方法名([參數(shù)列表]){//方法體}其中:△訪問符用于指明方法的訪問權(quán)限,可以是public(公共的)、protected(受保護(hù)的)、private(私有的)或默認(rèn)的?!餍揎椃糜谥该魉x的方法的特性,可以是abstract(抽象的)、static(靜態(tài)的)、final(最終的)或默認(rèn)的,這些修飾符在定義類方法不是必需的,需要根據(jù)方法的特性進(jìn)行使用。△返回值類型是該方法運(yùn)行后返回值的數(shù)據(jù)類型,如果一個(gè)方法沒有返回值,則該方法的返回類型為void?!鞣椒侵杆x方法的名字,方法名的命名與變量名一樣必須符合命名規(guī)則,Java中的方法名通常由一個(gè)或多個(gè)有意義的單詞連綴而成,第一個(gè)單詞的首字母小寫,其他單詞的首字母大寫,其他字母小寫?!鲄?shù)列表是方法運(yùn)行所需要特定類型的參數(shù)。△方法體是大括號(hào)括起來的部分,用于完成方法功能的實(shí)現(xiàn)。七、方法的參數(shù)傳遞機(jī)制方法的參數(shù)列表可以帶參數(shù),也可以不帶參數(shù),是否帶參數(shù)根據(jù)定義方法的具體情況而定,通過參數(shù)可以給方法傳遞數(shù)據(jù),例如:publicvoidsetAge(intage){ this.age=age;}根據(jù)參數(shù)的使用場(chǎng)合,可以將參數(shù)分為“形參”和“實(shí)參”兩種:形參是聲明方法時(shí)給方法定義的形式上的參數(shù),此時(shí)形參沒有具體的數(shù)值,形參前必須有數(shù)據(jù)類型,其格式是“方法名(數(shù)據(jù)類型形參)”;實(shí)參是調(diào)用方法時(shí)程序給方法傳遞的實(shí)際數(shù)據(jù),實(shí)參前面沒有數(shù)據(jù)類型,其使用格式是“對(duì)象名.方法名(實(shí)參)”。形參本身沒有具體的數(shù)值,需要實(shí)參將實(shí)際的數(shù)值傳遞給它之后才具有數(shù)值。實(shí)參和形參之間傳遞數(shù)值的方式有兩種:值傳遞和引用傳遞。1.值傳遞值傳遞是將實(shí)參的值傳遞給形參,被調(diào)方法為形參創(chuàng)建一份新的內(nèi)存拷貝來存儲(chǔ)實(shí)參傳遞過來的值,然后再對(duì)形參進(jìn)行數(shù)值操作。值傳遞時(shí),實(shí)參和形參在內(nèi)存中占不同的空間,當(dāng)實(shí)參的值傳遞給形參后,兩者之間將互不影響,因此形參值的改變不會(huì)影響原來實(shí)參的值。在Java中,當(dāng)參數(shù)的數(shù)據(jù)類型是基本數(shù)據(jù)類型時(shí),實(shí)參和形參之間是按值傳遞的。2.引用傳遞引用傳遞時(shí)將實(shí)參的地址傳遞給形參,被調(diào)方法通過傳遞的地址獲取其指向的內(nè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)訪問權(quán)限符一般是public,也可以是其他訪問符。(2)沒有返回值,也不能有void修飾符。(3)方法名稱必須和類名相同。(4)如果沒有定義構(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)造方法可以重載,通過構(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)造方法定義的語法結(jié)構(gòu)如下所示。[訪問符]構(gòu)造方法名([參數(shù)列表]){//初始化語句}九、方法的重載在Java語言程序中,如果同一個(gè)類中包含了兩個(gè)或兩個(gè)以上方法的方法名相同,但參數(shù)列表不同,則被稱為方法重載,方法的重載也是多態(tài)的一種。對(duì)于重載的方法,編譯器是根據(jù)方法的參數(shù)來進(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í)物展示()投影片(√)電子教案(√)項(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)掌握訪問控制修飾符的使用4)了解包的聲明和使用5)了解單例類的概念2.能力目標(biāo):1)掌握this和static關(guān)鍵字的使用2)掌握可變參數(shù)的使用3)掌握訪問控制修飾符的使用4)了解包的聲明和使用5)了解單例類的概念教學(xué)重點(diǎn)與難點(diǎn)重點(diǎn):1、this和static關(guān)鍵字的使用2、訪問控制修飾符的使用3、包的聲明和使用難點(diǎn):1、this和static關(guān)鍵字的使用2、訪問控制修飾符的使用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分鐘)問題:如何實(shí)現(xiàn)項(xiàng)目中多模塊之間的訪問?【任務(wù)描述】本節(jié)主要是掌握J(rèn)ava類和對(duì)象的創(chuàng)建和使用,包括類和對(duì)象的基本概念,類和對(duì)象的創(chuàng)建,方法的編寫、重載和調(diào)用,構(gòu)造方法的編寫和使用,訪問權(quán)限修飾符的使用。通過該項(xiàng)目的學(xué)習(xí),能運(yùn)用類和對(duì)象的基本知識(shí)完成JavaBean的創(chuàng)建和調(diào)用?!局v授內(nèi)容】一、static關(guān)鍵字的使用static用來修飾類的成員變量和成員方法,同時(shí)與可以修飾代碼塊,表示靜態(tài)的代碼塊。靜態(tài)的成員變量和成員方法獨(dú)立于類的對(duì)象,被類的所有實(shí)例共享。因此可不生成類的任何對(duì)象,直接通過類實(shí)現(xiàn)對(duì)靜態(tài)成員的訪問。當(dāng)類加載后,Java虛擬機(jī)能根據(jù)類名在運(yùn)行時(shí)數(shù)據(jù)區(qū)的方法區(qū)內(nèi)找到它們。訪問類的靜態(tài)變量和靜態(tài)方法時(shí),可以直接通過類名訪問,語法格式如下:類名.靜態(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í),它可以直接訪問類的靜態(tài)變量,調(diào)用類的靜態(tài)方法,但不能直接訪問類的非靜態(tài)變量和調(diào)用類的非靜態(tài)方法,只能通過生成類的對(duì)象,并通過該對(duì)象訪問相應(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語言中一個(gè)非常重要的關(guān)鍵字,用來表示當(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ù)列表)的方式,來調(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)(…)即可,其具體語法格式如下:[訪問符][修飾符]<返回值類型>方法名([參數(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ī)制,提供了類的多層命名空間,解決類的命名沖突、類文件管理等問題。包可以對(duì)類進(jìn)行組織和管理,使其與其他源代碼庫(kù)中的類分隔開,只需保證同一個(gè)包中不存在同名的類即可,以確保類名的唯一性,避免類名的重復(fù)。借助于包可以將自己定義的類與其他類庫(kù)中的類分開管理。Java的基礎(chǔ)類庫(kù)就是使用包進(jìn)行管理的,例如,java.lang包、java.util包等。在不同的包中,類名可以相同,例如,java.util.Date類和java.sql.Date類,這兩個(gè)類的類名都是Date,但分別屬于java.util包和java.sql包,因此能夠同時(shí)存在。2、包的聲明定義包的語法格式如下:package包名;使用package關(guān)鍵字可以指定類所屬的包,定義包需要注意以下幾點(diǎn):△package語句必須作為Java源文件的第一條非注釋性語句?!饕粋€(gè)Java源文件只能指定一個(gè)包,即只有一條package語句,不能有多條package語句?!鞫x包以后,Java源文件中可以定義多個(gè)類,這些類將全部位于該包下?!鞫鄠€(gè)Java源文件可以定義相同的包,這些源文件將全部位于該包下。下述代碼示例了包的定義packagecom;上述語句聲明了一個(gè)名為com的包。在物理上,Java使用文件夾目錄來組織包,任何聲明了“packagecom”的類,編譯后形成的字節(jié)碼文件(.class)都被存儲(chǔ)在一個(gè)com目錄中。與文件目錄一樣,包與可以分成多級(jí),多級(jí)的包名之間使用“.”進(jìn)行分隔。例如:packagecom.zdsoft.wlw;上述語句在物理上的表現(xiàn)形式將是嵌套的文件目錄,即“com\zdsoft\wlw”目錄,所有聲明了“packagecom.zdsoft.wlw”的類,其編譯結(jié)果都被存儲(chǔ)在wlw子目錄下。3、包的導(dǎo)入Java中一個(gè)類可以訪問其所在包中的其他所有的類,但是如果需要訪問其他包中的類,則可以使用import語句導(dǎo)入包。Java中導(dǎo)入包的語法格式如下:import包名.*;//導(dǎo)入指定包中所有的類或import包名.類名;//導(dǎo)入指定包中指定的類注意,*指明導(dǎo)入當(dāng)前包中的所有類,但不能使用“java.*”或“java.*.*”這種語句來導(dǎo)入以java為前綴的所有包的所有類。一個(gè)Java源文件只能有一條package語句,但可以有多條import語句,且package語句必須在import語句之前。導(dǎo)入包以后,可以在代碼中直接訪問包中的相關(guān)類。當(dāng)然,也可以不使用import語句倒入相應(yīng)的包,只需在使用的類名前直接添加完整的包名即可。例如:java.util.DatenewDate=newjava.util.Date();當(dāng)程序中導(dǎo)入兩個(gè)或多個(gè)包中同名的類后,如果直接使用類名,編譯器將無法區(qū)分,此時(shí)就可以使用上述方式,在類名前面加上完全限定的包名。4、Java常用包的概述Java的核心類都放在java這個(gè)包及其子包下,Java擴(kuò)展的許多類都放在javax包及其子包下。這些使用類就是應(yīng)用程序接口。下面幾個(gè)包是Java語言中的常用包。△java.lang:這個(gè)包下包含了Java語言的核心類,如String、Math、System和Thread類等,使用這個(gè)包下的類無須使用import語句導(dǎo)入,系統(tǒng)會(huì)自動(dòng)導(dǎo)入這個(gè)包下的所有類?!鱦ava.util:這個(gè)包下包含了Java的大量工具類/接口和集合框架類/接口,例如Arrays、List和Set等?!鱦ava.net:這個(gè)包下包含了一些Java網(wǎng)絡(luò)編程相關(guān)的類/接口?!鱦ava.io:這個(gè)包下包含了一些Java輸入/輸出編程相關(guān)的類/接口?!鱦ava.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)程序。△java.swing:這個(gè)包下包含了Swing圖形用戶界面編程的相關(guān)類/接口,這些類可用于構(gòu)建平臺(tái)無關(guān)的GUI程序。五、垃圾回收機(jī)制Java語言中很多對(duì)象的數(shù)據(jù)(成員變量)都存放在堆中,對(duì)象從中分配空間,Java虛擬機(jī)的堆中存儲(chǔ)著正在運(yùn)行的應(yīng)用程序所建立的所有對(duì)象,這些對(duì)象通過new等關(guān)鍵字建立,但是它們不需要程序代碼來顯示地釋放。一般來說,堆中的無用對(duì)象是由垃圾回收器來負(fù)責(zé)的,盡管Java虛擬機(jī)規(guī)范并不要求特殊的垃圾回收技術(shù),甚至根本就不需要垃圾回收,但是由于內(nèi)存的有限性,虛擬機(jī)在實(shí)現(xiàn)的時(shí)候都有一個(gè)由垃圾回收器管理的堆。垃圾回收是一種動(dòng)態(tài)存儲(chǔ)管理技術(shù),它自動(dòng)地釋放不再被程序引用的對(duì)象,按照特定的垃圾收集算法來實(shí)現(xiàn)資源自動(dòng)回收的功能。當(dāng)一個(gè)對(duì)象不再被引用時(shí),垃圾收集器會(huì)在適當(dāng)?shù)臅r(shí)候?qū)⑵滗N毀,適當(dāng)?shù)臅r(shí)候,即意味著無法預(yù)知何時(shí)垃圾收集器會(huì)進(jìn)行工作。當(dāng)對(duì)象被回收的時(shí)候,finalize()方法會(huì)被虛擬機(jī)自動(dòng)調(diào)用,如果重寫了finalize()方法,這個(gè)方法也會(huì)被自動(dòng)執(zhí)行。一般用戶不自行調(diào)用finalize()方法。六、訪問權(quán)限修飾符面向?qū)ο蟮姆诸愋孕枰玫椒庋b,為了實(shí)現(xiàn)良好的封裝,需要從以下兩個(gè)方面考慮:△將對(duì)象的成員變量和實(shí)現(xiàn)細(xì)節(jié)隱藏起來,不允許外部直接訪問;△把方法暴露出來,讓方法對(duì)成員變量進(jìn)行安全訪問和操作。因此,封裝實(shí)際上把該隱藏的隱藏,該暴露的暴露,這些都需要通過Java訪問權(quán)限修飾符來實(shí)現(xiàn)。Java的訪問權(quán)限修飾符對(duì)類、屬性和方法進(jìn)行聲明和控制,以便隱藏類的一些實(shí)際細(xì)節(jié),防止對(duì)封裝數(shù)據(jù)未經(jīng)授權(quán)的訪問和不合理的操作。實(shí)現(xiàn)封裝的關(guān)鍵是不讓外界直接與對(duì)象屬性交互,而是要通過指定的方法操作對(duì)象的屬性。Java提供了四個(gè)訪問權(quán)限修飾符,分別是private(私有的)、protected(受保護(hù)的)、public(公共的)和默認(rèn)的。其中,默認(rèn)訪問符又稱友好的(friendly),而friendly不是關(guān)鍵字,它只是一種默認(rèn)訪問權(quán)限修飾符的稱謂而以。這四個(gè)訪問權(quán)限修飾符級(jí)別的詳細(xì)介紹如下?!鱬rivate(當(dāng)前類訪問權(quán)限):如果類中的一個(gè)成員(包括屬性、成員方法和構(gòu)造方法等)使用private訪問權(quán)限修飾符來修飾,則這個(gè)成員只能在當(dāng)前類的內(nèi)部被訪問。很顯然,這個(gè)訪問權(quán)限修飾符用來修飾屬性最合適,使用它來修飾屬性就可以把屬性隱藏在該類的內(nèi)部?!髂J(rèn)的(包訪問權(quán)限):如果類中的一個(gè)成員(包括屬性、成員方法和構(gòu)造方法等)或者一個(gè)外部類不使用任何訪問權(quán)限修飾符,我們稱它是包訪問權(quán)限,默認(rèn)修飾符控制的成員和外部類可以被相同包下的其他類訪問。△protected(子類訪問權(quán)限):如果類中的一個(gè)成員(包括屬性、成員方法和構(gòu)造方法等)使用protected訪問權(quán)限修飾符來修飾,那么這個(gè)成員既可以被同一個(gè)包中的其他類訪問,也可以被不同包中的子類訪問。在通常情況下,如果使用protected來修飾一個(gè)方法,是希望其子類來重寫這個(gè)方法。△public(公共訪問權(quán)限):這是一個(gè)最寬松的訪問控制級(jí)別,如果類中的一個(gè)成員(包括屬性、成員方法和構(gòu)造方法等)或者一個(gè)外部類使用public訪問權(quán)限修飾符,那么這個(gè)成員或者外部類就可以被所有類訪問,不管訪問類和被訪問類是否處于同一個(gè)包中,是否具有父子繼承關(guān)系。對(duì)于外部類而言,只能有兩種訪問權(quán)限修飾符:public和默認(rèn)的,外部類不能使用private和protected來修飾,因?yàn)橥獠款悰]有處于任何類的內(nèi)部,也就沒有其所在類的內(nèi)部、所在類的子類兩個(gè)范圍,因此private和protected訪問權(quán)限修飾符對(duì)外部類沒有任何意義。外部類使用public修飾,可以被當(dāng)前項(xiàng)目下的所有類使用,使用默認(rèn)修飾符的外部類只能被同一個(gè)包中的其他類使用。如果一個(gè)Java源文件里定義的所有類都沒有使用public修飾,則這個(gè)Java源文件的文件名可以是一切合法的文件名;但如果一個(gè)Java源文件里定義了一個(gè)public修飾的類,則這個(gè)源文件的文件名必須與public修飾的類同名。七、單例類在大部分時(shí)候,我們把類的構(gòu)造方法都定義成public訪問權(quán)限,允許任何類自由創(chuàng)建該類的對(duì)象。但在某些時(shí)候,允許其他類自由創(chuàng)建該類的對(duì)象沒有任何意義,還可能造成系統(tǒng)性能下降。例如,系統(tǒng)可能只有一個(gè)窗口管理器、一個(gè)假脫機(jī)打印設(shè)備或一個(gè)數(shù)據(jù)庫(kù)引擎訪問點(diǎn),此時(shí)如果在系統(tǒng)中為這些類創(chuàng)建多個(gè)對(duì)象就沒有太大的實(shí)際意義。如果一個(gè)類始終只能創(chuàng)建一個(gè)實(shí)例,則這個(gè)類被稱為單例類。在一些特殊場(chǎng)景下,要求不允許自由創(chuàng)建該類的對(duì)象,而只允許為該類創(chuàng)建一個(gè)對(duì)象。為了避免其他類自由創(chuàng)建該類的對(duì)象,我們可以把該類的構(gòu)造方法使用private修飾,從而把該類的所有構(gòu)造方法隱蔽起來。根據(jù)良好封裝的原則:一旦把該類的構(gòu)造方法隱蔽起來,就需要提供一個(gè)public方法作為該類的訪問點(diǎn),用于創(chuàng)建該類的對(duì)象,且該方法必須使用static修飾(因?yàn)檎{(diào)用該方法之前還不存在對(duì)象,因此調(diào)用該方法的不可能是對(duì)象,只能是類)。除此之外,該類還必須緩存以經(jīng)創(chuàng)建的對(duì)象,否則該類無法知道是否曾經(jīng)創(chuàng)建過對(duì)象,也就無法保證只創(chuàng)建一個(gè)對(duì)象。為此該類需要使用一個(gè)成員變量來保存曾經(jīng)創(chuàng)建的對(duì)象,因此該成員變量需要被靜態(tài)方法訪問,故該成員變量必須使用static修飾。()板書()實(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分鐘)問題:數(shù)據(jù)類型直接的轉(zhuǎn)換.【任務(wù)描述】本節(jié)主要是掌握利用JavaAPI查閱Java常用類,并能使用相應(yīng)方法完成一定的邏輯功能,其中包括基本類型的封裝類及其相互轉(zhuǎn)換,所有類的父類Object類,最常用的字符串類、日期類、數(shù)學(xué)類和掃描器類,及其日常生活中的常用格式化處理。通過該項(xiàng)目的學(xué)習(xí),能利用JavaAPI查閱項(xiàng)目開發(fā)中遇到的陌生類,并通過這種學(xué)習(xí)完成項(xiàng)目開發(fā)任務(wù)。【講授內(nèi)容】一、基本類型的封裝類Java為其8個(gè)基本數(shù)據(jù)類型提供了對(duì)應(yīng)的封裝類,通過這些封裝類可以把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)換過程,但進(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è)空字符串來連接數(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ì)象?!馿quals()方法通??梢杂糜诒容^兩個(gè)對(duì)象的內(nèi)容是否相同。2、toString()方法Object類的toString()方法是一個(gè)非常特殊的方法,它是一個(gè)“自我描述”的方法,該方法返回當(dāng)前對(duì)象的字符串表示。當(dāng)使用System.out.println(obj)輸出語句直接打印對(duì)象時(shí),或字符串與對(duì)象進(jìn)行連接操作時(shí),例如:"info"+obj,系統(tǒng)都會(huì)自動(dòng)調(diào)用對(duì)象的toString()方法。Object類中的toString()方法返回包含類名和散列碼的字符串,具體格式如下:類名@哈希代碼值三、字符串類字符串就是用雙引號(hào)引起來的一連串的字符序列,Ja
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 未來五年臺(tái)鉗行業(yè)直播電商戰(zhàn)略分析研究報(bào)告
- 未來五年定向羅盤及定位系統(tǒng)行業(yè)跨境出海戰(zhàn)略分析研究報(bào)告
- 麻章區(qū)2024廣東湛江麻章區(qū)農(nóng)業(yè)技術(shù)推廣中心招聘合同制工作人員1人筆試歷年參考題庫(kù)典型考點(diǎn)附帶答案詳解(3卷合一)
- 車輛銷售合同范本
- 新型焊機(jī)采購(gòu)合同范本
- 出租除銹設(shè)備合同范本
- 供電配件維修合同范本
- 商品合作押金合同范本
- 正規(guī)的飯店合同范本
- 轉(zhuǎn)讓噴淋設(shè)備合同范本
- 2025年煙花爆竹經(jīng)營(yíng)單位安全管理人員考試試題及答案
- 2025天津大學(xué)管理崗位集中招聘15人參考筆試試題及答案解析
- 2025廣東廣州黃埔區(qū)第二次招聘社區(qū)專職工作人員50人考試筆試備考題庫(kù)及答案解析
- 2025年云南省人民檢察院聘用制書記員招聘(22人)考試筆試參考題庫(kù)及答案解析
- 旋挖鉆機(jī)地基承載力驗(yàn)算2017.7
- xx鄉(xiāng)鎮(zhèn)衛(wèi)生院重癥精神病管理流程圖
- 2023年印江縣人民醫(yī)院緊缺醫(yī)學(xué)專業(yè)人才招聘考試歷年高頻考點(diǎn)試題含答案解析
- 安徽綠沃循環(huán)能源科技有限公司12000t-a鋰離子電池高值資源化回收利用項(xiàng)目(重新報(bào)批)環(huán)境影響報(bào)告書
- 《汽車電器故障問題研究4600字(論文)》
- 公路工程標(biāo)準(zhǔn)施工招標(biāo)文件第八章-工程量清單計(jì)量規(guī)則(2018年版最終稿)
- DB44-T 2197-2019配電房運(yùn)維服務(wù)規(guī)范-(高清現(xiàn)行)
評(píng)論
0/150
提交評(píng)論