可能,不已經(jīng)要往java方向?qū)W習(xí)了,最近項(xiàng)目里,涉及到很多前后臺(tái)交互的問題,自己本來只碰前臺(tái)的東西,但是有的功能實(shí)現(xiàn)需要后臺(tái)數(shù)據(jù)和方法的調(diào)用,然后又沒有現(xiàn)成的給你用,自己的工作又不能停下來不做,索性往后臺(tái)也看看,可能我自己總是太過樂觀,把什么東西都想的過于簡單,總之要一步步來了...
舉個(gè)實(shí)例:
對(duì)象實(shí)例化,有自己的屬性和方法

javascript中的面向?qū)ο?以及關(guān)于類的看法?
面向?qū)ο螅嫦驅(qū)ο笏且环N編程思想, 使用對(duì)象編程就是面向?qū)ο缶幊?,自己粗略的看法哈?/code>也是前端面試的必考題,關(guān)于它,我自己記憶猶新的就是封裝、繼承和多態(tài),以及他們各自的特點(diǎn),缺點(diǎn);
接下來你對(duì)對(duì)象的理解?
我在想不知道多少小伙伴被萬物皆對(duì)象給坑著,我自己的看法就是現(xiàn)實(shí)中存在的事物,不管是看得見的看不見的,摸得著的摸不著的,都是對(duì)象,只要能和現(xiàn)實(shí)聯(lián)系起來的都可以稱之為對(duì)象;

而在我們自己程序轅的眼里,對(duì)象就是我們寫的一行行能夠表示現(xiàn)實(shí)社會(huì)中事物的代碼;
這和計(jì)算機(jī)是一樣的,因?yàn)橛?jì)算機(jī)并不識(shí)別,我們需要轉(zhuǎn)換成相應(yīng)的二進(jìn)制機(jī)器代碼才能被計(jì)算機(jī)認(rèn)識(shí);
對(duì)象的生命周期:
對(duì)象從new關(guān)鍵字創(chuàng)建時(shí)生命周期開始;
對(duì)象在沒有任何引用指向時(shí)生命周期結(jié)束, 成為垃圾;
什么是匿名對(duì)象:
一個(gè)對(duì)象如果只使用一次, 就可以定義為匿名對(duì)象;
不用任何變量引用, 使用之后立即成為垃圾;
面向?qū)ο蟮囊粋€(gè)必問概念------>類

類是用來描述對(duì)象的, 需要使用類來創(chuàng)建對(duì)象; 將一類事物的特征定義為成員變量, 將這類事物的行為定義為成員方法;

java中類的使用:
-
定義
- class 類名 { 類定義 };
-
使用類創(chuàng)建對(duì)象
new 類名();
-
對(duì)象會(huì)存儲(chǔ)在
堆內(nèi)存中, 在創(chuàng)建的時(shí)候會(huì)將成員變量默認(rèn)初始化;- 堆內(nèi)存和棧內(nèi)存,自己去看吧;
使用
.變量名可以訪問對(duì)象的成員變量;使用
.方法名()可以訪問對(duì)象的成員方法;
現(xiàn)在就不說javascript中的面向?qū)ο?,因?yàn)樵趈avascript中嚴(yán)格意義來說,是沒有一個(gè)類的概念,它不像C++、JAVA有類的概念,也沒有C里面的結(jié)構(gòu)體,只不過它有一個(gè)萬能的function,可以實(shí)現(xiàn)類的功能;
C語言中也不存在類,類是C++的概念;
C語言是面向過程的語言,而類是面向?qū)ο?/code>的概念,所以C語言是沒有類的概念的;
另外還要說的是,在C語言產(chǎn)生的時(shí)候,是沒有類的概念,也沒有面向?qū)ο蟮母拍?,這兩個(gè)概念都是后來才被提出來的,具體就是在C語言基礎(chǔ)上增加的面向?qū)ο蟮睦砟?,增加了類的定義,多態(tài)的實(shí)現(xiàn),但它明顯和C語言是有差別的,也就是后來的C++,可以說C++是C語言的延伸或者超集;
從Java角度剖析面向?qū)ο蟮奶攸c(diǎn)?
1>. 繼承:
繼承是從已有的類得到繼承信息創(chuàng)建新類的過程。
- 提供繼承信息的類被稱為父類(基類、超類);
- 得到繼承信息的類被稱為子類(派生類);
-
繼承讓變化中的軟件系統(tǒng)有了一定的可延續(xù)性,同時(shí)繼承也是封裝程序中可變因素的重要手段;
2>.封裝:
封裝就是隱藏一切可隱藏的東西,只向外界提供最簡單的接口。
- 在類中編寫的方法是對(duì)實(shí)現(xiàn)細(xì)節(jié)的封裝;
- 編寫一個(gè)類就是對(duì)數(shù)據(jù)和數(shù)據(jù)操作的封裝;
將一類事物的特征和行為定義在一起, 放在一個(gè)類中, 創(chuàng)建這個(gè)類的對(duì)象時(shí), 該對(duì)象就可以使用自己的特征和行為了;
3>.多態(tài):
多態(tài)是指允許不同子類型的對(duì)象對(duì)同一消息做出不同的響應(yīng)。
多態(tài)性允許以統(tǒng)一的風(fēng)格編寫程序,以處理種類繁多的已存在的類以及相關(guān)類。
該統(tǒng)一風(fēng)格可以由父類來實(shí)現(xiàn),根據(jù)父類統(tǒng)一風(fēng)格的處理,就可以實(shí)例化子類的對(duì)象。由于整個(gè)事件的處理都只依賴于父類的方法,所以日后只要維護(hù)和調(diào)整父類的方法即可,這樣降低了維護(hù)的難度,節(jié)省了時(shí)間。
在提到多態(tài)的同時(shí),不得不提到抽象類和接口,因?yàn)槎鄳B(tài)的實(shí)現(xiàn)并不依賴具體類,而是依賴于抽象類和接口。
- 編譯時(shí)多態(tài):
- 是指根據(jù)參數(shù)列表不同來區(qū)分不同的函數(shù),編譯之后就會(huì)變成兩個(gè)函數(shù),主要指方法的重載;
- 運(yùn)行時(shí)多態(tài):
- (動(dòng)態(tài)綁定),指在程序運(yùn)行期間判斷所引用對(duì)象的實(shí)際類型,根據(jù)實(shí)際類型判斷并調(diào)用相應(yīng)的方法和屬性;
要實(shí)現(xiàn)多態(tài)需要做兩件事:
- 方法重寫(子類繼承父類并重寫父類中已有的或抽象的方法);
- 對(duì)象造型(用父類型引用引用子類型對(duì)象,這樣同樣的引用調(diào)用同樣的方法就會(huì)根據(jù)子類對(duì)象的不同而表現(xiàn)出不同的行為);