<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      面向?qū)ο缶幊痰囊恍┧伎?/span>

      這段時(shí)間一直都在學(xué)習(xí)python,主要目的還是打算學(xué)習(xí)一門互聯(lián)網(wǎng)的編程語言,為后續(xù)的職業(yè)生涯做一些規(guī)劃,畢竟java在互聯(lián)網(wǎng)除了電商領(lǐng)域有叫廣泛的使用場景之外,在互聯(lián)網(wǎng)其他領(lǐng)域還不是很普及,并且java太重量級了。而python在相對來說輕量級并且易于使用,很適合互聯(lián)網(wǎng)產(chǎn)品快速迭代開發(fā)方式。

      個(gè)人之前接觸的唯一一個(gè)純面向?qū)ο缶幊陶Z言就是java,以至于很長一段時(shí)間內(nèi),我都以為面向?qū)ο缶幊痰哪P蛻?yīng)該都是以java這樣為基礎(chǔ)的,直到看了javasript和python等以函數(shù)式編程為主,支持面向?qū)ο缶幊痰恼Z言,才更深的了解面向?qū)ο蟮木幊瘫举|(zhì)。

      什么是對象,對于對象的理解,我感覺就是具有某些特性的物質(zhì),比如說狗。而面向?qū)ο缶幊套畲蟮奶攸c(diǎn)就是 把 對象的屬性和它相關(guān)的行為進(jìn)行封裝,比如狗的品種就是狗的屬性,但是狗叫就是狗的行為。我們把這兩個(gè)特性封裝到一個(gè)具體的對象里面,就構(gòu)成了面向?qū)ο蟮木幊痰幕A(chǔ)。如果把對象的屬性稱作數(shù)據(jù),對象的行為成為函數(shù),那么數(shù)據(jù)就構(gòu)成了對象的狀態(tài),同一個(gè)對象中的數(shù)據(jù)可以有很多不同的版本,數(shù)據(jù)是變化的,函數(shù)是不變的,只不過這個(gè)函數(shù)就是屬于這個(gè)對象的。

      但是對象的行為一定非要和對象綁定嗎?是不是可以脫離對象而獨(dú)立存在了。比如我們說狗叫,那么叫這個(gè)動作,一定非要和狗綁定嗎,是不是也可以和人綁定的?還有就是比較兩個(gè)數(shù)的大小,這個(gè)行為的對象是誰 ? 通過這些思考我們發(fā)現(xiàn),很多時(shí)候行為和可以獨(dú)立對象獨(dú)立存在的,這些獨(dú)立存在的行為不屬于任何對象,或者我們并不需要關(guān)心他屬于誰,只需要關(guān)注他的目的是什么即可。

      以上兩個(gè)問題在java里面都反映的比較明顯,static關(guān)鍵字用來表明這個(gè)行為不和任何對象綁定,比如public static void main ,這個(gè)main方法就不屬于定義它的class所對應(yīng)的對象。還有java里面的Math類,這個(gè)類里面的方法都是public static的,說明這些方法都不屬于任何對象。而java是純面向?qū)ο蟮模荒馨堰@些不屬于任何具體對象的定義為static,而其對應(yīng)的class類,感覺給他定義了一個(gè)命名空間而已。

      python中的面向?qū)ο蟮脑O(shè)計(jì)感覺比java要復(fù)雜,但是通過和java面向?qū)ο蟮脑O(shè)計(jì)相比,能夠讓你更深入的了解面向?qū)ο缶幊痰暮诵摹ython中 class如果定義對對象的行為,第一個(gè)參數(shù)比如為self。當(dāng)初自己對這個(gè)設(shè)計(jì)理解很不理解,為什么弄的這么復(fù)雜,后來想想面向?qū)ο笏枷胧鞘裁矗蝗痪兔靼琢耍@個(gè)self就是數(shù)據(jù),方法就是行為,這個(gè)行為要和某個(gè)對象綁定,只不過java里面幫助我們省去了這個(gè)過程,通過創(chuàng)建對象的語法new XXXClass 自動進(jìn)行綁定。java是靜態(tài)的,一旦方法和數(shù)據(jù)進(jìn)行綁定,這個(gè)綁定關(guān)系就不會發(fā)生改變,但是python綁定關(guān)系就可以進(jìn)行改變。如果方法參數(shù)中沒有self,那么這個(gè)方法就和java里面的static方法類似,表示這個(gè)方法屬于某一個(gè)類,不屬于某個(gè)對象。

      而javascript面向?qū)ο笤O(shè)計(jì)就是更有意思了,構(gòu)造函數(shù)本身就是一個(gè)function,通過function.apply方法和具體的對象進(jìn)行綁定,在javascript中用this來表示function所綁定的對象。

      而在scala中,對象的方法和class 對應(yīng)的static方法就完全分開了。更確切的說,class對應(yīng)的static方法,就不屬于這個(gè)class,所以scala定義了object 這個(gè)概念。所有class中定義的方法都屬于對象的行為,而之前java中所有class static方法,都屬于object。兩者在語法上都已經(jīng)明確區(qū)分了。個(gè)人感覺這個(gè)明顯比java,python,javascript  對static方法的支持簡潔明了的多。

      對于面向?qū)ο蟮脑O(shè)計(jì),不同的語言雖然不同,但是其核心思想還是相似的。但是由于編程語言所支持的編程范式不一樣,實(shí)現(xiàn)方式差別還是比較大的。通過學(xué)習(xí)多范式編程語言,能夠加深對這種編程范式的理解。

       

      主站蜘蛛池模板: 激情综合网一区二区三区| 国产午夜亚洲精品国产成人| 亚洲国产精品久久久久4婷婷| 成人3D动漫一区二区三区| 亚洲天堂一区二区成人在线| 中文字幕精品av一区二区五区| 国产jlzzjlzz视频免费看| 久久亚洲精品成人av秋霞| 国产播放91色在线观看| 九九热爱视频精品视频| 在线精品国精品国产尤物| 欧美日产国产精品| 98精品全国免费观看视频| av小次郎网站| 武宣县| 亚洲美女被黑人巨大在线播放| 日本高清中文字幕免费一区二区| 国产精品久久中文字幕| 中文字幕亚洲综合久久| 一级做a爰片久久毛片下载| 女人腿张开让男人桶爽| 亚州av第二区国产精品| 97人妻天天摸天天爽天天| 国产av一区二区三区久久| 丁香五月婷激情综合第九色| 久久精品女人天堂av| 人妻少妇精品视频专区| 亚洲中文字幕无码爆乳APP| 亚洲va久久久噜噜噜久久狠狠| 国产成人av三级在线观看| 粉嫩jk制服美女啪啪| 午夜一区二区三区视频| 精品国产免费一区二区三区香蕉| 中文字幕人妻中文AV不卡专区| 久草网视频在线观看| 欧美乱码伦视频免费| 亚洲欧美人成人让影院| 老司机aⅴ在线精品导航| 思思99热精品在线| 激情国产一区二区三区四区| 亚洲人成网站色www|