版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、北京傳智播客教育 第四章面向?qū)ο髣⒁獗菊聝?nèi)容面向?qū)ο笏枷腩惻c對象及其使用對象的內(nèi)存圖成員變量和局部變量的區(qū)別匿名對象封裝(private)this關(guān)鍵字構(gòu)造方法static關(guān)鍵字北京傳智播客教育 面向?qū)ο笏枷胍肭懊嫖覀冎v過數(shù)組,當(dāng)有多個數(shù)組都需要遍歷時,我們可以將遍歷的代碼封裝到方法中,需要遍歷時,就調(diào)用相應(yīng)的方法即可,提高代碼的復(fù)用性。在對數(shù)組遍歷的基礎(chǔ)上繼續(xù)增加需求,比如獲取最值,數(shù)值逆序等,同樣需要將這些功能封裝到相應(yīng)的方法中。這樣繼續(xù)封裝會發(fā)現(xiàn)方法越來越多,于是就想能不能將這些方法繼續(xù)進行封裝呢?通過前面的講解我們知道類是可以存放方法的,所以,我們就考慮使用類封裝來這多個方法,將來再
2、做數(shù)組的操作時,不用去找具體的方法,先找到這個類,然后使用這個類中的方法。這就是面向?qū)ο笏枷氲木幊谭绞?。北京傳智播客教?面向過程思想概述我們來回想一下,這幾天我們完成一個需求的步驟:首先是搞清楚我們要做什么,然后在分析怎么做,最后我們再代碼體現(xiàn)。一步一步去實現(xiàn),而具體的每一步都需要我們?nèi)崿F(xiàn)和操作。這些步驟相互調(diào)用和協(xié)作,完成我們的需求。在上面的每一個具體步驟中我們都是參與者,并且需要面對具體的每一個步驟和過程,這就是面向過程最直接的體現(xiàn)。那么什么是面向過程開發(fā)呢? 面向過程開發(fā),其實就是面向著具體的每一個步驟和過程,把每一個步驟和過程完成,然后由這些功能方法相互調(diào)用,完成需求。面向過程的代
3、表語言:C語言北京傳智播客教育 面向?qū)ο笏枷敫攀霎?dāng)需求單一,或者簡單時,我們一步一步去操作沒問題,并且效率也挺高??呻S著需求的更改,功能的增多,發(fā)現(xiàn)需要面對每一個步驟很麻煩了,這時就開始思索,能不能把這些步驟和功能在進行封裝,封裝時根據(jù)不同的功能,進行不同的封裝,功能類似的封裝在一起。這樣結(jié)構(gòu)就清晰了很多。用的時候,找到對應(yīng)的類就可以了。這就是面向?qū)ο蟮乃枷搿=酉聛砦覀兛纯疵嫦驅(qū)ο蟮降资鞘裁?北京傳智播客教育 面向?qū)ο笏枷敫攀雒嫦驅(qū)ο笏枷敫攀雒嫦驅(qū)ο笫腔诿嫦蜻^程的編程思想面向?qū)ο笏枷胩攸c是一種更符合我們思想習(xí)慣的思想可以將復(fù)雜的事情簡單化將我們從執(zhí)行者變成了指揮者角色發(fā)生了轉(zhuǎn)換北京傳智播客教
4、育 面向?qū)ο笏枷肱e例面向?qū)ο笏枷肱e例買電腦吃飯洗衣服萬事萬物皆對象面向過程思想和面向?qū)ο笏枷氲拇a舉例把大象裝進冰箱北京傳智播客教育 面向?qū)ο箝_發(fā),設(shè)計,特征面向?qū)ο箝_發(fā)就是不斷的創(chuàng)建對象,使用對象,指揮對象做事情。面向?qū)ο笤O(shè)計其實就是在管理和維護對象之間的關(guān)系。面向?qū)ο筇卣鞣庋b(encapsulation)繼承(inheritance)多態(tài)(polymorphism)北京傳智播客教育 類與對象關(guān)系我們學(xué)習(xí)編程語言,就是為了模擬現(xiàn)實世界的事物,實現(xiàn)信息化。比如:去超市買東西的計費系統(tǒng),去銀行辦業(yè)務(wù)的系統(tǒng)。我們?nèi)绾伪硎疽粋€現(xiàn)實世界事物呢:屬性就是該事物的描述信息行為就是該事物能夠做什么舉例:學(xué)生
5、事物我們學(xué)習(xí)的Java語言最基本單位是類,所以,我們就應(yīng)該把事物用一個類來體現(xiàn)。北京傳智播客教育 類與對象關(guān)系類:是一組相關(guān)的屬性和行為的集合對象:是該類事物的具體體現(xiàn)舉例:類學(xué)生對象班長就是一個對象北京傳智播客教育 類與對象(圖例)類與對象的關(guān)系如圖北京傳智播客教育 圖紙汽車汽車汽車類的定義現(xiàn)實世界的事物屬性人的身高,體重等行為人可以學(xué)習(xí),吃飯等Java中用class描述事物也是如此成員變量就是事物的屬性成員方法就是事物的行為定義類其實就是定義類的成員(成員變量和成員方法)北京傳智播客教育 類與對象案例學(xué)生類(講解)如何定義按照事物到類的過程一步步分析如何使用創(chuàng)建對象:類名 對象名 = ne
6、w 類名();對象名.成員變量對象名.成員方法手機類(學(xué)生練習(xí))北京傳智播客教育 對象內(nèi)存圖1個對象的內(nèi)存圖一個對象的基本初始化過程2個對象的內(nèi)存圖方法的共用3個對象的內(nèi)存圖其中有兩個引用指向同一個對象北京傳智播客教育 成員變量和局部變量的區(qū)別在類中的位置不同成員變量 類中方法外局部變量 方法內(nèi)或者方法聲明上在內(nèi)存中的位置不同成員變量 堆內(nèi)存局部變量 棧內(nèi)存生命周期不同成員變量 隨著對象的存在而存在,隨著對象的消失而消失局部變量 隨著方法的調(diào)用而存在,隨著方法的調(diào)用完畢而消失初始化值不同成員變量 有默認(rèn)的初始化值局部變量 沒有默認(rèn)的初始化值,必須先定義,賦值,才能使用。北京傳智播客教育 形式參
7、數(shù)問題基本類型作為形式參數(shù)引用類型作為形式參數(shù)北京傳智播客教育 匿名對象匿名對象:就是沒有名字的對象。是對象的一種簡化表示形式匿名對象的兩種使用情況對象調(diào)用方法僅僅一次的時候作為實際參數(shù)傳遞北京傳智播客教育 封裝概述封裝概述是指隱藏對象的屬性和實現(xiàn)細(xì)節(jié),僅對外提供公共訪問方式。好處:隱藏實現(xiàn)細(xì)節(jié),提供公共的訪問方式提高了代碼的復(fù)用性提高安全性。封裝原則:將不需要對外提供的內(nèi)容都隱藏起來。把屬性隱藏,提供公共方法對其訪問。北京傳智播客教育 private關(guān)鍵字private關(guān)鍵字:是一個權(quán)限修飾符??梢孕揎棾蓡T(成員變量和成員方法)被private修飾的成員只在本類中才能訪問。private最常
8、見的應(yīng)用:把成員變量用private修飾提供對應(yīng)的getXxx()/setXxx()方法一個標(biāo)準(zhǔn)的案例的使用北京傳智播客教育 this關(guān)鍵字this:代表所在類的對象引用記?。悍椒ū荒膫€對象調(diào)用,this就代表那個對象什么時候使用this呢?局部變量隱藏成員變量其他用法后面和super一起講解北京傳智播客教育 構(gòu)造方法構(gòu)造方法作用概述給對象的數(shù)據(jù)進行初始化構(gòu)造方法格式方法名與類名相同沒有返回值類型,連void都沒有沒有具體的返回值構(gòu)造方法注意事項如果你不提供構(gòu)造方法,系統(tǒng)會給出默認(rèn)構(gòu)造方法如果你提供了構(gòu)造方法,系統(tǒng)將不再提供構(gòu)造方法也是可以重載的北京傳智播客教育 類的成員方法成員方法其實就是我
9、們前面講過的方法方法具體劃分:根據(jù)返回值有明確返回值方法返回void類型的方法根據(jù)形式參數(shù)無參方法帶參方法北京傳智播客教育 一個基本類的標(biāo)準(zhǔn)代碼寫法類成員變量構(gòu)造方法無參構(gòu)造方法帶參構(gòu)造方法成員方法getXxx()setXxx()給成員變量賦值的方式無參構(gòu)造方法+setXxx()帶參構(gòu)造方法北京傳智播客教育 一個基本類的標(biāo)準(zhǔn)代碼案例標(biāo)準(zhǔn)的學(xué)生類(講解)感覺調(diào)用getXxx()輸出學(xué)生信息比較麻煩,加入一個方法show(),輸出學(xué)生對象的成員變量信息。標(biāo)準(zhǔn)的手機類(練習(xí))注意目前的代碼是為了練習(xí)的一種標(biāo)準(zhǔn)格式給成員變量賦值有兩種方式,可以只寫一種如果不單獨獲取數(shù)據(jù),可以不寫getXxx()方法北
10、京傳智播客教育 類的初始化過程Student s = new Student();在內(nèi)存中做了哪些事情?加載Student.class文件進內(nèi)存在棧內(nèi)存為s開辟空間在堆內(nèi)存為學(xué)生對象開辟空間對學(xué)生對象的成員變量進行默認(rèn)初始化對學(xué)生對象的成員變量進行顯示初始化通過構(gòu)造方法對學(xué)生對象的成員變量賦值學(xué)生對象初始化完畢,把對象地址賦值給s變量北京傳智播客教育 面向?qū)ο缶毩?xí)定義一個類Demo,其中定義一個求兩個數(shù)據(jù)和的方法,定義一個測試了Test,進行測試。定義一個長方形類,定義 求周長和面積的方法,然后定義一個測試了Test2,進行測試。定義一個員工類,自己分析出幾個成員,然后給出成員變量,構(gòu)造方法,
11、getXxx()/setXxx()方法,以及一個顯示所有成員信息的方法。并測試。定義一個類MyMath,提供基本的加減乘除功能,然后進行測試。北京傳智播客教育 static關(guān)鍵字可以修飾成員變量和成員方法static關(guān)鍵字特點隨著類的加載而加載優(yōu)先于對象存在被類的所有對象共享這也是我們判斷是否使用靜態(tài)關(guān)鍵字的條件可以通過類名調(diào)用static關(guān)鍵字注意事項在靜態(tài)方法中是沒有this關(guān)鍵字的靜態(tài)方法只能訪問靜態(tài)的成員變量和靜態(tài)的成員方法北京傳智播客教育 靜態(tài)的內(nèi)存圖靜態(tài)的內(nèi)容存在于方法區(qū)的靜態(tài)區(qū)北京傳智播客教育 靜態(tài)變量和成員變量的區(qū)別所屬不同靜態(tài)變量屬于類,所以也稱為為類變量成員變量屬于對象,所
12、以也稱為實例變量(對象變量)內(nèi)存中位置不同靜態(tài)變量存儲于方法區(qū)的靜態(tài)區(qū)成員變量存儲于堆內(nèi)存內(nèi)存出現(xiàn)時間不同靜態(tài)變量隨著類的加載而加載,隨著類的消失而消失成員變量隨著對象的創(chuàng)建而存在,隨著對象的消失而消失調(diào)用不同靜態(tài)變量可以通過類名調(diào)用,也可以通過對象調(diào)用成員變量只能通過對象名調(diào)用北京傳智播客教育 main方法是靜態(tài)的public static void main(String args) public 被jvm調(diào)用,訪問權(quán)限足夠大。static 被jvm調(diào)用,不用創(chuàng)建對象,直接類名訪問void被jvm調(diào)用,不需要給jvm返回值main 一個通用的名稱,雖然不是關(guān)鍵字,但是被jvm識別Strin
13、g args 以前用于接收鍵盤錄入的演示案例北京傳智播客教育 制作幫助文檔制作工具類ArrayTools制作幫助文檔(API)javadoc -d 目錄 -author -version ArrayTools.java北京傳智播客教育 如何使用幫助文檔找到文檔,打開文檔點擊顯示,找到索引,出現(xiàn)輸入框你應(yīng)該知道你找誰?舉例:Scanner看這個類的結(jié)構(gòu)(需不需要導(dǎo)包)成員變量字段構(gòu)造方法構(gòu)造方法成員方法方法看這個類的說看構(gòu)造方法看成員方法然后使用北京傳智播客教育 通過API學(xué)習(xí)Math類Math類概述Math包含用于執(zhí)行基本數(shù)學(xué)運算的方法Math類特點沒有構(gòu)造方法,因為成員都是靜態(tài)的Math類講解一個方法獲取隨機數(shù)獲取1-100之間的隨機數(shù)案例:猜數(shù)字小游戲北京傳智播客教育 代碼塊代碼塊在Java中,使用括起來的代碼被稱為代碼塊,根據(jù)其位置和聲明
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 關(guān)于大學(xué)寒假實習(xí)報告匯編10篇
- 關(guān)于感恩父母演講稿范文合集五篇
- 去年的樹讀后感心得體會
- 總經(jīng)理述職報告8篇
- 除夕話題作文15篇
- 單位老員工辭職報告(合集7篇)
- 大學(xué)生認(rèn)識實習(xí)報告匯編6篇
- 社保離職證明(集錦15篇)
- 學(xué)生作業(yè)檢查記錄表
- 銷售業(yè)務(wù)合作協(xié)議書
- GB/T 45014-2024聚合物基復(fù)合材料層壓板緊固件拉脫阻抗試驗方法
- 傳播學(xué)(東北林業(yè)大學(xué))知到智慧樹章節(jié)答案
- 2024年安全員之A證考試題庫及完整答案(網(wǎng)校專用)
- 統(tǒng)編版2024-2025學(xué)年三年級上冊語文期末情景測試卷 (無答案)
- 2024-2025學(xué)年人教新版九年級上冊數(shù)學(xué)期末復(fù)習(xí)試卷(含詳解)
- Python數(shù)據(jù)科學(xué)方法與實踐(山東聯(lián)盟)知到智慧樹章節(jié)測試課后答案2024年秋山東師范大學(xué)
- 2024年01月11185行政領(lǐng)導(dǎo)學(xué)期末試題答案
- 績效考核辦法1
- 【MOOC】外科護理學(xué)-中山大學(xué) 中國大學(xué)慕課MOOC答案
- 中建爬架施工方案
- 2024年中國甲烷報警儀市場調(diào)查研究報告
評論
0/150
提交評論