




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !北京傳智播客教育 第四章第四章面向?qū)ο竺嫦驅(qū)ο髠髦秋L(fēng)清揚(yáng)高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !本章內(nèi)容l面向?qū)ο笏枷雔類與對(duì)象及其使用l對(duì)象的內(nèi)存圖l成員變量和局部變量的區(qū)別l匿名對(duì)象l封裝(private)lthis關(guān)鍵字l構(gòu)造方法lstatic關(guān)鍵字北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !面向?qū)ο笏枷胍雔前面我們講過數(shù)組,當(dāng)有多個(gè)數(shù)組都需要遍歷時(shí),我們可以將遍歷的代碼封裝到方法中,需要遍歷時(shí),就調(diào)用相應(yīng)的方法即可,提高代碼的復(fù)用性。在對(duì)數(shù)組遍歷的基礎(chǔ)上繼續(xù)增加需求,比如獲取最值,數(shù)值逆序
2、等,同樣需要將這些功能封裝到相應(yīng)的方法中。這樣繼續(xù)封裝會(huì)發(fā)現(xiàn)方法越來越多,于是就想能不能將這些方法繼續(xù)進(jìn)行封裝呢?通過前面的講解我們知道類是可以存放方法的,所以,我們就考慮使用類封裝來這多個(gè)方法,將來再做數(shù)組的操作時(shí),不用去找具體的方法,先找到這個(gè)類,然后使用這個(gè)類中的方法。這就是面向?qū)ο笏枷氲木幊谭绞?。北京傳智播客教?高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !面向過程思想概述l我們來回想一下,這幾天我們完成一個(gè)需求的步驟:首先是搞清楚我們要做什么,然后在分析怎么做,最后我們?cè)俅a體現(xiàn)。一步一步去實(shí)現(xiàn),而具體的每一步都需要我們?nèi)?shí)現(xiàn)和操作。這些步驟相互調(diào)用和協(xié)作,完成我們的需求。
3、l在上面的每一個(gè)具體步驟中我們都是參與者,并且需要面對(duì)具體的每一個(gè)步驟和過程,這就是面向過程最直接的體現(xiàn)。l那么什么是面向過程開發(fā)呢? 面向過程開發(fā),其實(shí)就是面向著具體的每一個(gè)步驟和過程,把每一個(gè)步驟和過程完成,然后由這些功能方法相互調(diào)用,完成需求。l面向過程的代表語言:C語言北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !面向?qū)ο笏枷敫攀鰈當(dāng)需求單一,或者簡(jiǎn)單時(shí),我們一步一步去操作沒問題,并且效率也挺高??呻S著需求的更改,功能的增多,發(fā)現(xiàn)需要面對(duì)每一個(gè)步驟很麻煩了,這時(shí)就開始思索,能不能把這些步驟和功能在進(jìn)行封裝,封裝時(shí)根據(jù)不同的功能,進(jìn)行不同的封裝,功能類似的封裝在
4、一起。這樣結(jié)構(gòu)就清晰了很多。用的時(shí)候,找到對(duì)應(yīng)的類就可以了。這就是面向?qū)ο蟮乃枷?。接下來我們看看面向?qū)ο蟮降资鞘裁?北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !面向?qū)ο笏枷敫攀鰈面向?qū)ο笏枷敫攀鰈面向?qū)ο笫腔诿嫦蜻^程的編程思想l面向?qū)ο笏枷胩攸c(diǎn)l是一種更符合我們思想習(xí)慣的思想l可以將復(fù)雜的事情簡(jiǎn)單化l將我們從執(zhí)行者變成了指揮者l角色發(fā)生了轉(zhuǎn)換北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !面向?qū)ο笏枷肱e例l面向?qū)ο笏枷肱e例l買電腦l吃飯l洗衣服l萬事萬物皆對(duì)象l面向過程思想和面向?qū)ο笏枷氲拇a舉例l把大象裝進(jìn)冰箱北京傳智播客教育 高級(jí)軟件人
5、才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !面向?qū)ο箝_發(fā),設(shè)計(jì),特征l面向?qū)ο箝_發(fā)l就是不斷的創(chuàng)建對(duì)象,使用對(duì)象,指揮對(duì)象做事情。l面向?qū)ο笤O(shè)計(jì)l其實(shí)就是在管理和維護(hù)對(duì)象之間的關(guān)系。l面向?qū)ο筇卣鱨封裝(encapsulation)l繼承(inheritance)l多態(tài)(polymorphism)北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !類與對(duì)象關(guān)系l我們學(xué)習(xí)編程語言,就是為了模擬現(xiàn)實(shí)世界的事物,實(shí)現(xiàn)信息化。比如:去超市買東西的計(jì)費(fèi)系統(tǒng),去銀行辦業(yè)務(wù)的系統(tǒng)。l我們?nèi)绾伪硎疽粋€(gè)現(xiàn)實(shí)世界事物呢:l屬性就是該事物的描述信息l行為就是該事物能夠做什么l舉例:學(xué)生事物l我們
6、學(xué)習(xí)的Java語言最基本單位是類,所以,我們就應(yīng)該把事物用一個(gè)類來體現(xiàn)。北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !類與對(duì)象關(guān)系l類:是一組相關(guān)的屬性和行為的集合l對(duì)象:是該類事物的具體體現(xiàn)l舉例:l類 學(xué)生l對(duì)象班長(zhǎng)就是一個(gè)對(duì)象北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !類與對(duì)象(圖例)l類與對(duì)象的關(guān)系如圖北京傳智播客教育 圖紙汽車汽車汽車高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !類的定義l現(xiàn)實(shí)世界的事物l屬性人的身高,體重等l行為人可以學(xué)習(xí),吃飯等lJava中用class描述事物也是如此l成員變量就是事物的屬性l成員方法就
7、是事物的行為l定義類其實(shí)就是定義類的成員(成員變量和成員方法)北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !類與對(duì)象案例l學(xué)生類(講解)l如何定義l按照事物到類的過程一步步分析l如何使用l創(chuàng)建對(duì)象:l類名 對(duì)象名 = new 類名();l對(duì)象名.成員變量l對(duì)象名.成員方法l手機(jī)類(學(xué)生練習(xí))北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !對(duì)象內(nèi)存圖l1個(gè)對(duì)象的內(nèi)存圖l一個(gè)對(duì)象的基本初始化過程l2個(gè)對(duì)象的內(nèi)存圖l方法的共用l3個(gè)對(duì)象的內(nèi)存圖l其中有兩個(gè)引用指向同一個(gè)對(duì)象北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !成員變
8、量和局部變量的區(qū)別l在類中的位置不同l成員變量 類中方法外l局部變量 方法內(nèi)或者方法聲明上l在內(nèi)存中的位置不同l成員變量 堆內(nèi)存l局部變量 棧內(nèi)存l生命周期不同l成員變量 隨著對(duì)象的存在而存在,隨著對(duì)象的消失而消失l局部變量 隨著方法的調(diào)用而存在,隨著方法的調(diào)用完畢而消失l初始化值不同l成員變量 有默認(rèn)的初始化值l局部變量 沒有默認(rèn)的初始化值,必須先定義,賦值,才能使用。北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !形式參數(shù)問題l基本類型作為形式參數(shù)l引用類型作為形式參數(shù)北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !匿名對(duì)象l匿名對(duì)象:就是沒
9、有名字的對(duì)象。l是對(duì)象的一種簡(jiǎn)化表示形式l匿名對(duì)象的兩種使用情況l對(duì)象調(diào)用方法僅僅一次的時(shí)候l作為實(shí)際參數(shù)傳遞北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !封裝概述l封裝概述l是指隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對(duì)外提供公共訪問方式。l好處:l隱藏實(shí)現(xiàn)細(xì)節(jié),提供公共的訪問方式l提高了代碼的復(fù)用性l提高安全性。l封裝原則:l將不需要對(duì)外提供的內(nèi)容都隱藏起來。l把屬性隱藏,提供公共方法對(duì)其訪問。北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !private關(guān)鍵字lprivate關(guān)鍵字:l是一個(gè)權(quán)限修飾符。l可以修飾成員(成員變量和成員方法)l被priv
10、ate修飾的成員只在本類中才能訪問。lprivate最常見的應(yīng)用:l把成員變量用private修飾l提供對(duì)應(yīng)的getXxx()/setXxx()方法l一個(gè)標(biāo)準(zhǔn)的案例的使用北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !this關(guān)鍵字lthis:代表所在類的對(duì)象引用l記?。簂方法被哪個(gè)對(duì)象調(diào)用,this就代表那個(gè)對(duì)象l什么時(shí)候使用this呢?l局部變量隱藏成員變量l其他用法后面和super一起講解北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !構(gòu)造方法l構(gòu)造方法作用概述l給對(duì)象的數(shù)據(jù)進(jìn)行初始化l構(gòu)造方法格式l方法名與類名相同l沒有返回值類型,連vo
11、id都沒有l(wèi)沒有具體的返回值l構(gòu)造方法注意事項(xiàng)l如果你不提供構(gòu)造方法,系統(tǒng)會(huì)給出默認(rèn)構(gòu)造方法l如果你提供了構(gòu)造方法,系統(tǒng)將不再提供l構(gòu)造方法也是可以重載的北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !類的成員方法l成員方法其實(shí)就是我們前面講過的方法l方法具體劃分:l根據(jù)返回值l有明確返回值方法l返回void類型的方法l根據(jù)形式參數(shù)l無參方法l帶參方法北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !一個(gè)基本類的標(biāo)準(zhǔn)代碼寫法l類l成員變量l構(gòu)造方法l無參構(gòu)造方法l帶參構(gòu)造方法l成員方法lgetXxx()lsetXxx()l給成員變量賦值的方式l無參
12、構(gòu)造方法+setXxx()l帶參構(gòu)造方法北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !一個(gè)基本類的標(biāo)準(zhǔn)代碼案例l標(biāo)準(zhǔn)的學(xué)生類(講解)l感覺調(diào)用getXxx()輸出學(xué)生信息比較麻煩,加入一個(gè)方法show(),輸出學(xué)生對(duì)象的成員變量信息。l標(biāo)準(zhǔn)的手機(jī)類(練習(xí))l注意l目前的代碼是為了練習(xí)的一種標(biāo)準(zhǔn)格式l給成員變量賦值有兩種方式,可以只寫一種l如果不單獨(dú)獲取數(shù)據(jù),可以不寫getXxx()方法北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !類的初始化過程lStudent s = new Student();在內(nèi)存中做了哪些事情?l加載Student.c
13、lass文件進(jìn)內(nèi)存l在棧內(nèi)存為s開辟空間l在堆內(nèi)存為學(xué)生對(duì)象開辟空間l對(duì)學(xué)生對(duì)象的成員變量進(jìn)行默認(rèn)初始化l對(duì)學(xué)生對(duì)象的成員變量進(jìn)行顯示初始化l通過構(gòu)造方法對(duì)學(xué)生對(duì)象的成員變量賦值l學(xué)生對(duì)象初始化完畢,把對(duì)象地址賦值給s變量北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !面向?qū)ο缶毩?xí)l定義一個(gè)類Demo,其中定義一個(gè)求兩個(gè)數(shù)據(jù)和的方法,定義一個(gè)測(cè)試了Test,進(jìn)行測(cè)試。l定義一個(gè)長(zhǎng)方形類,定義 求周長(zhǎng)和面積的方法,然后定義一個(gè)測(cè)試了Test2,進(jìn)行測(cè)試。l定義一個(gè)員工類,自己分析出幾個(gè)成員,然后給出成員變量,構(gòu)造方法,getXxx()/setXxx()方法,以及一個(gè)顯示所
14、有成員信息的方法。并測(cè)試。l定義一個(gè)類MyMath,提供基本的加減乘除功能,然后進(jìn)行測(cè)試。北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !static關(guān)鍵字l可以修飾成員變量和成員方法lstatic關(guān)鍵字特點(diǎn)l隨著類的加載而加載l優(yōu)先于對(duì)象存在l被類的所有對(duì)象共享l這也是我們判斷是否使用靜態(tài)關(guān)鍵字的條件l可以通過類名調(diào)用lstatic關(guān)鍵字注意事項(xiàng)l在靜態(tài)方法中是沒有this關(guān)鍵字的l靜態(tài)方法只能訪問靜態(tài)的成員變量和靜態(tài)的成員方法北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !靜態(tài)的內(nèi)存圖l靜態(tài)的內(nèi)容存在于方法區(qū)的靜態(tài)區(qū)北京傳智播客教育 高級(jí)軟件
15、人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !靜態(tài)變量和成員變量的區(qū)別l所屬不同l靜態(tài)變量屬于類,所以也稱為為類變量l成員變量屬于對(duì)象,所以也稱為實(shí)例變量(對(duì)象變量)l內(nèi)存中位置不同l靜態(tài)變量存儲(chǔ)于方法區(qū)的靜態(tài)區(qū)l成員變量存儲(chǔ)于堆內(nèi)存l內(nèi)存出現(xiàn)時(shí)間不同l靜態(tài)變量隨著類的加載而加載,隨著類的消失而消失l成員變量隨著對(duì)象的創(chuàng)建而存在,隨著對(duì)象的消失而消失l調(diào)用不同l靜態(tài)變量可以通過類名調(diào)用,也可以通過對(duì)象調(diào)用l成員變量只能通過對(duì)象名調(diào)用北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !main方法是靜態(tài)的lpublic static void main(String args
16、) lpublic 被jvm調(diào)用,訪問權(quán)限足夠大。lstatic 被jvm調(diào)用,不用創(chuàng)建對(duì)象,直接類名訪問lvoid被jvm調(diào)用,不需要給jvm返回值lmain 一個(gè)通用的名稱,雖然不是關(guān)鍵字,但是被jvm識(shí)別lString args 以前用于接收鍵盤錄入的l演示案例北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !制作幫助文檔l制作工具類lArrayToolsl制作幫助文檔(API)ljavadoc -d 目錄 -author -version ArrayTool.java北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !如何使用幫助文檔l找到文檔,打開文檔l點(diǎn)擊顯示,找到索引,出現(xiàn)輸入框l你應(yīng)該知道你找誰?舉例:Scannerl看這個(gè)類的結(jié)構(gòu)(需不需要導(dǎo)包)l成員變量字段l構(gòu)造方法構(gòu)造方法l成員方法方法l看這個(gè)類的說l看構(gòu)造方法l看成員方法l然后使用北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家! !通過API學(xué)習(xí)Math類lMath類概述lMath包含用于執(zhí)行基本數(shù)學(xué)運(yùn)算的方法lMath類特點(diǎn)l沒有構(gòu)造方法,因?yàn)槌蓡T都是靜態(tài)的lMath類講解一個(gè)方法l獲取隨機(jī)數(shù)l獲取1-100之間的隨機(jī)數(shù)l案例:l猜數(shù)字小游戲北京傳智播客教育 高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 長(zhǎng)春師范大學(xué)《食品感官評(píng)價(jià)》2023-2024學(xué)年第一學(xué)期期末試卷
- 內(nèi)蒙古財(cái)經(jīng)大學(xué)《中醫(yī)養(yǎng)生學(xué)理論》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025至2030漫畫書行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 2025至2030全球及中國(guó)花園修剪機(jī)行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 杭州科技職業(yè)技術(shù)學(xué)院《韓國(guó)語口語(1)》2023-2024學(xué)年第一學(xué)期期末試卷
- 南京工業(yè)大學(xué)《太陽能光伏設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 安徽工貿(mào)職業(yè)技術(shù)學(xué)院《獸醫(yī)外科及外科手術(shù)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江師范大學(xué)行知學(xué)院《鋼琴律》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶理工職業(yè)學(xué)院《基礎(chǔ)法語視聽說2》2023-2024學(xué)年第一學(xué)期期末試卷
- 惠州工程職業(yè)學(xué)院《中國(guó)民族民間舞(三)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025春季學(xué)期國(guó)開電大本科《管理英語3》一平臺(tái)機(jī)考真題及答案(第十套)
- 定額〔2025〕1號(hào)文-關(guān)于發(fā)布2018版電力建設(shè)工程概預(yù)算定額2024年度價(jià)格水平調(diào)整的通知
- 《云南省建筑工程資料管理規(guī)程應(yīng)用指南)(上下冊(cè))
- 數(shù)列求和中常見放縮方法和技巧(含答案)
- 寶興縣中藥材生產(chǎn)現(xiàn)狀及發(fā)展思路
- 臺(tái)州市幼兒園教師考核表.
- 小兒霧化吸入課件.ppt
- TM92成品鞋彎折測(cè)試
- 鎖骨骨折幻燈片
- 高填方、深挖路塹邊坡和軟基監(jiān)測(cè)方案
- DB42∕T 1124-2015 城市園林綠化養(yǎng)護(hù)管理質(zhì)量標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論