版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
./西南財經(jīng)大學(xué)天府學(xué)院教案任課教師:賈硯池課程名稱:面向?qū)ο蟪绦蛟O(shè)計<Java>任課班級:13級??朴嬎銠C01班、13級??凭W(wǎng)絡(luò)01班、13級??栖浖?1班
授課時間:2013-2014-2學(xué)期西南財經(jīng)大學(xué)天府學(xué)院教務(wù)處制教案編號:1章節(jié)JavaSE程序設(shè)計與實踐的考核方式和Java簡介授課方式講授+討論+上機教學(xué)目的掌握本課程的考核方式、即將要學(xué)習(xí)的內(nèi)容以及相關(guān)的課堂紀(jì)律.了解課程整體目標(biāo).了解Java語言.了解Java程序的類型.理解Java虛擬機〔JVM.掌握Java程序運行環(huán)境的配置,能夠獨立完成.培養(yǎng)學(xué)生實際動手能力<自主安裝JDK以及配置環(huán)境變量>.培養(yǎng)學(xué)生自主解決問題的能力.教學(xué)重點環(huán)境變量的配置和編譯源文件以及Java程序打包.教學(xué)難點環(huán)境變量的配置和編譯源文件以及Java程序打包.時間分配教學(xué)過程Min105155101015253060考核方式<講授>考核分為兩部分:第一部分:平時,占60%;其中,考勤:10%;平時作業(yè)或項目:40%,包括2次大型的作業(yè)任務(wù),每次任務(wù)各占15%,2次及以上小型作業(yè)任務(wù),占10%.根據(jù)項完成的程度和質(zhì)量,由老師評分,未交者得零分;平時表現(xiàn)分:10%,包括課堂紀(jì)律、上課積極的參與討論、主動回答問題及上臺演示和講解程序的編寫、小組作業(yè)時候的團隊協(xié)作能力<由組長評分>.第二部分:期末項目,占40%;一次大型項目,由小組完成.曠課3次取消考試資格,遲到3次算一次曠課.每遲到一次扣1分,曠課一次扣5分,期末全勤可加2分.課堂內(nèi)看視頻、玩游戲,第一次扣5分,第二次扣10分,第三次扣20分,如果超過4次者,直接取消該科的考試資格.課堂紀(jì)律<講授>上課不準(zhǔn)吃零食、嗑瓜子等.下課后帶走自己桌上的垃圾,讓課桌上保持整潔.下課后關(guān)電腦<主機和顯示器>.上課不準(zhǔn)大聲喧嘩、玩手機、pad、睡覺等與學(xué)習(xí)無關(guān)的事情.教師信息及答疑時間設(shè)定<講授>學(xué)習(xí)小組的成立以及成員之間討論<討論>自由分組,每個組4-6人,并選定組長,然后為每個組安排好上機位置<小組成員必須坐在一起>,以后就固定座位.小組討論:互相認識,加深了解,了解各自的興趣和長項.選取一個同學(xué)為小組長.探討學(xué)習(xí)本課程的方法,并由小組長向老師匯報本次討論的結(jié)果.Java語言簡介Java是一種程序設(shè)計語言,由SunMicrosystem公司于1995年推出;早在1991年,Sun公司的JamesGosling等人開始開發(fā)名為Oak的程序設(shè)計語言,希望用來控制嵌入在有線電視機頂盒和PDA等設(shè)備中的微處理器;1994年,Oak語言正式更名為Java;Java語言憑借其獨有的安全性、可移植性和平臺無關(guān)性,迅速走紅.Java可以做什么?<學(xué)生查詢資料>由學(xué)生自助通過各種方式查詢資料,然后老師隨機抽取1-3名同學(xué)回答.Java虛擬機<講授>Java虛擬機〔JavaVirtualMachine是可運行Java字節(jié)碼的虛擬計算機系統(tǒng).使用Java語言編寫的程序,實際上是運行在JVM之上,而不是運行在操作系統(tǒng)上.它有一個解釋器組件,可以實現(xiàn)Java字節(jié)碼和計算機操作系統(tǒng)之間的通信.開發(fā)Java程序的步驟<講授>創(chuàng)建Java源程序Java源程序可以使用任何文本編輯器創(chuàng)建與編輯,一般用.java作為擴展名,其實就是一個使用Java語言編寫的文本文件;編譯源程序Java編譯器讀取Java源程序并翻譯成Java虛擬機能夠明白的指令集合,并以字節(jié)碼的形式保存在文件中,通常,字節(jié)碼文件以.class作為擴展名;運行class〔字節(jié)碼文件Java解釋器讀取字節(jié)碼文件,取出指令并翻譯成計算機能夠執(zhí)行的機器代碼,完成運行過程.編寫第一個Java程序<講授+演示>打開記事本,新建一個文本文件,將文件名改為Hello.java,在文件中鍵入如下內(nèi)容并保存:classHello{publicstaticvoidmain<String[]args>{System.out.println<"Helloworld!">;}}使用javac編譯器編譯源文件..class〔字節(jié)碼文件.使用java解釋器運行字節(jié)碼文件.分析程序<討論+講授>分組討論,然后由每個組輪流發(fā)言;最后由老師總結(jié).關(guān)鍵字class用來定義一個類,Hello是類的名稱;在Java程序中,所有的語句都必須放在某個類中;整個類及其所有成員都包含在一對花括號中〔即{和}之間,它們標(biāo)志著類定義塊的開始和結(jié)束.定義類的一般語法:class類名 { …… }程序必須從main函數(shù)開始執(zhí)行;關(guān)鍵字public是訪問修飾符,用來控制類成員的可見范圍及作用域;關(guān)鍵字static允許在不創(chuàng)建類的實例的情況下,調(diào)用main函數(shù);關(guān)鍵字void用來說明main函數(shù)是沒有返回值的;args是字符串?dāng)?shù)組,用來從命令行接收參數(shù);String[]是字符串類型的數(shù)組;在Java中,類名稱一般首字母大寫;使用System.out.println<>將信息輸出到控制臺上,即打印出來.上機實驗安裝JDK.進行環(huán)境變量的配置.安裝Eclipse.熟悉Eclipse開發(fā)環(huán)境.作業(yè)布置編程輸出以下信息*********************************************歡迎進入Java編程世界*********************************************課后預(yù)習(xí)Java語言基礎(chǔ)<Java的基本數(shù)據(jù)類型、操作符、關(guān)鍵字、流程控制>.課后總結(jié)所有的同學(xué)都掌握了本門課程的考核方式.通過分組學(xué)習(xí),同學(xué)之間有問題可以互相幫助,學(xué)生學(xué)習(xí)積極性很高,并且通過小組組長的匯報,一部分學(xué)習(xí)方法較好的同學(xué)的經(jīng)驗,得以在全班同學(xué)之間共同分享,效果很好.80%的同學(xué)都能夠獨立完成Java開發(fā)環(huán)境的搭建以及配置.由于前面有C語言的學(xué)習(xí)基礎(chǔ),70%以上同學(xué)對Java程序結(jié)構(gòu)的理解都不存在問題.整體來說,效果良好.教案編號:2章節(jié)Java語言基礎(chǔ)流程控制—分支語句授課方式講授+學(xué)生實驗+討論教學(xué)目的掌握Java中的變量和數(shù)據(jù)類型.掌握Java中變量的作用域規(guī)則.掌握數(shù)據(jù)類型轉(zhuǎn)換.掌握Java中的運算符和表達式.掌握選擇結(jié)構(gòu)的幾種實現(xiàn)方式;并能夠獨立的應(yīng)用它們來編寫程序.培養(yǎng)學(xué)生主動思考問題的能力.培養(yǎng)學(xué)生表達能力.培養(yǎng)學(xué)生實際動手操作能力.教學(xué)重點Java的基本數(shù)據(jù)類型、引用類型以及變量的作用域.分支語句.教學(xué)難點引用類型以及變量的作用域.分支語句.時間分配教學(xué)過程Min108090作業(yè)點評<學(xué)生闡述+老師總結(jié)>方式:由出現(xiàn)程序問題的同學(xué)講出自己出現(xiàn)的問題以及解決方式,最后由老師總結(jié).類名不規(guī)范、代碼排版不規(guī)范.public中的p出現(xiàn)大寫情況;static關(guān)鍵字丟失;main出現(xiàn)mian;String中的S未大寫;System中的s出現(xiàn)了小寫.printf以及println,print輸出格式混淆.{}不匹配或者丟失.抽查上周布置的課后作業(yè),抽查2-5個同學(xué)來闡述Java的基本數(shù)據(jù)類型、操作符、關(guān)鍵字.<學(xué)生闡述+老師講授>標(biāo)識符命名規(guī)則變量、函數(shù)、數(shù)組、對象、類和接口等等都需要命名,這些名稱統(tǒng)稱為標(biāo)識符;Java中對于標(biāo)識符的命名規(guī)則作了如下限制:只能由英文字母、數(shù)字、下劃線"_"和"$"符號組成.必須以英文字母、"_"或"$"開頭,即不能以數(shù)字開頭.除"_"和"$"以外,不能包含其它任何特殊字符.不能與關(guān)鍵字沖突.嚴(yán)格區(qū)分大小寫.Java中的關(guān)鍵字:abstract、boolean、break、byte、case、catch、char、class、continue、do、double、else、enum、extends、false、find、finally、float、for、implements、import、instanceof、int、interface、long、native、new、null、package、private、protected、public、return、short、static、super、switch、synchronized、this、throw、throws、true、try、void、while數(shù)據(jù)類型變量的作用域和生命周期變量的作用域指變量起作用的范圍,說明變量在什么部分可以被訪問;變量的生命周期是指變量在內(nèi)存中存在的周期,即什么時候分配空間,什么時候銷毀;運算符和表達式算術(shù)運算符關(guān)系運算符邏輯運算符條件運算符賦值運算符選擇結(jié)構(gòu)if語句if…else語句if…elseif語句switch…case語句學(xué)生實驗<上機+老師指導(dǎo)>輸入一個"男"或者"女",對應(yīng)輸出"M"和"F".寫程序,若星期一到星期五,則打印出"工作快樂",若星期六、星期天則輸出"周末更快樂".輸入一個分?jǐn)?shù),輸出對應(yīng)的等級:60以下E60-70D70-80C80-90B90–100A作業(yè)布置輸入三個數(shù)字,最后從小到大輸出排序.課后預(yù)習(xí)循環(huán)結(jié)構(gòu)的幾種語句以及數(shù)組的定義.課后總結(jié)通過學(xué)生自己對出現(xiàn)問題的總結(jié)和老師的總結(jié),80%以上的同學(xué)對常見問題的解決方法有了一個深刻的認識.通過三個上機程序,加深了對循環(huán)結(jié)構(gòu)的認識.但是依然有約20%的同學(xué)對if和switch的用法還不能掌握,需加強程序上機的編寫.教案編號:3章節(jié)流程控制—循環(huán)語句數(shù)組授課方式講授+上機教學(xué)目的掌握循環(huán)語句的使用.掌握數(shù)組的聲明以及運用.培養(yǎng)學(xué)生主動性和積極性.培養(yǎng)學(xué)生的邏輯思維能力.教學(xué)重點循環(huán)語句.數(shù)組、哈希表.教學(xué)難點循環(huán)語句.數(shù)組、哈希表.時間分配教學(xué)過程Min1060110作業(yè)點評<學(xué)生闡述+老師總結(jié)>方式:由3-5個同學(xué)來講述上周作業(yè)的實現(xiàn)思路,最后由老師總結(jié)出現(xiàn)的一些問題.類名不規(guī)范運算符的運用部分算法的不科學(xué)性抽查上周布置的課后作業(yè),抽查1-3個同學(xué)來闡述循環(huán)結(jié)構(gòu)的幾種語句以及數(shù)組的聲明.<學(xué)生闡述+老師講授>循環(huán)語句Whileinti=0; while<i++<3>System.out.println<i>;Do……while語句inti=1; do{System.out.println<i>;}while<i++<3>;For語句for<inti=1;i<=3;i++>System.out.println<i>;流程控制語句break:從switch語句、循環(huán)語句或標(biāo)號標(biāo)識的代碼塊中退出.以下while循環(huán)用于把1加到100:inta=1,result=0;one:while<true>{result+=a++;if<a==101>breakone;//終止循環(huán)}System.out.println<result>;//打印5050continue:跳過本次循環(huán),執(zhí)行下一次循環(huán),或執(zhí)行標(biāo)號標(biāo)識的循環(huán)體.以下for循環(huán)用于對1到100之內(nèi)的奇數(shù)求和:intresult=0;for<inta=1;a<=100;a++>{if<a%2==0>continue;//如果a是偶數(shù),就跳出本次循環(huán),繼續(xù)執(zhí)行下次循環(huán)elseresult+=a;}System.out.println<result>;//打印2500討論:判斷下面程序執(zhí)行了多少次?classTest{publicstaticvoidmain<String[]args>{ inti=0; while<i<10>{ if<i<10>{ i++;continue; } if<i==5>{ break; } } System.out.println<i>; }}Java中聲明數(shù)組的幾種方式//僅聲明數(shù)組的引用,但沒有分配內(nèi)存空間float[]fAry;//聲明數(shù)組的同時,根據(jù)指定的長度分配內(nèi)存,但數(shù)組中沒有值char[]chAry=newchar[10];//聲明數(shù)組并分配內(nèi)存,同時將其初始化int[]ary1=newint[]{1,2,3,4,5};//與前一種方式相同,僅僅只是語法相對簡略int[]ary2={1,2,3,4,5};學(xué)生實驗<上機>[練習(xí)題一]編寫Java程序,計算100~999之間的全部"水仙花數(shù)"的平均值.所謂"水仙花數(shù)"是指一個三位數(shù),其各位數(shù)字的立方和等于該數(shù)本身.例如:153=1^3+5^3+3^3,故153是水仙花數(shù).[練習(xí)題二]編寫一個Java程序,要求在控制臺上打印出九九乘法表,效果應(yīng)如下所示:1*1=1,1*2=2,2*2=4,1*3=3,2*3=6,3*3=9,1*4=4,2*4=8,3*4=12,4*4=16,1*5=5,2*5=10,3*5=15,4*5=20,5*5=25,1*6=6,2*6=12,3*6=18,4*6=24,5*6=30,6*6=36,1*7=7,2*7=14,3*7=21,4*7=28,5*7=35,6*7=42,7*7=49,1*8=8,2*8=16,3*8=24,4*8=32,5*8=40,6*8=48,7*8=56,8*8=64,1*9=9,2*9=18,3*9=27,4*9=36,5*9=45,6*9=54,7*9=63,8*9=72,9*9=81,[練習(xí)三]1.打印如下圖型:*************2.************作業(yè)布置一個小球從100米處落下,每次彈起是原來的一半,問彈起第二十次落下后所經(jīng)過的米數(shù).課后總結(jié)通過這三周的程序編寫和講解,發(fā)現(xiàn)50%的同學(xué)對選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的熟練程序還不夠,對一些算法的實現(xiàn)還存在很大的問題,邏輯思維能力較弱.因此接下來的1-2周,決定采用大量的例子程序進行上機練習(xí),然后由老師以及學(xué)得比較好的同學(xué)進行輔導(dǎo),為后面的面向?qū)ο缶幊痰囊恍└拍畲蛳禄A(chǔ).教案編號:4章節(jié)程序上機練習(xí)授課方式講授+上機教學(xué)目的掌握分支語句、循環(huán)語句、數(shù)組的用法;加深對變量以及數(shù)組聲明等用法的理解和使用.培養(yǎng)學(xué)生的邏輯思維能力.培養(yǎng)學(xué)生的實際動手能力.培養(yǎng)學(xué)生分析問題的能力.教學(xué)重點分支語句、循環(huán)語句.教學(xué)難點分支語句、循環(huán)語句.時間分配教學(xué)過程Min20160作業(yè)點評<學(xué)生闡述+老師總結(jié)>方式:由3-5個同學(xué)來講述上周作業(yè)的實現(xiàn)思路,最后由老師總結(jié)出現(xiàn)的一些問題.類名不規(guī)范運算符的運用部分算法的不科學(xué)性上機實驗實現(xiàn)方式:<一>由老師給出程序片段,由學(xué)生完成關(guān)鍵部分的填寫,最后讓學(xué)生獨立運行程序.<二>讓個別同學(xué)來講解整個程序的實現(xiàn)思路,最后由老師總結(jié).求1000以內(nèi)的素數(shù)〔素數(shù):只能除開1和本身的數(shù)已知某年某月某日,從該年的1月1日開始3天打漁2天曬網(wǎng),求該日是打漁還是曬網(wǎng)〔思路,先求出該天是該年的第幾天編寫一個程序?qū)崿F(xiàn)將任意一個十進制數(shù)轉(zhuǎn)換成二進制形式輸出如10輸出形式為0000000000...00000001010一個小球從100米處落下,每次彈起是原來的一半,問彈起第二十次落下后所經(jīng)過的米數(shù).求任意兩個整數(shù)的最大公約數(shù)和最小公倍數(shù)輸出九九乘法表<兩層for循環(huán)求1000以內(nèi)的水仙花數(shù)〔如153=1^3+5^3+3^3已知一個正整數(shù),輸出它的所有質(zhì)數(shù)因子〔如180的質(zhì)數(shù)因子為2、2、3、3、5.作業(yè)布置求1!+3!+5!+…+9!的值求1+1/2+1/6+1/12+1/20+….前10項的和課后總結(jié)通過程序片段的方式,80%以上的同學(xué)都能夠很好的完成最后的關(guān)鍵部分填寫;這樣的方式對于程序的初學(xué)者來說是一個很好的入門方式;在降低難度的同時還促進了學(xué)生的主動思考和分析問題的能力.教案編號:5章節(jié)授課方式教學(xué)目的教學(xué)重點教學(xué)難點時間分配教學(xué)過程國慶放假作業(yè)布置課后總結(jié)教案編號:6章節(jié)程序上機練習(xí)授課方式講授+上機教學(xué)目的掌握循環(huán)結(jié)構(gòu)、選擇結(jié)構(gòu)的用法;加深對變量以及數(shù)組聲明等用法的理解和使用.培養(yǎng)學(xué)生的邏輯思維能力.培養(yǎng)學(xué)生的實際動手能力.培養(yǎng)學(xué)生的團隊意思.教學(xué)重點分支語句、循環(huán)語句.教學(xué)難點分支語句、循環(huán)語句.時間分配教學(xué)過程Min30150作業(yè)點評<學(xué)生闡述+老師總結(jié)>方式:由3-5個同學(xué)來講述上周作業(yè)的實現(xiàn)思路,最后由老師總結(jié)出現(xiàn)的一些問題.上機實驗<上機+指導(dǎo)>實現(xiàn)方式:由學(xué)生獨立完成,老師從旁指導(dǎo).對于復(fù)雜的程序由小組討論:如第六個小題.在寫程序的同時也增加了趣味性.萬年歷〔周幾的判斷規(guī)則是〔年+年/4+年/400-年/100%7求1!+2!+3!+4!+...+9!的值求1+1/2+2/3+3/5+5/8+前10項的和求Fibonacci數(shù)列:1,1,2,3,5,8,的前40項并輸出編寫一個程序,打印出1233455676789海灘上有一堆桃子,五只猴子來分.第一只猴子把這堆桃子憑據(jù)分為五份,多了一個,這只猴子把多的一個扔入海中,拿走了一份.第二只猴子把剩下的桃子又平均分成五份,又多了一個,它同樣把多的一個扔入海中,拿走了一份,第三、第四、第五只猴子都是這樣做的,問海灘上原來最少有多少個桃子?桃子的個數(shù)有多少種可能?寫一段程序,定義int型變量代表month月份,并賦給初值,根據(jù)月份判斷出這個月是四季中的哪個季節(jié)?不是一年12個月份的月份,輸出"錯誤月份";給一個不多于5位的正整數(shù),要求:一、輸出它是幾位數(shù),二、逆序打印出各位數(shù)字.作業(yè)布置編寫程序,打印出123456789101112131415課后預(yù)習(xí)面向?qū)ο缶幊痰母拍?課后總結(jié)通過兩周的課堂編程練習(xí)以及老師的指導(dǎo)和講解,80%的同學(xué)對Java語言基礎(chǔ)、循環(huán)結(jié)構(gòu)、選擇結(jié)構(gòu)以及數(shù)組的應(yīng)用基本熟練,達到了Java編程的入門級水平<能夠編寫一些簡單的應(yīng)用程序,如:打印圖案,數(shù)字排序,平年與閏年的判斷等>;在邏輯思考上也有了一些進步,但是程序的訓(xùn)練還需進一步的加強.教案編號:7章節(jié)面向?qū)ο箝_發(fā)方法概述授課方式講授+上機教學(xué)目的了解什么是面向?qū)ο?掌握面向?qū)ο蟮幕靖拍?lt;類、對象、屬性、封裝、繼承、多態(tài)>.掌握如何定義類,如何創(chuàng)建對象.掌握成員運算符的使用.掌握訪問控制權(quán)限:public和private.培養(yǎng)學(xué)生抽象客觀世界成主觀世界的能力.培養(yǎng)學(xué)生初步的設(shè)計軟件系統(tǒng)的能力.培養(yǎng)學(xué)生的團隊意識.教學(xué)重點面向?qū)ο蟮暮诵乃枷牒透拍罱虒W(xué)難點面向?qū)ο蟮暮诵乃枷牒透拍顣r間分配教學(xué)過程Min15151010202010101555作業(yè)點評<學(xué)生闡述+老師總結(jié)>方式:由1-3個同學(xué)來講述上周作業(yè)第六題的實現(xiàn)思路以及展示具體實現(xiàn),最后由老師總結(jié)出現(xiàn)的一些問題.上周課后作業(yè)檢查方式:抽查2-5名同學(xué)談?wù)剬γ嫦驅(qū)ο缶幊痰恼J識以及對基本概念的描述.面向?qū)ο蟮木幊趟枷雽ο蟋F(xiàn)實世界中的實體是實際存在的某種物體,用OOP的術(shù)語就稱為對象.在Java中我們通過對象對現(xiàn)實世界中的實體進行一個模擬和映射.對象是面向?qū)ο缶幊痰暮诵牟糠?和現(xiàn)實世界一樣,需要具有明確定義的狀態(tài)和行為.對象的特征——屬性屬性——對象具有的各種特征每個對象的每個屬性都擁有特定值對象的特征——方法方法——對象執(zhí)行的操作類人們?yōu)榱烁玫卣J識世界,將現(xiàn)實生活中的事物〔對象劃分成類;同一類中的事物總是具有一些共性;類以共同的特性和行為定義實體;類是具有相同屬性和行為的一組對象的集合.類和對象的區(qū)別類是用來描述實體的"模板"或"原型";對象是實際的實體,每一個對象都是類的一個具體實例;類用來定義對象所有的屬性和方法,同一類的所有對象都擁有相同的特征和操作;可以將類理解成生產(chǎn)產(chǎn)品的模具,而對象則是根據(jù)此模具生產(chǎn)的一個個產(chǎn)品.在Java中定義類創(chuàng)建對象的語法和數(shù)組相似,對象也是引用數(shù)據(jù)類型,只能使用new運算符從堆中分配內(nèi)存;創(chuàng)建對象的一般語法: 類名引用名=new類名<>;使用已經(jīng)定義好的類,創(chuàng)建該類對象的過程稱為"實例化".訪問權(quán)限:public和privateC語言中結(jié)構(gòu)體的成員可以從任何地方進行訪問,這將給數(shù)據(jù)的安全留下極大的隱患;為了避免從類外部直接訪問類成員而造成的數(shù)據(jù)損壞,Java對類成員的訪問制定了約束;關(guān)鍵字public和private是訪問修飾符,用來說明某個成員是否可以從類外部進行訪問;public修飾的成員可以在任何地方進行訪問,不受任何約束;private修飾的成員只能夠被本類中的其它成員訪問,而不能從類的外部進行訪問.討論:列舉出生活中常見的類以及它們的對象.由每個組一個代表發(fā)言,說出討論結(jié)果.上機實驗<一>練習(xí)一請通過代碼封裝,實現(xiàn)如下需求:編寫一個類Book,代表教材:1、具有屬性:名稱〔title、頁數(shù)〔pageNum、出版社<publisher>2.為各屬性設(shè)置賦值和取值方法3、編寫一個判斷頁數(shù)的方法judgePage〔,其中判斷輸入的頁數(shù)不能少于200頁,否則輸出錯誤信息,并賦予默認值2004、具有方法:detail〔,用來在控制臺輸出每本教材的名稱和頁數(shù)編寫測試類BookTest進行測試:為Book對象的屬性賦予初始值,并調(diào)用Book對象的detail方法,看看輸出是否正確?<二>練習(xí)二使用JAVA定義學(xué)生類Student!要求學(xué)生類有姓名、性別、年齡、體重等屬性,并且全部屬性都要使用private修飾.提供public的set和get方法來設(shè)置和獲取屬性的值.提供dining<>吃飯和walk走路<>.編寫測試類Teststudent進行測試:為Student對象的屬性賦予初始值,并調(diào)用Student對象的dining<>,walk<>方法,看看輸出是否正確?作業(yè)布置教材P42第八題.課后總結(jié)只有40%的同學(xué)對面向?qū)ο蟮幕靖拍畹睦斫夂驼莆?;余下的大部分同學(xué)都屬于一知半解;在這方面還需進一步加強練習(xí).教案編號:8章節(jié)面向?qū)ο箝_發(fā)方法概述—類和對象的Java實現(xiàn)授課方式講授+學(xué)生操作教學(xué)目的掌握類和對象的基本概念以及核心思想.掌握構(gòu)造方法的寫法以及重載.掌握對象在內(nèi)存中的存放形式.培養(yǎng)學(xué)生對客觀事物的抽象能力.培養(yǎng)學(xué)生系統(tǒng)分析的能力.培養(yǎng)學(xué)生的項目展示能力.教學(xué)重點構(gòu)造方法.方法重載.教學(xué)難點方法重載.時間分配教學(xué)過程Min202020120作業(yè)點評<學(xué)生闡述+老師總結(jié)>方式:由2-4個同學(xué)來講述上周實驗的實現(xiàn)思路以及具體實現(xiàn),最后由老師總結(jié)出現(xiàn)的一些問題.一個Java文件中出現(xiàn)多個class,需文件名的類修飾成public即主類.建立測試類后,創(chuàng)建對象后訪問對象的屬性時未通過對象進行引用而直接訪問屬性.setter方法傳參數(shù)出現(xiàn)問題,如obj.setTitle="天龍八部";char型出現(xiàn)charch="男"!!!類中定義方法〔行為出現(xiàn)問題,即停留在C語言;〔丟失.setter和getter方法命名不規(guī)范以及方法返回類型和方法體出現(xiàn)問題.構(gòu)造方法正是由于在實例化對象的同時會自動調(diào)用構(gòu)造方法,所以構(gòu)造方法一般用來給數(shù)據(jù)成員分配資源或初始化數(shù)據(jù)成員;構(gòu)造方法的一般形式:訪問權(quán)限類名〔形參列表{方法體}因為是由虛擬機來調(diào)用構(gòu)造方法,所以構(gòu)造方法一般應(yīng)定義成public./*定義ConstructorDemo類,對構(gòu)造方法進行測試*/classConstructorDemo{/*構(gòu)造方法,方法名與類名完全一致無需指定返回值類型,也不能有返回值*/publicConstructorDemo<>{System.out.println<"這是構(gòu)造方法">;}}/*Test類,用來容納main方法一般將包含有main方法的類聲明為public*/publicclassTest{/*main方法,程序入口*/publicstaticvoidmain<String[]args>{/*實例化ConstructorDemo類的對象*/ConstructorDemocd=newConstructorDemo<>;}}方法重載用于定義一組方法,這些方法具有相同的名稱,并執(zhí)行類似的操作,但是卻使用不同的參數(shù)列表;編譯器會根據(jù)調(diào)用時傳遞的實際參數(shù)自動判斷具體調(diào)用的是哪個重載方法,如:/*abs方法的重載*/intabs<intx>{……}floatabs<floatx>{……}doubleabs<doublex>{……}longabs<longx>{……}方法重載的三大原則方法名相同參數(shù)不同〔可以有三方面的不同數(shù)量不同類型不同順序不同同一作用域溫馨提示:方法重載跟方法的返回值類型沒有任何關(guān)系.也就是說,只有返回值不同的方法不能構(gòu)成重載./*錯誤的方法重載*/voidfun<intx>{……};intfun<intx>{……};上機實驗定義一個學(xué)生類,具有屬性:姓名〔name、性別〔sex、年齡〔age、體重〔weight、銀行帳戶余額〔money!給每個屬性提供set以及get方法.為該學(xué)生提供學(xué)習(xí)方法〔learn、休息方法<rest>、顯示信息方法〔display.在學(xué)習(xí)方法中,體重減一;在休息方法中,體重加一.為學(xué)生類提供方法重載對成員變量進行靈活初始化.要求〔a、無參的構(gòu)造方法;b、只有姓名一個參數(shù)的構(gòu)造方法;c、有姓名、性別兩個參數(shù)的構(gòu)造方法;d、有姓名、性別、年齡三個參數(shù)的構(gòu)造方法;e、有姓名、性別、年齡、體重四個參數(shù)的構(gòu)造方法;f、有姓名、性別、年齡、體重、銀行帳戶五個參數(shù)的構(gòu)造方法.在測試類中,實例化學(xué)生類,要求:通過6種不同的初始化方法,實現(xiàn)6個對象的創(chuàng)建,并顯示具體學(xué)生的相關(guān)信息.定義一個類AbsoluteValue〔求絕對值,要求使用方法重載實現(xiàn)不同類型數(shù)值的取絕對值方法:abs.作業(yè)布置P19311、12、13.課后總結(jié)80%以上的同學(xué)掌握了windows應(yīng)用程序的安裝、卸載以及軟件的注冊.90%以上的同學(xué)掌握了windows的基本快捷操作.教案編號:9章節(jié)Java語言中的修飾符授課方式講授+學(xué)生實驗教學(xué)目的掌握this、static、package、import它們的含義以及用法.掌握對象數(shù)組的聲明及用法.培養(yǎng)學(xué)生實際動手能力.培養(yǎng)學(xué)生面向?qū)ο蟮木幊棠芰?教學(xué)重點對象數(shù)組.this、static、package、import.教學(xué)難點對象數(shù)組.this、static.時間分配教學(xué)過程Min1515151025100作業(yè)點評及檢查<學(xué)生闡述+老師總結(jié)>由1-2個學(xué)生講述上周作業(yè)的實現(xiàn)思路以及展示程序?qū)崿F(xiàn);過程中由老師補充和總結(jié).對象數(shù)組〔講授在Java中不但可以聲明由原始數(shù)據(jù)組成的數(shù)組,還可以聲明由對象組成的數(shù)組;聲明對象數(shù)組的方式如://假設(shè)已經(jīng)定義了一個Student類/*聲明由5個Student對象組成的數(shù)組*/Student[]stdAry=newStudent[5];上述方式類似于C語言中的: structStudent**p=NULL;p=<structStudent**>malloc<5*sizeof<structStudent*>>;對象數(shù)組==引用數(shù)組this關(guān)鍵字既然所有的對象都共用相同的成員方法,那么在不同的對象都調(diào)用同一方法時,它是怎么確定要使用哪個對象的數(shù)據(jù)成員呢?每個成員方法都有一個隱含的this引用,它總是指向調(diào)用它的對象;This為調(diào)用成員方法的對象的地址;可以像使用任何引用那樣使用this.靜態(tài)成員變量在成員變量前加static關(guān)鍵字,可以將其聲明為靜態(tài)成員變量;靜態(tài)成員變量只有一份內(nèi)存拷貝,即所有對象共享該成員變量;靜態(tài)成員變量的作用域只在類內(nèi)部,但其生命周期卻貫穿整個程序.包有時候,類和類的名稱可能發(fā)生沖突;Java提供了把類名空間劃分為更容易管理的塊的機制,這就是包;包類似于文件夾;分屬不同包的類名相同也不會引起沖突;能在包與包之間對于類的訪問權(quán)限提供更有力的約束.使用package關(guān)鍵字打包使用import關(guān)鍵字導(dǎo)入包上機實驗編寫一個學(xué)生類,學(xué)生類里有標(biāo)示姓名的屬性和標(biāo)示年齡的屬性,寫一個構(gòu)造方法,在構(gòu)造方法里為屬性賦值時,必須用到this關(guān)鍵字.寫一個輸出函數(shù),輸出學(xué)生的姓名和其年齡.寫一個測試類,在測試類里定義一個長度為3的學(xué)生類的對象數(shù)組,為數(shù)組里的每一個元素實例化一個學(xué)生對象,并調(diào)用其輸出函數(shù),程序運行結(jié)果如下:編寫一個學(xué)生類,類里有一個標(biāo)示姓名的屬性和一個靜態(tài)的標(biāo)示總學(xué)生個數(shù)的屬性,寫一個構(gòu)造方法,使每創(chuàng)建一個學(xué)生對象時學(xué)生個數(shù)自加,寫一個輸出結(jié)果的方法,程序運行的結(jié)果如下:隨便寫一個JAVA程序,在程序的最前面寫下面這條語句:packagenewer.java;編繹運行,并到原程序所在目錄下查看生成的包結(jié)構(gòu).編寫下面的程序,編譯后分析報錯的原因publicclassTest{ publicstaticvoidmain<String[]args>{ JFramef=newJFrame<"我的窗口">; f.setSize<400,300>; f.setVisible<true>;}}然后在程序的最前面寫上以下語句,再次編繹、運行,并分析這條語句的作用.importjavax.swing.JFrame;作業(yè)布置P216-21710、11、12、13.課后總結(jié)對static的理解還需多加強程序編寫的練習(xí).教案編號:10章節(jié)繼承—基本概念及基本用法授課方式講授+上機教學(xué)目的理解什么是繼承.掌握在Java中實現(xiàn)繼承,extends關(guān)鍵字.掌握繼承中的構(gòu)造方法的用法.掌握super關(guān)鍵字的含義及用法.培養(yǎng)學(xué)生項目展示能力.培養(yǎng)學(xué)生主動思考問題的能力.培養(yǎng)學(xué)生實際動手能力.教學(xué)重點繼承的基本概念以及Java實現(xiàn).教學(xué)難點繼承的基本概念以及Java實現(xiàn).時間分配教學(xué)過程Min205101510120作業(yè)點評及檢查<學(xué)生闡述+老師總結(jié)>由1-2個學(xué)生講述上周作業(yè)的實現(xiàn)思路以及展示程序?qū)崿F(xiàn);過程中由老師補充和總結(jié).問題描述:方法重載的不理解〔同類同名不同參錯誤重犯率較高;如構(gòu)造函數(shù)無返回類型、構(gòu)造函數(shù)名與類名不一致、類名不規(guī)范、帶有main方法的class名與物理文件名不一致、沒有通過對象調(diào)用方法〔非靜態(tài)方法、方法名后不帶〔;甚至出現(xiàn)類名后加〔現(xiàn)象.只要與類名不一致的方法都視為成員方法,需返回類型.Dog類帶有static的count成員,創(chuàng)建dog1...dog5對象后,最后用for循環(huán)遍歷后,調(diào)用方法后結(jié)果一致.〔應(yīng)在各自對象后調(diào)用方法靜態(tài)變量以及靜態(tài)成員可以直接通過類名.出來.回顧方法重載應(yīng)遵循三大原則;適當(dāng)?shù)刂剌d構(gòu)造方法,可以使初始化對象的方式更為靈活;this引用總是指向調(diào)用成員方法的對象本身;靜態(tài)成員〔包括靜態(tài)成員屬性和靜態(tài)成員方法屬于類而不是屬于某個對象,可以在實例化對象之前通過類名訪問;使用package關(guān)鍵字打包;使用import關(guān)鍵字導(dǎo)入包或類.繼承的概念在現(xiàn)實生活中的繼承,可以理解為兒子繼承了父親的財產(chǎn),即財產(chǎn)重用;面向?qū)ο蟪绦蛟O(shè)計中的繼承,則是代碼重用;繼承是利用現(xiàn)有的類創(chuàng)建新類的過程,現(xiàn)有的類稱作基類〔或父類,創(chuàng)建的新類稱作派生類〔子類.最高層是最普遍的、最一般的情況,往下每一層都比上一層更具體,并包含有高層的特征,通過這樣的層次結(jié)構(gòu)使下層的類能自動享用上層類的特點和性質(zhì);繼承其實就是自動地共享基類中成員屬性和成員方法的機制.在Java中實現(xiàn)繼承在Java中實現(xiàn)繼承需要使用到extends關(guān)鍵字;實現(xiàn)繼承的一般語法是: [訪問修飾符]class派生類名extends基類名{ 成員列表 }如: classStudentextendsPerson {…… }類成員的訪問控制權(quán)限信息隱藏是面向?qū)ο蟪绦蛟O(shè)計的重要特點之一,它可以:防止類的使用者意外損壞數(shù)據(jù);對任何實現(xiàn)細節(jié)所作的修改不會影響到使用該類的其它代碼;使類更易于使用.在Java中實現(xiàn)信息隱藏的是訪問控制權(quán)限機制;訪問控制權(quán)限包括4個訪問修飾符:public、protected、private和缺??;可以使用上述訪問修飾符修飾類的成員.上機實驗[練習(xí)一]醫(yī)生有姓名〔name,編號〔idNumber,地址〔address等基本信息,都有display〔顯示信息的方法.醫(yī)生又分專業(yè)醫(yī)生和非專業(yè)醫(yī)生,非專業(yè)醫(yī)生所具有的信息與上述的一樣.但專業(yè)醫(yī)生出了具有上述的基本信息之外還有特有的信息:專業(yè)〔speciality.請根據(jù)他們之間的關(guān)系,創(chuàng)建一個醫(yī)生類〔Doctor,包含醫(yī)生的基本信息.再利用繼承創(chuàng)建一個非專業(yè)醫(yī)生類〔NonSpecialist和一個專業(yè)醫(yī)生類〔Specialist,專業(yè)醫(yī)生類包含一個顯示其專業(yè)的方法publicvoidshowSpwciality<>.利用這些類的對象顯示他們各自的信息./ *提示1.醫(yī)生類構(gòu)造方法中可以加入一條顯示代碼System.out.println〔"這是父類構(gòu)造方法";2.非專業(yè)醫(yī)生類只需繼承醫(yī)生類無需編寫任何屬性,方法.3.專業(yè)醫(yī)生類繼承醫(yī)生類,并添加屬性:專業(yè),構(gòu)造方法需使用super調(diào)用父類構(gòu)造方法,添加獲得專業(yè)信的方法和顯示專業(yè)信息的方法.所有的類都是用構(gòu)造方法初始化對象,在test類中編寫main方法測試.classDoctor{privatename;publicvoiddisplay<>{n<"姓名"+getName<>>;//其他屬性類似姓名的處理方式} }〔以下練習(xí)都應(yīng)采用上述構(gòu)造函數(shù)/getXXXX<>/display<>的編碼形式[練習(xí)題二]定義一個名為Vehicles〔交通工具的基類,該類中應(yīng)包含String類型的成員屬性brand〔商標(biāo)和color〔顏色,還應(yīng)包含成員方法run〔行駛,在控制臺顯示"我已經(jīng)開動了"和showInfo〔顯示信息,在控制臺顯示商標(biāo)和顏色,并編寫構(gòu)造方法初始化其成員屬性.編寫Car〔小汽車類繼承于Vehicles類,增加int型成員屬性seats〔座位,還應(yīng)增加成員方法showCar〔在控制臺顯示小汽車的信息,并編寫構(gòu)造方法.編寫Truck〔卡車類繼承于Vehicles類,增加float型成員屬性load〔載重,還應(yīng)增加成員方法showTruck〔在控制臺顯示卡車的信息,并編寫構(gòu)造方法.在main方法中測試以上各類.作業(yè)布置P1928、9.預(yù)習(xí)多態(tài)的基本概念以及具體實現(xiàn).課后總結(jié)由于對繼承屬于面向?qū)ο蟮娜筇卣髦?所以本章節(jié)的速度放得很慢,但是即使這樣依然有30%的人對繼承的基本概念和實現(xiàn)仍然存在很大的問題.解決辦法就是系能能夠通過更多的練習(xí)來達到對理論的理解.教案編號:11章節(jié)繼承—多態(tài)授課方式講授+上機教學(xué)目的掌握方法覆蓋的基本概念機Java實現(xiàn).掌握多態(tài),在Java中實現(xiàn)多態(tài).掌握final關(guān)鍵字的用法.培養(yǎng)學(xué)生的表達能力、項目展示能力.培養(yǎng)學(xué)生的團隊意識.培養(yǎng)學(xué)生的實際動手能力.教學(xué)重點方法覆蓋、多態(tài).教學(xué)難點方法覆蓋、多態(tài).時間分配教學(xué)過程Min15102520153070作業(yè)點評及檢查<學(xué)生闡述+老師總結(jié)>作業(yè)講解及點評:由1-2個學(xué)生講述上周作業(yè)的實現(xiàn)思路以及展示程序?qū)崿F(xiàn);過程中由老師補充和總結(jié).預(yù)習(xí)檢查:在Java程序中,多態(tài)性帶給我們的好處是什么?方法覆蓋與方法重載有區(qū)別嗎?抽2-4個人來回答上述兩個問題.然后引入此堂課新內(nèi)容.上周回顧<學(xué)生闡述+老師總結(jié)>繼承是指從一個基類〔父類派生出派生類〔子類的過程;繼承使用關(guān)鍵字extends;對于類成員,可以使用public、protected、缺省和private這4種訪問權(quán)限修飾符;創(chuàng)建子類實例時,必須先執(zhí)行父類的構(gòu)造方法,然后再執(zhí)行子類的構(gòu)造方法;super關(guān)鍵字有兩種主要用途,都與父類有關(guān).方法覆蓋在類的繼承體系結(jié)構(gòu)中,如果子類中出現(xiàn)了與父類中有同原型的方法,那么認為子類中的方法覆蓋了父類中的方法〔也稱為方法重寫;通過子類的實例調(diào)用被覆蓋的方法時,將總是調(diào)用子類中的方法,而父類中的方法將被隱藏.方法覆蓋的Java實現(xiàn).classParentClass{//定義父類publicvoidfun<>{System.out.println<"這是父類中的方法.">;}}classChildClassextendsParentClass{//子類繼承于父類publicvoidfun<>{//子類覆蓋父類中的方法System.out.println<"這是子類中的方法.">;}}classOverriddenTest{//用于容納main方法publicstaticvoidmain<String[]args>{ParentClassparObj=newParentClass<>;parObj.fun<>;//父類的實例調(diào)用此方法ChildClasschiObj=newChildClass<>;chiObj.fun<>;//子類的實例調(diào)用此方法}}區(qū)分方法覆蓋和方法重載方法覆蓋〔重寫和方法重載是兩個極易混淆的概念,必須嚴(yán)格區(qū)分;方法覆蓋出現(xiàn)的前提條件之一是必須有繼承發(fā)生的情況下,而且要求父類和子類中的方法必須同原型;方法重載時,繼承并不是必需的,它只要求方法名稱相同,而參數(shù)列表則必須不同,換言之,各方法的原型其實是不同的.多態(tài)簡單來說,多態(tài)是具有表現(xiàn)多種形態(tài)的能力的特征屬于同一種類型,使用不同的實例而執(zhí)行不同操作靜態(tài)多態(tài)動態(tài)多態(tài)final關(guān)鍵字在Java中,final關(guān)鍵字有最終的,不可修改的含義;final關(guān)鍵字有三種用途,可以分別應(yīng)用于變量、成員方法和類.如果將某個變量修飾為final,那么該變量就成為常量,一般語法:[訪問權(quán)限]final數(shù)據(jù)類型常量名=值;如:finaldoublePI=3.14159; PI成為常量,其后任何試圖對PI進行賦值的語句都將報錯;常量在聲明時必須初始化代碼閱讀上機實驗定義一個寵物類<Pet>,它有兩個方法:叫cry<>,吃東西eat<>,定義寵物的子類狗<Dog>,貓<Cat>,覆蓋父類的cry<>,eat<>方法,里面寫System.out.println<"貓吃了魚">這樣的打印語句,另外狗有自己的方法看門guardEntrance<>,貓自己獨有的方法捉老鼠huntMice<><1>定義一個Test類,在main中定義兩個Pet變量,pet1,pet2,采用引用轉(zhuǎn)型實例化Dog,Cat,分別調(diào)用Pet的cry<>,eat<>;<2>將Pet引強制轉(zhuǎn)換為具體的Dog,Cat,在調(diào)Dog的guardEntrance〔,Cat的huntMice<>〔提示:先用instanceof進行類型判斷<3>修改Test類,添加喂養(yǎng)寵物feedPet<Petpet>的方法,在feedPet中調(diào)cry<>,eat<>方法,實例化Test類,再實例化狗Dogdog=newDog<>,貓Petcat=newCat<>,Test分別調(diào)feedPet<>方法分別傳參數(shù)cat,dog,思考這兩種方式的異同,深入理解引入轉(zhuǎn)型和多態(tài)作業(yè)布置預(yù)習(xí)異常處理,并完成P279課后作業(yè)1、2、3.課后總結(jié)對方法覆蓋和多態(tài)的理解難度較大,約一半的人都停留在記住概念上面,在實際的運用中存在問題,解決辦法就是由老師給出作業(yè)的源代碼,先個人看,然后小組討論,最后由小組代表上臺來給大家講解實現(xiàn)的思路.教案編號:12章節(jié)異常處理授課方式講授+討論+上機教學(xué)目的掌握異常的概念.具備運用try塊、catch塊和finally塊處理異常的能力.掌握Java中異常類的繼承體系結(jié)構(gòu).運用關(guān)鍵字throw和throws處理異常.掌握自定義異常.培養(yǎng)學(xué)生程序的閱讀能力.培養(yǎng)學(xué)生自助學(xué)習(xí)的能力.培養(yǎng)學(xué)生實際的動手能力.培養(yǎng)學(xué)生團隊意識.教學(xué)重點try塊、catch塊和finally塊.教學(xué)難點finally語句.時間分配教學(xué)過程Min1560105作業(yè)點評及檢查<學(xué)生闡述+老師總結(jié)>作業(yè)講解及點評:由1-2個學(xué)生講述上周作業(yè)的實現(xiàn)思路以及展示程序?qū)崿F(xiàn);過程中由老師補充和總結(jié).預(yù)習(xí)檢查:由1-2個人回答上周布置的思考題作業(yè).由此引出本次課新內(nèi)容.異常什么是異常?程序中出現(xiàn)的錯誤被稱為異常;異??煞譃閮纱箢悾壕幾g時異常和運行時異常;編譯時異常一般是指語法錯誤,可以通過編譯器的提示加以修正,這里我們不予討論;運行時異常包括:運行錯誤:如數(shù)組下標(biāo)越界,除數(shù)為0等;邏輯錯誤:如年齡超過200歲等.try塊和catch塊try塊:一般用來監(jiān)視有可能產(chǎn)生異常的代碼部分;catch塊:當(dāng)異常產(chǎn)生后,catch塊捕捉異常,并在其中對異常進行處理.……try{……//監(jiān)視有可能發(fā)生異常的代碼段}catch<異常類型>//捕獲發(fā)生的異常{……//對異常進行處理}……finally塊無論try/catch塊中發(fā)生了什么,finally塊都一定會執(zhí)行;當(dāng)異常發(fā)生時,程序可能會意外中斷,有些被占用的資源就得不到清理.finally塊可以確保執(zhí)行所有的清理工作;無論是否發(fā)生異常,finally塊都將執(zhí)行;finally塊是可選的,可視具體情況決定是否添加;finally塊必須和try塊一起使用,不能單獨存在.try/catch/finally執(zhí)行流程throw關(guān)鍵字throw語句用于手工拋出異常;執(zhí)行流程將在throw語句后立即停止,轉(zhuǎn)而尋找與之類型相匹配的catch塊;throw語句的語法是: throw<異常類型的實例>.用戶自定義異常Exception類和其子類都是系統(tǒng)內(nèi)置的異常,這些異常不一定總能捕獲程序中發(fā)生的所有異常;有時候,我們可能要創(chuàng)建用戶自定義的異常類;用戶自定義異常類應(yīng)該是Exception類的子類;類似于:classMyExceptionextendsException { …… }上機實驗1、編寫程序ArrayDivide,在其中同時給出兩個不同大小的整型數(shù)組.利用循環(huán),將第一個數(shù)組包含的整型數(shù)作為被除數(shù),第二個數(shù)組包含的整型數(shù)作為除數(shù).用第一個數(shù)組中的整型數(shù)除以第二個數(shù)組中相應(yīng)位置的元素.考慮各種可能產(chǎn)生的異常,并設(shè)計程序捕獲和處理這些異常.提示:當(dāng)?shù)谝粋€數(shù)組的長度大于第二個數(shù)組的長度時,可能產(chǎn)生的ArrayIndex-OutOfBoundsException異常;當(dāng)被除數(shù)為0時,可能產(chǎn)生ArithmeticException的異常2、編寫程序,實現(xiàn)從命令行輸入三個數(shù)值參數(shù)作為三角形的三條邊,以此構(gòu)造一個三角形.程序應(yīng)該實現(xiàn)如下功能:-->檢查用戶輸入的命令行參數(shù)是否足夠,如果不夠三個參數(shù),則程序可能產(chǎn)生ArrayIndexOutOfBoundsException異常-->檢查輸入的命令行參數(shù)是否為數(shù)值格式,如果輸入的數(shù)值參數(shù)格式錯誤,則程序可能產(chǎn)生NumberFormatException異常-->檢查輸入的命令行參數(shù)中是否有負值,如果有負值,則程序可能產(chǎn)生ArgumentException異常<ArgumentException為自定義異常-->檢查輸入的命令行參數(shù)的三個數(shù)值是否能夠構(gòu)造一個三角形,如果不能構(gòu)造一個三角形,則程序可能產(chǎn)生InvailEdgesException異常〔InvailEdgesException為自定義異常提示:三角形任意兩邊之和必須大于第三邊.作業(yè)布置P280-2827、8、9.課后總結(jié)90%的人都理解了異常處理,并且能夠在程序中熟練的運用.但是在對finally塊的掌握程度上還不夠.教案編號:13章節(jié)Java基本語法、流程控制、面向?qū)ο缶幊獭惓L幚碜鲆淮稳娴膹?fù)習(xí)授課方式講授+上機教學(xué)目的鞏固學(xué)生對前面章節(jié)內(nèi)容的學(xué)習(xí).幫助學(xué)生將前面的內(nèi)容串聯(lián)起來,能夠熟練的運用前面的內(nèi)容來完成應(yīng)用程序的編寫.培養(yǎng)學(xué)生自主學(xué)習(xí)的能力.培養(yǎng)學(xué)生系統(tǒng)分析問題的能力.培養(yǎng)學(xué)生的實際動手能力.教學(xué)重點教學(xué)難點時間分配教學(xué)過程Min251555作業(yè)點評及檢查<學(xué)生闡述+老師總結(jié)>作業(yè)講解及點評:由1-2個學(xué)生講述上周作業(yè)的實現(xiàn)思路以及展示程序?qū)崿F(xiàn);過程中由老師補充和總結(jié).作業(yè)檢查:由3-5個同學(xué)給出作業(yè)的答案以及講解實現(xiàn)思路,老師從旁補充和總結(jié).上機實驗Java有那些基本數(shù)據(jù)類型,String是不是基本數(shù)據(jù)類型?char型變量中能不能存貯一個中文漢字?為什么?訪問權(quán)限修飾符public,private,protected的區(qū)別,默認不寫是?error和exception有什么區(qū)別?請列舉出常見的異常類.用關(guān)鍵字final分別修飾類、方法、變量時,有何意義?運行時異常與編譯時異常有何異同?什么是方法重載?什么是方法重寫?它們有什么區(qū)別?多態(tài)的幾種形式和各自的特點.JAVA語言如何進行異常處理?關(guān)鍵字:throws,throw,try,catch,finally分別代表什么意義?在try塊中可以拋出異常嗎?如果try{}里有一個return語句,那么緊跟在這個try后的finally{}里的代碼會不會被執(zhí)行,什么時候被執(zhí)行,在return前還是后?請寫出下列程序結(jié)果a>classBase{inti=99;publicvoidamethod<>{System.out.println<"Base.amethod<>">;}Base<>{amethod<>;}}publicclassDerivedextendsBase{inti=-1;publicstaticvoidmain<Stringargv[]>{Baseb=newDerived<>;System.out.println<b.i>;b.amethod<>;}publicvoidamethod<>{System.out.println<"Derived.amethod<>">;}}b>publicclassAccpTeacher{publicvoidgiveLesson<>{System.out.println<"知識點講解">;}}publicclassAccpDBTeacherextendsAccpTeacher{publicvoidgiveLesson<>{System.out.println<"啟動SqlServer">;}}publicclassTest{publicstaticvoidmain<String[]args>{AccpTeachert=newAccpDBTeacher<>;t.giveLesson<>;}}c>classBase{publicStringname;publicBase<>{name="Base";}publicBase<StringpName>{ name=pName;}publicvoidmethod<>{ System.out.println<name>;}}classChildextendsBase{publicChild<>{super<"Child1">;name="Child2";}}publicclassSample{publicstaticvoidmain<String[]args>{Childc=newChild<>;c.method<>;}}題目:品嘗飲料語言和環(huán)境實現(xiàn)語言:Java環(huán)境要求:JDK1.4或以上版本及其聯(lián)機幫助文檔要求使用命令行參數(shù)〔飲料類型,輸出該飲料類型的味道,如:當(dāng)命令行參數(shù)為1時,結(jié)果見圖1:圖一如果沒有該種飲料,結(jié)果見如圖2:圖二推薦實現(xiàn)步驟建立一個Java抽象類Drink,應(yīng)當(dāng):聲明一個抽象方法taste<>,該方法負責(zé)輸出飲料的味道;聲明int型常量來代表不同的飲料類型〔咖啡、啤酒、牛奶,如:聲明靜態(tài)方法getDrink<intdrinkType>,根據(jù)傳入的參數(shù)創(chuàng)建不同的飲料對象,并返回該對象,建議使用switch語句.該方法要求聲明DrinkNotFoundException,當(dāng)沒有相對應(yīng)的飲料類型時,拋出該異常.建立Drink的具體子類:分別建立Drink的子類:Coffee〔代表咖啡,Beer〔代表啤酒,Milk〔代表牛奶;子類分別要求:Coffee類私有屬性品牌〔brand,帶有此屬性參數(shù)的構(gòu)造方法;并提供相應(yīng)的setter和getter方法;Beer類私有屬性顏色〔color,帶有此屬性參數(shù)的構(gòu)造方法;并提供相應(yīng)的setter和getter方法;Milk類私有屬性狀態(tài)<state>,帶有此屬性參數(shù)的構(gòu)造方法;并提供相應(yīng)的setter和getter方法;實現(xiàn)taste<>方法,要求在控制臺打印各自的味道特征.建立異常類DrinkNotFoundException繼承Exception在Drink的方法getDrink<intdrinkType>中聲明引發(fā)DrinkNotFoundException異常,當(dāng)傳入的參數(shù)沒有相對應(yīng)的飲料類型時,拋出異常.在使用getDrink方法的類中捕捉該異常.建立Test測試類,測試以上內(nèi)容的正確性編寫main方法,通過命令行傳參的方式傳入某種飲料的類型.在main方法中,調(diào)用Drink類的getDrink方法,獲得相應(yīng)的飲料對象.注意捕獲DrinkNotFoundException.然后調(diào)用該飲料對象的taste<>方法,輸出該飲料的味道.編譯程序,并運行.注意事項仔細審題,把題目要求理解準(zhǔn)確;請注意多態(tài)性的運用;請注意代碼的書寫、命名符合規(guī)范,應(yīng)有適當(dāng)?shù)淖⑨?作業(yè)布置預(yù)習(xí)java.lang包.課后總結(jié)通過本次的練習(xí),至少讓80%的同學(xué)鞏固了前面所學(xué)的內(nèi)容,并且將前面的內(nèi)容頁進行了一次很好的融合.教案編號:14章節(jié)java.lang包授課方式講授+上機教學(xué)目的了解java.lang包.掌握包裝類.掌握String類.培養(yǎng)學(xué)生的個人表達能力、項目展示能力.培養(yǎng)學(xué)生的團隊意識.培養(yǎng)學(xué)生的主動積極性.教學(xué)重點String類.教學(xué)難點時間分配教學(xué)過程Min151553010105作業(yè)點評及檢查<學(xué)生闡述+老師總結(jié)>作業(yè)講解及點評:由1-2個學(xué)生講述上周作業(yè)<品嘗飲料>的實現(xiàn)思路以及展示程序?qū)崿F(xiàn);過程中由老師補充和總結(jié).回顧<由學(xué)生主動起來回答,老師補充>Java有那些基本數(shù)據(jù)類型,String是不是基本數(shù)據(jù)類型?char型變量中能不能存貯一個中文漢字?為什么?訪問權(quán)限修飾符public,private,protected的區(qū)別,默認不寫是?error和exception有什么區(qū)別?請列舉出常見的異常類.用關(guān)鍵字final分別修飾類、方法、變量時,有何意義?運行時異常與編譯時異常有何異同?什么是方法重載?什么是方法重寫?它們有什么區(qū)別?多態(tài)的幾種形式和各自的特點.java.lang包簡介java.lang包是java內(nèi)置的一個基礎(chǔ)包,其中包含了一系列程序中經(jīng)常要用到的類;在默認情況下,每個java程序都會自動導(dǎo)入該包,因此無需在程序中顯式地聲明.包裝類使用原始數(shù)據(jù)類型聲明的變量,如:intnum=10;這里的num只是一個變量,而不是對象;在某些必須操作對象的場合,這樣的變量就不能使用了;Java提供一系列包裝類,以便將原始數(shù)據(jù)類型當(dāng)作對象進行操作;在java.lang包中,對于每個原始數(shù)據(jù)類型都有一個相應(yīng)的包裝類.包裝類的構(gòu)造方法包裝類的valueOf方法包裝類的parseXxx方法Character類中的常用方法Character類常用方法示例String類Java中,字符串是String類的對象;可以通過使用String類提供的方法來完成對字符串的操作;創(chuàng)建一個字符串對象之后,將不能更改構(gòu)成字符串的字符;每當(dāng)更改了字符串版本時,就創(chuàng)建了一個新的字符串對象,并在其內(nèi)包含所做的修改,原始字符串保持不變.上機實驗練習(xí)一:編寫一個Java程序,完成以下功能: 聲明一個名為s的String對象,并使它的內(nèi)容是"CallmeAccp"; 打印整個字符串. 使用length〔方法打印字符串的長度 使用charAt〔方法打印字符串的第一個字符 使用charAt〔方法和length〔打印字符串的最后一個字符 使用indexOf〔方法和substring〔方法打印字符串的第一個單詞.練習(xí)二:編寫一個Java程序,用于 測試兩個字符串StringfirstString="Thisis"和StringsecondString="Thisis";是否相等. 將"hisfather"與其中的firstString字符串連接. 用z替換新字符串中的i.練習(xí)三:編寫一個ExtractString程序,從字符串"SeizetheDay"中提取單詞"the"和"Day".練習(xí)四:使用toCharArray<>判斷一個字符串是否為回文.//回文:asdsa練習(xí)五:判斷電子郵件 1.必須包含@和.而且@只能有一個 2.不能以@或.開頭以及結(jié)尾 3.@必須出現(xiàn)在.之前 indexOf lastIndexOf作業(yè)布置P624-6251-9.課后總結(jié)對于系統(tǒng)包,只需要多寫多練就能夠完全的掌握,從整體上來是說,約85%的人都掌握了這堂課的內(nèi)容.教案編號:15章節(jié)Java常用類授課方式講授+上機教學(xué)目的掌握StringBuffer類.熟練運用Math類中的方法.熟練運用Object類中的方法.熟練運用Class類中的方法.培養(yǎng)學(xué)生的項目展示能力.培養(yǎng)學(xué)生的實際動手能力.培養(yǎng)學(xué)生的自主學(xué)習(xí)能力.教學(xué)重點Object、StringBuilder、Math.教學(xué)難點Object、StringBuilder、Math.時間分配教學(xué)過程Min151010101515105作業(yè)點評及檢查<學(xué)生闡述+老師總結(jié)>作業(yè)講解及點評:由3-6個學(xué)生分別講述上周作業(yè)的實現(xiàn)思路以及展示程序?qū)崿F(xiàn);過程中由老師補充和總結(jié).回顧Lang包是我們常用的工具包包裝類以及包裝類的構(gòu)造方法、valueOf〔方法、parseXxx〔方法;Character類常用靜態(tài)方法:isLetter<charch>、isDigit<charch>、isUpperCase<charch>、isLowerCase<charch>、isWhitespace<charch>String類的常用操作:字符串長度;字符串比較;字符串搜索;提取字符串;更改字符串大小寫;數(shù)據(jù)格式轉(zhuǎn)化.StringBuffer類StringBuffer類用于表示可以修改的字符串;使用+運算符的字符串將自動創(chuàng)建字符串緩沖對象;以下是StringBuffer類的構(gòu)造方法有4種重載方式,以下是常用的幾個:Math類Math類中提供了一系列基本數(shù)學(xué)運算和幾何運算的方法;該類的構(gòu)造方法被修飾為private,因此不能實例化;該類中的所有方法都是靜態(tài)的,可以通過類名直接調(diào)用;該類被修飾為final,因此沒有子類.Object類的常用方法Class類Java應(yīng)用程序?qū)嶋H上都是由一個個對象組成,這些對象分別屬于什么類,是從哪個類繼承而來,這一系列的信息都是由Class類的實例來記錄的;Class類的實例用于記錄對象的類描述信息;如果在程序運行時,需要檢索某個對象的相關(guān)類信息,可以調(diào)用該對象的getClass方法來獲得記錄其描述信息的Class類實例;Class類沒有公共的構(gòu)造方法,無法通過new運算符實例化,只能通過對象的getClass方法,或是通過Class的靜態(tài)方法forName來獲得實例.上機實驗練習(xí)一:回文串編寫程序CheckPalindrome,從命令行參數(shù)中讀入一個字符串,檢查該字符串是否為回文串,回文串的特點是順序讀和倒序讀都是一樣.例如,mom、dad和atoyota都是回文串.練習(xí)二:猜數(shù)字 編寫程序Guess,隨機地產(chǎn)生一個整數(shù),表示從A到Z的字母.之后,通過命令行參數(shù)讀入一個字母,試圖猜出隨機產(chǎn)生的字母.無論猜得是否正確,都打印出相應(yīng)的信息.另外,如果猜對了,程序退出.作業(yè)布置預(yù)習(xí)java.util包.課后總結(jié)通過一系列的案例加課后練習(xí),來讓同學(xué)掌握課堂上所學(xué)的內(nèi)容;整體效果良好.教案編號:16章節(jié)java.util包授課方式講授+上機教學(xué)目的了解java.util包.能夠熟練運用如下類進行Java編程〔Date類、Calendar類、Random類掌握集合類<List、Map>的使用.能夠熟練使用Collection接口及其實現(xiàn)類<ArrayList類、LinkedList類、Vector類>.掌握HashMap類培養(yǎng)學(xué)生的個人表達能力、項目展示能力.培養(yǎng)學(xué)生的個人動手能力.培養(yǎng)學(xué)生的邏輯思維能力.教學(xué)重點List、Map、Vector.教學(xué)難點List、Map、Vector.時間分配教學(xué)過程Min1545120作業(yè)點評及檢查<學(xué)生闡述+老師總結(jié)>作業(yè)講解及點評:由2-4個學(xué)生分別講述上周作業(yè)的實現(xiàn)思路以及展示程序?qū)崿F(xiàn);過程中由老師補充和總結(jié).Java.util包java.util包簡介.java.util包是Java內(nèi)置的一個工具包,其中包含一系列常用的工具類;如處理日期和日歷的類以及一些集合類;java.util包不會默認導(dǎo)入,如果要使用到該包中的類,則必須在程序的開始部分顯式地聲明如下語句: importjava.util.*;Date類Date類對象用來表示時間和日期;該類提供一系列操縱日期和時間各組成部分的方法;Date類最多的用途是獲取系統(tǒng)當(dāng)前的日期和時間.Calendar類Calendar類也是用來操作日期和時間的類,但它可以以整數(shù)形式檢索類似于年、月、日之類的信息;Calendar類是抽象類,無法實例化,要得到該類對象只能通過調(diào)用getInstance方法來獲得;Calendar對象提供為特定語言或日歷樣式實現(xiàn)日期格式化所需的所有時間字段.Random類Random類專門用來生成隨機數(shù);該類的構(gòu)造方法有2種重載方式.集合集合是將多個元素組成一個單元的對象;類似于數(shù)組,但數(shù)組最大的缺點是:長度受到限制〔一經(jīng)創(chuàng)建,就不可再改變,并且只能存放相同數(shù)據(jù)類型的元素;集合的長度沒有限制,可以存放任意多的元素,而且元素的數(shù)據(jù)類型也可以不同;集合還提供一系列操縱數(shù)據(jù)的方法,如存儲、檢索等等.上機實驗<一>.使用Date類求獲取當(dāng)前日期,分別使用下以下格式打印: 1>按日期的原格式打印. 2>"當(dāng)前時間是:xxxx年xx月xx日星期X北京時間" 3>"當(dāng)前時間是:xxxx年xx月xx日時:分:秒"4>按歐美日期習(xí)慣輸出當(dāng)前日期<"月-日-年時:分:秒"><二>使用Date的Date<intyear,intmonth,intdate>構(gòu)造方法,構(gòu)造當(dāng)前日期,打印輸出.求出當(dāng)前日期自1970年1月1日起的已經(jīng)有多少天了.<三>.使用Calendar類,編寫程序求出你的出生的那一天是星期幾.并求出你出生到今天一共有多少天,打印輸出.<四>.使用Calendar類,打印出當(dāng)前月的日歷表,效果圖如下:<五>.利用Random類,隨機生成一個int隨機數(shù),long隨機數(shù),float隨機數(shù),double隨機數(shù),高斯隨機數(shù),并在屏幕上隨機打印.<六>.使用Random類模擬搖色子游戲.共5粒色子,分別顯示出5粒色子的點數(shù),和加起來一共是多少點.打印輸出.作業(yè)布置編寫程序,依次應(yīng)用ArrayList和LinkedList實現(xiàn)棧和隊列的功能.提示:〔a使用ArrayList和LinkedList模擬棧和隊列.〔b使用push和pop方法模擬進棧和出棧操作.編寫一個程序,讀入一系列名字并將它們存儲在LinkedList和ArrayList中,并實現(xiàn)以下功能:〔a允許用戶通過名字進行查找.〔b允許用戶將姓名進行排序.〔c允許用戶刪除指定姓名.課
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 施工現(xiàn)場施工許可證制度
- 施工日志填寫樣本的格式要求
- 設(shè)計思維在醫(yī)療技術(shù)創(chuàng)新中的應(yīng)用
- 智能科技在家?;又械膽?yīng)用與前景展望
- DB4415T 50-2025黑芝麻種植技術(shù)規(guī)程
- 個人貸款合同協(xié)議書范本
- 親屬間房產(chǎn)贈與合同
- 二手建筑設(shè)備買賣合同樣本
- 乒乓球館租賃合同書范本
- 不可撤銷勞動合同案例析:勞動者權(quán)益保障
- 糖尿病足的多學(xué)科聯(lián)合治療
- 小龍蝦啤酒音樂節(jié)活動策劃方案課件
- 運動技能學(xué)習(xí)與控制課件第五章運動中的中樞控制
- 財務(wù)部規(guī)范化管理 流程圖
- 蘇教版2023年小學(xué)四年級數(shù)學(xué)下冊教學(xué)計劃+教學(xué)進度表
- 小學(xué)作文指導(dǎo)《難忘的一件事》課件
- 斷絕關(guān)系協(xié)議書范文參考(5篇)
- 量子力學(xué)課件1-2章-波函數(shù)-定態(tài)薛定諤方程
- 最新變態(tài)心理學(xué)課件
- 【自考練習(xí)題】石家莊學(xué)院概率論與數(shù)理統(tǒng)計真題匯總(附答案解析)
- 農(nóng)村集體“三資”管理流程圖
評論
0/150
提交評論