• <center id="sm46c"></center>
  • <dfn id="sm46c"></dfn>
  • <strike id="sm46c"></strike>
  • <cite id="sm46c"><source id="sm46c"></source></cite>
    • <strike id="sm46c"><source id="sm46c"></source></strike>
      <option id="sm46c"></option>
      国产精品天天看天天狠,女高中生强奷系列在线播放,久久无码免费的a毛片大全,国产日韩综合av在线,亚洲国产中文综合专区在,特殊重囗味sm在线观看无码,中文字幕一区二区三区四区在线,无码任你躁久久久久久老妇蜜桃

      什么是面向對象(OOP)

      2021-6-21    前端達人

      入門便是不識

      從我們開始接觸Java這門語言后,就有人告訴我們這是一個面向對象的語言。說的最多的是new個對象,其實并不知道什么是對象。以為對象就是一個class(類),并不覺得有什么特殊。直到很久之后,面試官問到什么是OOP,嘴巴都是一個大O,OOP?WTF?那人厭惡的說到就是面向對象編程。我說:Java就是面向對象,就是一切以對象為載體,去編程,去面對。面試官: go out ! now!


      滾回來的我趕緊看看什么是OOP,Object Oriented Programming,原來就是面向對象的編程啊,還有OOD(面向對象的設計),OOA(面向對象的分析)。那什么是面向對象呢?要想了解這個問題我們要先了解面向過程,這樣對比我們就好理解了。

      很早很早以前的編程是面向過程的,比如實現一個算術運算1+1 = 2,通過這個簡單的算法就可以解決問題。但是隨著時代的進步,人們不滿足現有的算法了,因為問題越來越復雜,不是1+1那么單純了,比如一個班級的學生的數據分析,這樣就有了對象這個概念,一切事物皆對象。將現實的事物抽象出來,注意抽象這個詞是重點啊,把現實生活的事物以及關系,抽象成類,通過繼承,實現,組合的方式把萬事萬物都給容納了。實現了對現實世界的抽象和數學建模。這是一次飛躍性的進步。

      image.png

      舉個最簡單點的例子來區分 面向過程和面向對象

      有一天你想吃魚香肉絲了,怎么辦呢?你有兩個選擇

      1、自己買材料,肉,魚香肉絲調料,蒜苔,胡蘿卜等等然后切菜切肉,開炒,盛到盤子里。

      2、去飯店,張開嘴:老板!來一份魚香肉絲!

      看出來區別了嗎?這就是1是面向過程,2是面向對象。

      面向對象有什么優勢呢?首先你不需要知道魚香肉絲是怎么做的,降低了耦合性。如果你突然不想吃魚香肉絲了,想吃洛陽白菜,對于1你可能不太容易了,還需要重新買菜,買調料什么的。對于2,太容易了,大喊:老板!那個魚香肉絲換成洛陽白菜吧,提高了可維護性。總的來說就是降低耦合,提高維護性!

      面向過程是具體化的,流程化的,解決一個問題,你需要一步一步的分析,一步一步的實現。

      面向對象是模型化的,你只需抽象出一個類,這是一個封閉的盒子,在這里你擁有數據也擁有解決問題的方法。需要什么功能直接使用就可以了,不必去一步一步的實現,至于這個功能是如何實現的,管我們什么事?我們會用就可以了。

      面向對象的底層其實還是面向過程,把面向過程抽象成類,然后封裝,方便我們我們使用的就是面向對象了。

      面向過程:

      優點:性能比面向對象好,因為類調用時需要實例化,開銷比較大,比較消耗資源。
      缺點:不易維護、不易復用、不易擴展.

      優點:易維護、易復用、易擴展,由于面向對象有封裝、繼承、多態性的特性,可以設計出低耦合的系統,使系統 更加靈活、更加易于維護 .
      缺點:性能比面向過程差


      原來君如此

      image.png

      面向對象的三大特性:

      1、封裝
      隱藏對象的屬性和實現細節,僅對外提供公共訪問方式,將變化隔離,便于使用,提高復用性和安全性。
      2、繼承
      提高代碼復用性;繼承是多態的前提。
      3、多態
      父類或接口定義的引用變量可以指向子類或具體實現類的實例對象。提高了程序的拓展性。

      五大基本原則:

      1、單一職責原則SRP(Single Responsibility Principle)
      類的功能要單一,不能包羅萬象,跟雜貨鋪似的。
      2、開放封閉原則OCP(Open-Close Principle)
      一個模塊對于拓展是開放的,對于修改是封閉的,想要增加功能熱烈歡迎,想要修改,哼,一萬個不樂意。
      3、里式替換原則LSP(the Liskov Substitution Principle LSP)
      子類可以替換父類出現在父類能夠出現的任何地方。比如你能代表你爸去你姥姥家干活。哈哈~~
      4、依賴倒置原則DIP(the Dependency Inversion Principle DIP)
      高層次的模塊不應該依賴于低層次的模塊,他們都應該依賴于抽象。抽象不應該依賴于具體實現,具體實現應該依賴于抽象。就是你出國要說你是中國人,而不能說你是哪個村子的。比如說中國人是抽象的,下面有具體的xx省,xx市,xx縣。你要依賴的是抽象的中國人,而不是你是xx村的。
      5、接口分離原則ISP(the Interface Segregation Principle ISP)
      設計時采用多個與特定客戶類有關的接口比采用一個通用的接口要好。就比如一個手機擁有打電話,看視頻,玩游戲等功能,把這幾個功能拆分成不同的接口,比在一個接口里要好的多。


      最后

      1、抽象會使復雜的問題更加簡單化。
      2、從以前面向過程的執行者,變成了張張嘴的指揮者。
      3、面向對象更符合人類的思維,面向過程則是機器的思想



      藍藍設計建立了UI設計分享群,每天會分享國內外的一些優秀設計,如果有興趣的話,可以進入一起成長學習,請掃碼藍小助,報下信息,藍小助會請您入群。歡迎您加入噢~~希望得到建議咨詢、商務合作,也請與我們聯系。

      截屏2021-05-13 上午11.41.03.png


      分享此文一切功德,皆悉回向給文章原作者及眾讀者.

      免責聲明:藍藍設計尊重原作者,文章的版權歸原作者。如涉及版權問題,請及時與我們取得聯系,我們立即更正或刪除。

      藍藍設計www.li-bodun.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務

      作者:豬_隊友

      鏈接:https://www.jianshu.com/p/7a5b0043b035

      來源:簡書

      日歷

      鏈接

      個人資料

      藍藍設計的小編 http://www.li-bodun.cn

      存檔

      主站蜘蛛池模板: 天天爽夜夜爽人人爽一区二区| 亚洲精品高清视频| 国产三级av在线播放| 国产精品一区二区亚瑟不卡| 欧美日本在线一区二区三区| 免费无码av一区二区波多野结衣| 视频区国产亚洲.欧美| 精品久久久久久久无码人妻热| 遂溪县| 亚洲精品码中文在线观看| 成人国产一区二区三区精品| 国产精品成人一区二区三区| 国产一区日韩二区三区| 精品国产一区二区三区www| 人人超碰人摸人爱| 国产区免费精品视频| 男女扒开双腿猛进入爽爽免费看| 人妻少妇精品无码专区动漫| 日韩中文字幕国产精品| 丁香婷婷色| 欧美福利在线| 亚洲精品在线视频自拍| 国产喷水1区2区3区咪咪爱av| 激情综合色综合久久丁香| 日本三级理论久久人妻电影| 国产精品 人妻互换| 三级国产99久久| 亚洲欧美综合一区二区三区| 91蜜臀国产自产在线观看| 在国产线视频A在线视频| 国内精自视频品线一二区| 韩国三级丰满少妇高潮| 武强县| 国产午夜福利片在线观看| 欧美日韩不卡视频合集| 国产一区二区三区激情视频| 国产成人精品无码免费看| 6080yyy午夜理论片中无码| 三级三级三级A级全黄| 亚洲成aⅴ人片在线观| 日韩福利视频导航|