特點(diǎn):
? ? 1、將復(fù)雜的事情簡單化。
? ? 2、將以前過程中的執(zhí)行者變成指揮者
? ? 3、更符合當(dāng)代人的思維邏輯
類中怎么沒有定義主函數(shù)呢?
注意:主函數(shù)的存在,僅為該類是否需要獨(dú)立運(yùn)行,如果不需要,主函數(shù)是不用定義的。
主函數(shù)的解釋:保證所在類的獨(dú)立運(yùn)行,是程序的入口,被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變量就引用了該實體。(指向了該對象)