可能,不已經(jīng)要往java方向?qū)W習(xí)了朴上,最近項目里匪凉,涉及到很多前后臺交互的問題,自己本來只碰前臺的東西抖苦,但是有的功能實現(xiàn)需要后臺數(shù)據(jù)和方法的調(diào)用,然后又沒有現(xiàn)成的給你用米死,自己的工作又不能停下來不做锌历,索性往后臺也看看,可能我自己總是太過樂觀峦筒,把什么東西都想的過于簡單究西,總之要一步步來了...
舉個實例:
對象實例化,有自己的屬性和方法
javascript中的面向?qū)ο?以及關(guān)于類的看法物喷?
面向?qū)ο螅嫦驅(qū)ο笏且环N編程思想, 使用對象編程就是面向?qū)ο缶幊搪辈模约捍致缘目捶ü?/code>也是前端面試的必考題,關(guān)于它峦失,我自己記憶猶新的就是
封裝
扇丛、繼承
和多態(tài)
,以及他們各自的特點尉辑,缺點
帆精;
接下來你對對象
的理解?
我在想不知道多少小伙伴被萬物皆對象
給坑著隧魄,我自己的看法就是現(xiàn)實中存在的事物
卓练,不管是看得見的看不見的,摸得著的摸不著的购啄,都是對象
襟企,只要能和現(xiàn)實聯(lián)系起來
的都可以稱之為對象;
而在我們自己程序轅
的眼里狮含,對象就是我們寫的一行行能夠表示現(xiàn)實社會中事物的代碼
顽悼;
這和計算機(jī)是一樣的,因為計算機(jī)并不識別几迄,我們需要轉(zhuǎn)換成相應(yīng)的二進(jìn)制機(jī)器代碼才能被計算機(jī)認(rèn)識表蝙;
對象的生命周期:
對象從new關(guān)鍵字創(chuàng)建時生命周期開始;
對象在沒有任何引用指向時生命周期結(jié)束, 成為垃圾乓旗;
什么是匿名對象:
一個對象如果只使用一次, 就可以定義為匿名對象府蛇;
不用任何變量引用, 使用之后立即成為垃圾;
面向?qū)ο蟮囊粋€必問概念------>類
類
是用來描述對象的, 需要使用類來創(chuàng)建對象; 將一類事物的特征定義為成員變量
, 將這類事物的行為定義為成員方法
;
java中類的使用:
-
定義
- class 類名 { 類定義 };
-
使用類創(chuàng)建對象
new 類名();
-
對象會存儲在
堆內(nèi)存
中, 在創(chuàng)建的時候會將成員變量默認(rèn)初始化;- 堆內(nèi)存和棧內(nèi)存屿愚,自己去看吧汇跨;
使用
.變量名
可以訪問對象的成員變量
;使用
.方法名()
可以訪問對象的成員方法
;
現(xiàn)在就不說javascript
中的面向?qū)ο笪窬#驗樵趈avascript中嚴(yán)格意義來說,是沒有一個類的概念
穷遂,它不像C++
函匕、JAVA
有類的概念,也沒有C
里面的結(jié)構(gòu)體
蚪黑,只不過它有一個萬能的function
盅惜,可以實現(xiàn)類的功能;
C語言
中也不存在類忌穿,類是C++的概念;
C語言是面向過程
的語言抒寂,而類是面向?qū)ο?/code>的概念,所以
C語言是沒有類的概念的
;
另外還要說的是掠剑,在C語言產(chǎn)生的時候屈芜,是沒有類的概念,也沒有面向?qū)ο蟮母拍钇右耄@兩個概念都是后來才被提出來的井佑,具體就是在C語言基礎(chǔ)上增加的面向?qū)ο蟮睦砟睿黾恿祟惖亩x眠寿,多態(tài)的實現(xiàn)
躬翁,但它明顯和C語言是有差別的,也就是后來的C++盯拱,可以說C++是C語言的延伸或者超集
盒发;
從Java角度剖析面向?qū)ο蟮奶攸c?
1>. 繼承:
繼承是從已有的類得到繼承信息創(chuàng)建新類的過程坟乾。
- 提供繼承信息的類被稱為父類(基類迹辐、超類)蝶防;
- 得到繼承信息的類被稱為子類(派生類)甚侣;
-
繼承
讓變化中的軟件系統(tǒng)有了一定的可延續(xù)性
,同時繼承也是封裝程序中可變因素
的重要手段;
2>.封裝:
封裝就是隱藏一切可隱藏的東西间学,只向外界提供最簡單的接口殷费。
- 在類中編寫的方法是對實現(xiàn)細(xì)節(jié)的封裝;
- 編寫一個類就是對數(shù)據(jù)和數(shù)據(jù)操作的封裝;
將一類事物的特征和行為定義在一起, 放在一個類中, 創(chuàng)建這個類的對象時, 該對象就可以使用自己的特征和行為了;
3>.多態(tài):
多態(tài)是指允許不同子類型的對象對同一消息做出不同的響應(yīng)低葫。
多態(tài)性允許以統(tǒng)一的風(fēng)格編寫程序详羡,以處理種類繁多的已存在的類以及相關(guān)類。
該統(tǒng)一風(fēng)格可以由父類來實現(xiàn)嘿悬,根據(jù)父類統(tǒng)一風(fēng)格的處理实柠,就可以實例化子類的對象。由于整個事件的處理都只依賴于父類的方法善涨,所以日后只要維護(hù)和調(diào)整父類的方法即可窒盐,這樣降低了維護(hù)的難度草则,節(jié)省了時間。
在提到多態(tài)的同時蟹漓,不得不提到抽象類和接口炕横,因為多態(tài)的實現(xiàn)并不依賴具體類,而是依賴于抽象類和接口葡粒。
- 編譯時多態(tài):
- 是指根據(jù)參數(shù)列表不同來區(qū)分不同的函數(shù)份殿,編譯之后就會變成兩個函數(shù),主要指方法的重載;
- 運行時多態(tài):
- (動態(tài)綁定)嗽交,指在程序運行期間判斷所引用對象的實際類型卿嘲,根據(jù)實際類型判斷并調(diào)用相應(yīng)的方法和屬性;
要實現(xiàn)多態(tài)需要做兩件事:
- 方法重寫(子類繼承父類并重寫父類中已有的或抽象的方法);
- 對象造型(用父類型引用引用子類型對象轮纫,這樣同樣的引用調(diào)用同樣的方法就會根據(jù)子類對象的不同而表現(xiàn)出不同的行為);