特點:
? ? 1、將復(fù)雜的事情簡單化靠瞎。
? ? 2比庄、將以前過程中的執(zhí)行者變成指揮者
? ? 3、更符合當(dāng)代人的思維邏輯
類中怎么沒有定義主函數(shù)呢乏盐?
注意:主函數(shù)的存在印蔗,僅為該類是否需要獨立運行,如果不需要丑勤,主函數(shù)是不用定義的华嘹。
主函數(shù)的解釋:保證所在類的獨立運行,是程序的入口法竞,被jvm調(diào)用耙厚。
封 裝(面向?qū)ο筇卣髦唬?/b>
是指隱藏對象的屬性和實現(xiàn)細(xì)節(jié)强挫,僅對外提供公共訪問方式。
好處:將變化隔離薛躬;便于使用俯渤;提高重用性;安全性型宝。
封裝原則:將不需要對外提供的內(nèi)容都隱藏起來八匠,把屬性都隱藏,提供公共方法對其訪問趴酣。
繼 承(面向?qū)ο筇卣髦唬?/h2>
java中對于繼承梨树,java只支持單繼承。java雖然不直接支持多繼承岖寞,但是可實現(xiàn)多接口抡四。
多 態(tài)(面向?qū)ο筇卣髦唬?/b>:
函數(shù)本身就具備多態(tài)性,某一種事物有不同的具體的體現(xiàn)仗谆。
體現(xiàn):父類引用或者接口的引用指向了自己的子類對象指巡。//Animal a = new Cat();父類可以調(diào)用子類中覆寫過的(父類中有的方法)
多態(tài)的好處:提高了程序的擴(kuò)展性。繼承的父類或接口一般是類庫中的東西隶垮,(如果要修改某個方法的具體實現(xiàn)方式)只有通過子類去覆寫要改變的某一個方法藻雪,這樣在通過將父類的應(yīng)用指向子類的實例去調(diào)用覆寫過的方法就行了!
多態(tài)的弊端:當(dāng)父類引用指向子類對象時狸吞,雖然提高了擴(kuò)展性阔涉,但是只能訪問父類中具備的方法,不可以訪問子類中特有的方法捷绒。(前期不能使用后期產(chǎn)生的功能瑰排,即訪問的局限性)
多態(tài)的前提:
1:必須要有關(guān)系,比如繼承暖侨、或者實現(xiàn)椭住。
2:通常會有覆蓋操作。
(二)Person p = new Person();
創(chuàng)建一個對象都在內(nèi)存中做了什么事情字逗?
1:先將硬盤上指定位置的Person.class文件加載進(jìn)內(nèi)存京郑。
2:執(zhí)行main方法時,在棧內(nèi)存中開辟了main方法的空間(壓棧-進(jìn)棧)葫掉,然后在main方法的棧區(qū)分配了一個變量p些举。
3:在堆內(nèi)存中開辟一個實體空間,分配了一個內(nèi)存首地址值俭厚。new
4:在該實體空間中進(jìn)行屬性的空間分配户魏,并進(jìn)行了默認(rèn)初始化。
5:對空間中的屬性進(jìn)行顯示初始化。
6:進(jìn)行實體的構(gòu)造代碼塊初始化叼丑。
7:調(diào)用該實體對應(yīng)的構(gòu)造函數(shù)关翎,進(jìn)行構(gòu)造函數(shù)初始化。()
8:將首地址賦值給p鸠信,p變量就引用了該實體纵寝。(指向了該對象)