




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、傳智播客Java基礎(chǔ)入門教學(xué)設(shè)計課程名稱: Java基礎(chǔ)入門 授課年級: 2014年級 授課學(xué)期: 2014學(xué)年第一學(xué)期教師姓名: 某某老師 2014年02月09日課題名稱第3章 面向?qū)ο笊嫌媱潓W(xué)時6 課時內(nèi)容分析Java是一種面向?qū)ο蟮恼Z言,認(rèn)識面向?qū)ο蟮木幊趟枷雽τ贘ava學(xué)習(xí)至關(guān)重要。在面向?qū)ο笾校袃蓚€重要的概念,分別是類和對象,本課程將對類和對象的基本知識進(jìn)行詳細(xì)講解,并結(jié)合程序?qū)W習(xí)如何使用面向?qū)ο蟮乃枷腴_發(fā)Java應(yīng)用教學(xué)目標(biāo)及基本要求要求學(xué)生理解面向?qū)ο蟮某绦蛟O(shè)計思想,掌握類的設(shè)計、對象的創(chuàng)建、類的封裝、構(gòu)造方法的定義及其重載、this和static關(guān)鍵字的使用以及單例設(shè)計模式,
2、了解垃圾回收機(jī)制、內(nèi)部類和文檔注釋的的使用重點(diǎn)及措施教學(xué)重點(diǎn):類的定義、對象的創(chuàng)建、類的封裝、構(gòu)造方法的定義和重載、this和static關(guān)鍵字的使用、單例設(shè)計模式難點(diǎn)及措施教學(xué)難點(diǎn):類與對象的創(chuàng)建和使用、構(gòu)造方法重載的規(guī)則、this關(guān)鍵字和static關(guān)鍵字的使用、單例設(shè)計模式教學(xué)方式教學(xué)采用教師課堂講授為主,使用教學(xué)PPT講解教學(xué)過程第一課時(面向?qū)ο蟮母拍?、類與對象、類的定義、對象的創(chuàng)建與使用)l 面向?qū)ο蟮母拍?#178; 什么是面向?qū)ο竺嫦驅(qū)ο笫且环N符合人類思維習(xí)慣的編程思想?,F(xiàn)實生活中存在各種形態(tài)不同的事物,這些事物之間存在著各種各樣的聯(lián)系。在程序中使用對象來映射現(xiàn)實中的事物,使用
3、對象的關(guān)系來描述事物之間的聯(lián)系,這種思想就是面向?qū)ο蟆?#178; 面向?qū)ο蟮暮锰幫嫦蜻^程進(jìn)行比較,面向?qū)ο蟮暮锰幨牵?代碼的復(fù)用性提高 使用者無須關(guān)心具體的實現(xiàn)細(xì)節(jié) 轉(zhuǎn)變程序員的角色,更加符合人的思維習(xí)慣² 面向?qū)ο蟮奶卣?封裝性: 繼承性: 多態(tài)性:l 類與對象的關(guān)系² 用具體的例子引導(dǎo)。例如:玩具和玩具模型的關(guān)系。在上面的圖中,玩具模型可看作是一個類,一個個玩具可看作對象。玩具是由玩具模型創(chuàng)建出來的,同理,對象是根據(jù)類創(chuàng)建出來的,并且一個類可以創(chuàng)建多個對象。² 總結(jié)類用于描述多個對象的共同特征,它是對象的模板。對象用于描述現(xiàn)實中的個體,它是類的實例。l 類
4、的定義² 為什么定義類 由于對象是虛擬出來的東西,是看不見摸不著的,我們需要在程序中使用對象,就必須找到描述對象的方式,定義一個類就可以解決這個問題。² 類的定義 將一系列特征相似的對象中的共同屬性和方法抽象出來用一段特殊的代碼來進(jìn)行描述,這段特殊的代碼我們就稱之為一個類。類使用class關(guān)鍵字來進(jìn)行定義,后面跟上類的名稱。² 定義一個類,并針對這個類進(jìn)行講解。class Person int age; / 定義int類型的變量age/ 定義 speak() 方法void speak() System.out.println("大家好,我今年"
5、 + age + "歲!");其中,Person是類名,age是成員變量,speak()是成員方法。在成員方法speak()中可以直接訪問成員變量age。l 對象的創(chuàng)建與使用² 對象的產(chǎn)生應(yīng)用程序想要完成具體的功能,僅有類是遠(yuǎn)遠(yuǎn)不夠的,還需要根據(jù)類創(chuàng)建實例對象。在Java程序中可以使用new關(guān)鍵字來創(chuàng)建對象,具體格式如下:類名 對象名稱 = new 類名();例如,創(chuàng)建Person類的實例對象代碼如下:Person p = new Person();其中“new Person()”用于創(chuàng)建Person類的一個實例對象,“Person p”則是聲明了一個Person
6、類型的變量p。中間的等號用于將Person對象在內(nèi)存中的地址賦值給變量p,這樣變量p便持有了對象的引用。在內(nèi)存中變量p和對象之間的引用關(guān)系如下圖所示。² 對象的使用在創(chuàng)建Person對象后,可以通過對象的引用來訪問對象所有的成員,具體格式如下:對象引用.對象成員 通過一段代碼來演示對象的使用情況。Person p1 = new Person();Person p2 =new Person();p1.age = 18;p1.speak();p2.speak();執(zhí)行完畢后,對象在內(nèi)存中的狀態(tài)如圖所示。² 成員變量的初始化當(dāng)一個對象被創(chuàng)建時,Java虛擬機(jī)會對其中各種類型的成員
7、變量自動進(jìn)行初始化賦值?;緮?shù)據(jù)類型初始化值為0,引用數(shù)據(jù)類型初始化值為null,具體如下表所示。² 對象的生命周期每個創(chuàng)建的對象都有自己的生命周期,對象只能在其有效的生命周期被使用。當(dāng)沒有任何變量引用這個對象時,它將成為垃圾對象,不能再被使用。對象變成垃圾的第一種情況:對象變成垃圾的第二種情況:第二課時(類的設(shè)計、類的封裝、構(gòu)造方法的定義和重載、this關(guān)鍵字)l 類的設(shè)計在Java中,對象是通過類創(chuàng)建出來的。因此,在程序設(shè)計時,最重要的就是類的設(shè)計。例如,要在程序中描述一個學(xué)校所有學(xué)生的信息,可以先設(shè)計一個學(xué)生類(Student),在這個類中定義兩個屬性name、age分別表示學(xué)
8、生的姓名和年齡,定義一個方法introduce()表示學(xué)生做自我介紹,具體代碼如下:public class Student String name;int age;public void introduce() / 方法中打印屬性name和age的值System.out.println("大家好,我叫" + name + ",我今年" + age + "歲!");l 類的封裝² 為什么要封裝類根據(jù)上述定義好的Student類創(chuàng)建對象,并訪問對象成員,如下所示:public class Example03 public st
9、atic void main(String args) Student stu = new Student();/ 創(chuàng)建學(xué)生對象 = "李芳" / 為對象的name屬性賦值stu.age = -30; / 為對象的age屬性賦值roduce(); / 調(diào)用對象的方法程序的運(yùn)行結(jié)果如下:當(dāng)把程序中的年齡賦值為一個負(fù)數(shù)-30時,雖然程序不會報錯,但在現(xiàn)實生活中明顯是不合理的。為了解決年齡不能為負(fù)數(shù)的問題,在設(shè)計一個類時,應(yīng)該對成員變量的訪問作出一些限定,不允許外界隨意訪問。這就需要實現(xiàn)類的封裝。² 什么是類的封裝所謂類的封裝是指在定義一個
10、類時,將類中的屬性私有化,即使用private關(guān)鍵字來修飾,私有屬性只能在它所在類中被訪問,為了能讓外界訪問私有屬性,需要提供一些使用public修飾的公有方法,其中包括用于獲取屬性值的getXxx方法和設(shè)置屬性值的setXxx方法。l 構(gòu)造方法的定義² 為什么需要構(gòu)造方法實例化一個類的對象后,如果要為這個對象中的屬性賦值,則必須要通過直接訪問對象的屬性或調(diào)用setXxx方法的方式才可以。如果需要在實例化對象的同時就為這個對象的屬性進(jìn)行賦值,可以通過構(gòu)造方法來實現(xiàn)。² 構(gòu)造方法的定義 函數(shù)的名稱與類相同 沒有返回值類型聲明 不能在方法中使用return語句返回一個值注意:沒
11、有返回值類型聲明不等同于“void”,void也是一種返回值類型聲明,那就是沒有返回值。l 構(gòu)造方法的重載與普通方法一樣,構(gòu)造方法也可以重載,在一個類中可以定義多個構(gòu)造方法,只要每個構(gòu)造方法的參數(shù)類型或參數(shù)個數(shù)不同即可。l 構(gòu)造方法的一些細(xì)節(jié) 每一個類都至少有一個構(gòu)造函數(shù),如果在定義類時,沒有顯式地聲明 任何構(gòu)造函數(shù),系統(tǒng)會自動為這個類創(chuàng)建一個無參的構(gòu)造函數(shù),里面沒有任何代碼。 在定義構(gòu)造方法時,如果沒有特殊需要,都應(yīng)該使用public關(guān)鍵字修飾。l this關(guān)鍵字² this關(guān)鍵字的作用可以解決成員變量與局部變量名稱沖突的問題。² this關(guān)鍵字的三種用法 通過this關(guān)
12、鍵字可以明確地去訪問一個類的成員變量 通過this關(guān)鍵字調(diào)用成員方法。 構(gòu)造方法是在實例化對象時被Java虛擬機(jī)自動調(diào)用的,在程序中不能像調(diào)用其它方法一樣去調(diào)用構(gòu)造方法,但可以在一個構(gòu)造方法中使用“this(參數(shù)1,參數(shù)2)”的形式來調(diào)用其它的構(gòu)造方法。² 使用this時需要注意的問題 只能在構(gòu)造方法中使用this調(diào)用其它的構(gòu)造方法,不能在成員方法中使用。 在構(gòu)造方法中,使用this調(diào)用構(gòu)造方法的語句必須位于第一行,且只能出現(xiàn)一次。 不能在一個類的兩個構(gòu)造方法中使用this互相調(diào)用。第三課時(垃圾回收、靜態(tài)變量、靜態(tài)方法、靜態(tài)代碼塊、單例模式)l 垃圾回收機(jī)制對象在沒有任何引用可以到
13、達(dá)時,生命周期結(jié)束,成為垃圾。垃圾對象是不會被馬上回收的,只有JVM檢測到內(nèi)存中的垃圾堆積到一定程度時才會回收。如果我們不希望等到這個時候回收,可以使用System.gc()來人工回收垃圾。當(dāng)一個對象在內(nèi)存中被釋放時,它的finalize()方法會被自動調(diào)用。l static關(guān)鍵字static關(guān)鍵字可以修飾類的成員,如成員變量、成員方法以及代碼塊等l 靜態(tài)變量² 定義被static修飾的變量稱為靜態(tài)變量。² 引用方式靜態(tài)變量可以使用“類名.變量名”的方式訪問² 特點(diǎn)靜態(tài)變量在類加載的時候就完成了初始化,它可以被所有實例所共享。² 注意的問題static關(guān)
14、鍵字只能用于修飾成員變量,不能用于修飾局部變量。l 靜態(tài)方法² 定義被static修飾的方法稱為靜態(tài)方法。² 引用方式靜態(tài)方法可以使用“類名.方法名”的方式訪問。² 注意的問題 靜態(tài)方法內(nèi)部不能直接訪問外部非靜態(tài)的成員。 在靜態(tài)方法內(nèi)部,只能通過創(chuàng)建該類的對象來訪問外部的非static的方法。 在靜態(tài)方法中,不能使用this關(guān)鍵字。l 靜態(tài)代碼塊² 定義被static修飾的代碼塊稱為靜態(tài)代碼塊。² 特點(diǎn)靜態(tài)代碼塊在類加載的時候就執(zhí)行了,它一般用于初始化類的成員變量。l 單例模式² 什么是設(shè)計模式針對某一問題的最佳解決方案,我們在程序中
15、稱之為設(shè)計模式。設(shè)計模式是在大量的實踐中總結(jié)和理論化之后優(yōu)選的代碼結(jié)構(gòu)、編程風(fēng)格、以及解決問題的思考方式。設(shè)計模式就像是經(jīng)典的棋譜,不同的棋局,我們用不同的棋譜,免得我們自己再去思考和摸索。² 單例設(shè)計模式的定義 所謂類的單例設(shè)計模式,就是采取一定的方法保證在整個軟件系統(tǒng)中,某個類只能存在一個對象實例,并且該類只提供一個取得其對象實例的方法。² 單例設(shè)計模式的特征 將構(gòu)造方法私有化。 對外提供一個公有的get方法,讓別人通過此方法來獲得實例。 由于不能創(chuàng)建對象,所以get方法必須靜態(tài),這樣別人才能使用“類名.方法名”的方式訪問。 需要保證單例,所以要提供一個靜態(tài)變量記住一個
16、實例,用于返回。 該實例應(yīng)該私有,禁止外界通過直接訪問進(jìn)行改動。² 單例模式的示例代碼下面是一個實現(xiàn)了單例設(shè)計模式的程序。class Single / 自己創(chuàng)建一個對象private static Single INSTANCE = new Single(); private Single() / 私有化構(gòu)造方法/ 提供返回該對象的靜態(tài)方法public static Single getInstance() return INSTANCE;第四課時(成員內(nèi)部類、靜態(tài)內(nèi)部類、方法內(nèi)部類、Java的幫助文檔)l 成員內(nèi)部類² 定義在類中定義的類稱為成員內(nèi)部類。在Java中,允許
17、在一個類的內(nèi)部定義類,這樣的類稱作內(nèi)部類² 引用方式 外部類名.內(nèi)部類名 變量名 = new 外部類名().new 內(nèi)部類名();² 成員內(nèi)部類特點(diǎn)內(nèi)部類可以直接訪問外部類的成員,而外部類不能直接訪問內(nèi)部類的 成員。l 靜態(tài)內(nèi)部類² 定義被static修飾的內(nèi)部類稱為靜態(tài)內(nèi)部類。² 引用方式外部類名.內(nèi)部類名 變量名 = new 外部類名.內(nèi)部類名();² 注意的問題 非靜態(tài)的內(nèi)部類中不能聲明靜態(tài)的成員 static修飾的內(nèi)部類中可以定義非static修飾的成員 static修飾的內(nèi)部類中不能訪問外部非static的成員l 方法內(nèi)部類²
18、; 定義在成員方法中定義的類稱為方法內(nèi)部類。² 引用方式 內(nèi)部類名 變量名 = new 內(nèi)部類名();² 注意的問題 方法內(nèi)部類只能在當(dāng)前方法中使用 方法內(nèi)部類不能訪問方法中定義的局部變量,除非這個局部變量被聲明為finall Java幫助文檔² 文檔注釋的格式文檔注釋以“/*”開始,以“*/”標(biāo)志結(jié)束。² 生成文檔的命令javadoc -d . -version -author Person.java² 文檔注釋中某些特殊的標(biāo)記說明author:用于對類的說明,表示這個程序的作者version:用于對類說明,表示這個程序的開發(fā)版本號param
19、:用于對方法的說明,表示方法上定義的參數(shù)以及參數(shù)對應(yīng)的說明return:用于對方法的說明,表示方法的返回值代表的意義² JDK幫助文檔的分類 Oracle公司官方發(fā)布的HTML格式的JDK幫助文檔,可以從Oracle公司的官方網(wǎng)站下載。 Java愛好者根據(jù)官方文檔制作而成的CHM格式的JDK幫助文檔,它具有獨(dú)特的搜索功能和不同的語言版本,被許多開發(fā)者所鐘愛。第五課時上機(jī)練習(xí)1(總結(jié),測試題)1、 總結(jié)本章內(nèi)容2、 通過題庫發(fā)放相關(guān)測試題,檢查學(xué)生掌握情況。上機(jī)練習(xí)主要針對本章中需要重點(diǎn)掌握的知識點(diǎn),以及在程序中容易出錯的內(nèi)容進(jìn)行練習(xí),通過上機(jī)練習(xí)可以考察同學(xué)對知識點(diǎn)的掌握情況,對代碼
20、的熟練程度。上機(jī)一:(考察知識點(diǎn)為類的定義)請按照以下要求設(shè)計一個Student類。要求如下:1) Student類中定義兩個成員變量name和age,分別表示學(xué)生的姓名和年齡,其中,變量name是String類型,初始值為“張三”,變量age是int類型,初始值為19。2) Student類中定義一個成員方法speak(),表示學(xué)生說話的行為,在方法中訪問name和age兩個成員變量,輸出學(xué)生的姓名和年齡。 上機(jī)二:(考察知識點(diǎn)為類的封裝)請按照以下要求設(shè)計一個Student類。要求如下:1) 針對上機(jī)一中的Student類進(jìn)行修改,使用封裝的方式,將name屬性和age屬性使用privat
21、e關(guān)鍵字修飾為私有屬性,并對外提供公有的getName()、setName(String n)、getAge()和setAge(int a)方法。2) 在setAge(int a)方法中對傳入的參數(shù)進(jìn)行檢查,如果傳入的參數(shù)為負(fù)數(shù),則輸出“設(shè)置的年齡不合法”,如果不為負(fù)數(shù),則輸出設(shè)置的age值。3) 定義一個測試類,在main()方法中創(chuàng)建Student對象,并調(diào)用對象的setName(String n)和setAge(int a)方法來設(shè)置的name屬性和age屬性值,然后并調(diào)用speak()方法輸出相應(yīng)信息。上機(jī)三:(考察知識點(diǎn)為構(gòu)造方法重載)請按照以下要求設(shè)計一個Student類。要求如下:1) 在St
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 佛山到寧波中考數(shù)學(xué)試卷
- 肝炎病毒分類介紹課件
- 電子廠面試數(shù)學(xué)試卷
- 撫州9年級上冊數(shù)學(xué)試卷
- 肝膽疾病的早期預(yù)防和小手術(shù)
- 二年級期末沖刺數(shù)學(xué)試卷
- 高州市一模初中數(shù)學(xué)試卷
- 連云港市東??h招聘事業(yè)單位人員考試真題2024
- 2024年貴港市平南縣自然資源局招聘筆試真題
- 肌營養(yǎng)不良癥的綜合護(hù)理
- 天津市部分區(qū)2023-2024學(xué)年高一學(xué)期期末生物試卷
- 人教版五年級英語下冊期末試卷及答案
- 二年級下冊期末無紙筆測評方案
- CJJ89-2012 城市道路照明工程施工及驗收規(guī)程
- 花店上班勞動合同范本共
- 2024年信息科技中考考試題庫及答案(模擬)
- 原發(fā)性肝癌教案(勿刪)
- 20G520-1-2鋼吊車梁(6m-9m)2020年合訂本
- 電梯維護(hù)保養(yǎng)規(guī)則(TSG T5002-2017)
- 義務(wù)教育數(shù)學(xué)課程標(biāo)準(zhǔn)(2022年版)解讀與案例分析
- 弘揚(yáng)教育家精神主題課件
評論
0/150
提交評論