最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
一張圖搞定Java面向?qū)ο?/div>

剛開始學(xué)習(xí)Java的時候,一個人跌跌撞撞摸索著往前走,很多東西理解的也懵懵懂懂,后來實踐的多了,才慢慢清楚;許多東西雖然很基礎(chǔ)但是卻很重要,是需要反復(fù)思考和加深理解的。頭條號“一張圖學(xué)Java”,分享一些歸納總結(jié)后的技術(shù)干貨,一張圖能搞定的事,絕對不長篇大論。

創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供福田網(wǎng)站建設(shè)、福田做網(wǎng)站、福田網(wǎng)站設(shè)計、福田網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、福田企業(yè)網(wǎng)站模板建站服務(wù),十余年福田做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

大家都知道,Java面向?qū)ο笫荍ava的一個核心,也是初學(xué)者的一個難點,所以我們從這里開始,Let’s go !

一張圖搞定Java面向?qū)ο?></p><p>Java面向?qū)ο?/p><p>面向?qū)ο螅∣riented Object)</p><p>是相對于面向過程而言的,過程其實就是函數(shù),對象是將函數(shù)和屬性進行了封裝。</p><p>(1)將復(fù)雜的事情簡單化。</p><p>(2)面向?qū)ο髮⒁郧暗倪^程中的執(zhí)行者,變成了指揮者。</p><p>(3)面向?qū)ο笏枷胧欠先藗兯伎剂?xí)慣的一種思想。</p><p>面向?qū)ο蠛兔嫦蜻^程區(qū)別</p><p>- 面向過程:事物比較簡單,可以用線性的思維去解決。</p><p>- 面向?qū)ο螅菏挛锉容^復(fù)雜,使用簡單的線性思維無法解決。</p><p>- 共同點:都是解決實際問題的一種思維方式。解決復(fù)雜問題,通過面向?qū)ο蠓绞奖阌谖覀儚暮暧^上把握事物之間復(fù)雜的關(guān)系,方便我們分析整個系統(tǒng);具體到微觀操作,仍然使用面向過程方式來處理。</p><p>對象</p><p>接收消息的實體,一切皆為對象,對象都有屬性和行為,對象都屬于某個類,每個對象都是獨一無二的。</p><p>類</p><p>創(chuàng)建對象的藍圖和模板</p><p>類的屬性:數(shù)據(jù)抽象</p><p>類的方法:行為抽象</p><p>構(gòu)造器(構(gòu)造方法)</p><p>接口</p><p>抽象方法的集合</p><p>(1)作用:</p><p>- 能力,實現(xiàn)一個接口就代表具備了某方面的能力。</p><p>- 約定,一個類實現(xiàn)了接口就必須實現(xiàn)接口中的所有抽象方法否則要被聲明為抽象類。</p><p>- 角色,一個類可以實現(xiàn)多個接口來扮演多種角色</p><p>(2)接口之間可以繼承而且支持多重繼承</p><p>(3)從Java 8開始接口中的方法允許有默認(rèn)實現(xiàn)</p><p>(4)常見的接口用法</p><p>- 單方法接口(函數(shù)式接口):Lambda表達式、@FunctionalInterface</p><p>- 標(biāo)識性接口</p><p>- 普通接口</p><p>- 常量接口(接口最不正確的用法)</p><p>Java面向?qū)ο笳Z言的三大特點</p><p>- 繼承:從已有類創(chuàng)建新類的過程。</p><p>父類(超類/基類):提供繼承信息的類</p><p>子類(派生類):得到繼承信息的類</p><p>- 封裝:隱藏一切可隱藏的實現(xiàn)細節(jié)提供簡單的編程接口。私有屬性,公有方法。好處:將變化隔離;便于使用;提高重用性,安全性。</p><p>- 多態(tài):</p><p>方法重寫:子類對父類的方法給出自己的實現(xiàn)版本。</p><p>對象造型:用父類型的引用去引用子類對象。</p><p>成員</p><p>定義在類中。成員有兩種:</p><p>(1)成員變量:其實對應(yīng)的就是事物的屬性。</p><p>(2)成員函數(shù):其實對應(yīng)的就是事物的行為。</p><p>局部變量和成員變量的區(qū)別</p><p>(1)成員變量直接定義在類中。</p><p>局部變量定義在方法中,參數(shù)上,語句中。</p><p>(2)成員變量在這個類中有效。</p><p>局部變量只在自己所屬的大括號內(nèi)有效,大括號結(jié)束,局部變量失去作用域。</p><p>(3)成員變量定義在堆內(nèi)存中,隨著對象的產(chǎn)生而存在,消失而消失。</p><p>局部變量存在于棧內(nèi)存中,隨著所屬區(qū)域的運行而存在,結(jié)束而釋放。</p><p>構(gòu)造函數(shù)</p><p>用于給對象進行初始化 ,函數(shù)中的一種。構(gòu)造函數(shù)是在對象創(chuàng)建時被調(diào)用的,而且 初始化動作只執(zhí)行一次 。</p><p>特點:該函數(shù)的名稱和所在類的名稱相同。不需要指定返回值類型。該函數(shù)沒有具體的返回值。</p><p>注意:在定義一個類的時候,如果沒有定義一個構(gòu)造函數(shù),系統(tǒng)會自動生成一個無參構(gòu)造函數(shù),以便于該類對象的創(chuàng)建和初始化。如果類中自定了構(gòu)造函數(shù),那么默認(rèn)的構(gòu)造函數(shù)沒有了。如果一個類中有多個構(gòu)造函數(shù),這些構(gòu)造函數(shù)是以重載體現(xiàn)的。</p><p>構(gòu)造代碼塊和構(gòu)造函數(shù)的區(qū)別</p><p>構(gòu)造代碼塊:是給所有的對象進行初始化 ,只要對象一建立就會調(diào)用這個代碼塊。</p><p>構(gòu)造函數(shù):是給與之對應(yīng)的對象進行初始化。</p><p>創(chuàng)建一個對象內(nèi)存中執(zhí)行過程</p><p>Person p = new Person();</p><p>(1)將硬盤中指定位置的Person.class文件加載進內(nèi)存。</p><p>(2)執(zhí)行main方法時,在棧內(nèi)存中開辟了main方法的空間(壓棧-進棧),然后在main方法的棧區(qū)分配了一個變量P。</p><p>(3)new。在堆內(nèi)存中開辟一個實體空間,分配了一個內(nèi)存首地址值。</p><p>(4)在該實體空間中進行屬性的空間分配,并進行了默認(rèn)初始化。</p><p>(5)對空間中的屬性進行顯示初始化。</p><p>(6)進行實體的構(gòu)造代碼塊初始化。</p><p>(7)調(diào)用該實體對應(yīng)的構(gòu)造函數(shù),進行構(gòu)造函數(shù)初始化。</p><p>(8)將首地址賦值給p,p變量就引用了該實體。(指向了該對象)</p><p>this關(guān)鍵字</p><p>代表對象。就是所在函數(shù)所屬對象的引用。哪個對象調(diào)用了this所在的函數(shù),this就代表哪個對象。</p><p>this是方法(除靜態(tài)方法外)中存在的隱式參數(shù),所以在方法中使用this。</p><p>普通方法中,this總是指向調(diào)用該方法的對象。this.xx; (調(diào)用的是成員屬性和成員方法)</p><p>構(gòu)造方法中,this總是指向正要初始化的對象。this(...); (調(diào)用本類對應(yīng)參數(shù)的構(gòu)造函數(shù))</p><p>注意:</p><p>(1)this調(diào)用構(gòu)造函數(shù),必須定義在構(gòu)造函數(shù)的第一行。否則編譯失敗。</p><p>(2)this不能用于static修飾的方法。</p><p>static關(guān)鍵字</p><p>關(guān)鍵字,是一個修飾符,用于修飾成員(成員變量和成員函數(shù))</p><p>在類中,用static聲明的成員變量為靜態(tài)變量,或者叫做:類屬性,類變量, 從屬于類,給對象分配的內(nèi)存里沒有。</p><p>它為類的公用變量,屬于類,被該類的所有實例共享,在類被載入時被顯示初始化,</p><p>對于該類的所有對象來說,static成員變量只有一份。被該類的所有對象共享。</p><p>可以使用“對象.類屬性”來調(diào)用。不過,一般都是用“類名.類屬性”。</p><p>static變量置于方法區(qū)中。</p><p>用static聲明的方法為靜態(tài)方法。</p><p>類名.方法名的方式調(diào)用。</p><p>在調(diào)用該方法時,不會將對象的引用傳遞給它,所以在static方法中,不可訪問非static的成員。</p><p>在靜態(tài)方法中,不能是用this和supper關(guān)鍵字。</p><p>成員變量和靜態(tài)變量的區(qū)別</p><p>(1)成員變量所屬與對象,所以也稱為實例變量。</p><p>靜態(tài)變量所屬于類,所以也稱為類變量。</p><p>(2)成員變量存在于堆內(nèi)存中。</p><p>靜態(tài)變量存在于方法區(qū)中。</p><p>(3)成員變量隨著對象的創(chuàng)建而存在,隨著對象被回收而消失。</p><p>靜態(tài)變量隨著類的加載而存在,隨著類的消失而消失。</p><p>(4)成員變量只能被對象所調(diào)用。</p><p>靜態(tài)變量可以被對象調(diào)用,也可以被類名調(diào)用。</p><p>所以,成員變量可以稱為對象的特有數(shù)據(jù),靜態(tài)變量稱為對象的共享數(shù)據(jù)。</p><p>靜態(tài)代碼塊</p><p>就是一個有靜態(tài)關(guān)鍵字標(biāo)示的一個代碼塊區(qū)域。定義在類中。</p><p>作用:可以完成類的初始化 。靜態(tài)代碼塊隨著類的加載而執(zhí)行,而且只執(zhí)行一次。如果和主函數(shù)在同一個類中,優(yōu)先于主函數(shù)執(zhí)行。</p><p>靜態(tài)代碼塊、構(gòu)造代碼塊、構(gòu)造函數(shù)同時存在時的執(zhí)行順序</p><p>靜態(tài)代碼塊-->構(gòu)造代碼塊-->構(gòu)造函數(shù)。</p><p>繼承</p><p>(1)類是對對象的抽象,繼承是對某一批類的抽象,從而實現(xiàn)對現(xiàn)實世界更好的建模。</p><p>(2)提高代碼的復(fù)用性。</p><p>(3)extends的意思是“擴展”。子類是父類的擴展。</p><p>(4)子類繼承父類,可以得到父類的全部屬性和方法(除了父類的構(gòu)造方法)。</p><p>(5)Java中只有單繼承,沒有多繼承。多繼承會引起混亂,使得繼承鏈過于復(fù)雜,系統(tǒng)難于維護。</p><p>(6)Java中的多繼承,可以通過接口來實現(xiàn)。</p><p>(7)java.lang.Object是所有類的超類。</p><p>重載(overload)</p><p>方法的重載是指一個類中可以定義有相同的名字,但參數(shù)不同的多個方法。調(diào)用時,會根據(jù)不同的參數(shù)表選擇對應(yīng)的方法。</p><p>同一個類,同一個方法名。</p><p>不同:參數(shù)列表不同(類型,個數(shù),順序不同)</p><p>只有返回值不同,不構(gòu)成方法的重載。</p><p>方法重寫(override)</p><p>在子類中可以根據(jù)需要對從父類中繼承來的方法進行重寫。</p><p>重寫方法必須和被重寫方法具有相同方法名稱、參數(shù)列表和返回類型。</p><p>重寫方法不能使用比被重寫方法更嚴(yán)格的訪問權(quán)限。(由于多態(tài))<br /><img src=http://fisionsoft.com.cn/article/gipjoi.html