最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Java的面向?qū)ο蠛兔嫦蜻^程

 更新時間:2023年05月12日 11:13:16   作者:一一哥Sun  
我們知道,Java是面向?qū)ο蟮木幊陶Z言,但是至今仍有不少同學(xué)還不太懂”面向?qū)ο蟆暗拇_切含義,今天這篇文章就帶大家真正地認識面向?qū)ο?,感興趣的同學(xué)可以跟著小編一起來學(xué)習(xí)

一. 面向?qū)ο?/h2>

既然我們要學(xué)習(xí)面向?qū)ο?,那首先得對其基本概念、特性、對象、類等?nèi)容有所了解。

1. 概念

我們知道Java是面向?qū)ο蟮木幊陶Z言,所以首先得給大家解釋一下到底啥是面向?qū)ο缶幊獭?/p>

所謂的面向?qū)ο缶幊?Object-Oriented Programming,簡稱OOP) ,其實是一種軟件開發(fā)思想,也是一種編程范式。在面向?qū)ο蟮木幊趟枷氤霈F(xiàn)之前,主要是面向過程這種思想壟斷著程序員們的編程思維。 ”面向“這個詞,從字面理解就是”對著、朝向“,準(zhǔn)確地說應(yīng)該是 ”遵從、依照、按照、根據(jù)“ 的意思。 ”對象“ ,并不是指你的男/女朋友那個”對象“,而是指真實世界中的一個個實體,有點類似于哲學(xué)中”抽象“與”具體“范疇中的一個個”個體“。

可以說,在面向?qū)ο蟮木幊桃?guī)范中, “一切皆對象”,對象就是面向?qū)ο缶幊痰暮诵?/strong>。我們把現(xiàn)實世界中的一個個對象或物體,抽象地體現(xiàn)在編程世界中。就好比我們想駕駛一輛奧迪A6,A6就是一個對象,制造商給A6賦予了各種功能和特性,我們就可以調(diào)用這個對象完成一系列操控。所以每一個對象都可以包含一系列具體的操作,最終一個個的對象又組成了完整的Java程序。這些對象可以是獨立存在的,也可以是從別的對象中繼承過來的。對象之間通過相互作用傳遞信息,實現(xiàn)程序開發(fā)。

給大家舉個栗子,假如我們想吃飯,按照面向?qū)ο蟮慕鉀Q思維就是:

創(chuàng)造一個“農(nóng)民”對象,去種地;

創(chuàng)造一個“廚師”對象,去做飯;

創(chuàng)造一個“食客”對象,去吃飯;

......

問題解決!

2. 特點

在面向?qū)ο缶幊讨?,一個對象會有以下特點:

  • 對象具有屬性和行為;
  • 對象具有變化的狀態(tài);
  • 對象具有唯一性;
  • 對象都是某個類的實例;
  • 一切皆對象,真實世界中所有的事物都可以視為對象。

當(dāng)然,如果只是這樣跟大家解釋一通,很多小白肯定還是不明白到底啥是面向?qū)ο蟆e急,面向?qū)ο笫且环N認知思維,一種思維的養(yǎng)成,并不是一朝一夕就可以形成的。有些科班出身的Java程序員,在學(xué)校里接觸了很久的面向?qū)ο?,甚至都做了幾年的開發(fā),真讓他解釋啥是面向?qū)ο螅廊缓茔露?。我們要想真正地理解面向?qū)ο螅豢磶灼恼潞鸵曨l是很難吃透的。你需要進行大量的編程實踐,寫著寫著,有一天你就會突然頓悟:“啊,原來這就是面向?qū)ο蟀?rdquo;!

二. 面向過程

在上面的小節(jié)中,還給大家提到了“面向過程”這個概念,雖然這不是我們要掌握的內(nèi)容,但我覺得還是有必要跟大家拓展解釋一下。

1. 概念

面向過程(Procedure-Oriented Programming,簡稱POP)也是一種編程思想和模式。 它出現(xiàn)的時間比面向?qū)ο筮€要早,可以說是早期高級編程語言所采用的思維鼻祖。采用面向過程思維的編程語言有C、Fortran、Pascal、Basic等。

面向過程的編程思想其實很機械粗暴,所有的事情都可以拆分成一系列要執(zhí)行的計算步驟,通常采用自上而下、順序執(zhí)行的方式來實現(xiàn)。 還是給大家舉吃飯的栗子,如果是按照面向過程的解決思維就是:

開墾荒地;

種糧種菜;

收獲加工;

做飯烹飪;

開始吃飯;

收拾整理;

.......

你看,整個執(zhí)行邏輯就是這么機械粗暴,簡單明了。面向過程就是把目標(biāo)的實現(xiàn)拆分成了一個個的實現(xiàn)過程,而每一步又可以繼續(xù)拆分成若干個子步驟。這種解決問題的思維,與面向?qū)ο笫怯忻黠@不同的。

2. 特點

根據(jù)以上分析,我們可以感受到面向過程的優(yōu)點在于,性能上它比面向?qū)ο笠摺R驗樵诿嫦驅(qū)ο笾?,我們在調(diào)用類時需要進行實例化,開銷比較大。但面向過程的缺點也很明顯,代碼不易維護、復(fù)用和擴展性都很差,開發(fā)效率較低。所以面向過程的開發(fā)技術(shù),主要是用在單片機、嵌入式開發(fā)、Linux/Unix等對性能要求較高,代碼改動不頻繁的場景中。

3. 面向?qū)ο笈c面向過程的對比

面向過程的解決思維是“步驟化”的 。 解決問題就是分析出實現(xiàn)一個需求所需要的步驟,通過函數(shù)(方法)一步一步地去實現(xiàn),接著我們依次調(diào)用這些函數(shù)即可。

而面向?qū)ο蟮慕鉀Q思維是“行為化”的。就是把整個需求按照特點、功能劃分,將存在共性的部分封裝成類。類實例化后就是對象,創(chuàng)建對象不是為了完成某一個步驟,而是為了描述某個事物在解決問題時的行為。按照這種思維,項目代碼就很容易維護、復(fù)用、擴展,并且系統(tǒng)會更加的靈活。

三. 結(jié)語

至此,就給大家解釋了面向?qū)ο蠛兔嫦蜻^程的概念,并對比了兩者的區(qū)別,你現(xiàn)在知道什么叫做面向?qū)ο罅藛幔?/p>

到此這篇關(guān)于詳解Java的面向?qū)ο蠛兔嫦蜻^程的文章就介紹到這了,更多相關(guān)Java面向?qū)ο蠛兔嫦蜻^程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring?ComponentScan的掃描過程解析

    Spring?ComponentScan的掃描過程解析

    這篇文章主要介紹了spring?ComponentScan的掃描過程解析,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • IDEA中properties與yml文件的轉(zhuǎn)變方式

    IDEA中properties與yml文件的轉(zhuǎn)變方式

    文章介紹了如何在IntelliJ IDEA 2021.1.1中安裝和使用ConvertYAMLandPropertiesFile插件進行YAML和Properties文件之間的轉(zhuǎn)換,安裝步驟包括導(dǎo)航到設(shè)置、安裝插件、找到并安裝插件等,插件支持從Properties文件轉(zhuǎn)換為YAML文件,但轉(zhuǎn)換過程中會丟失注釋
    2024-12-12
  • Maven將Jar包打入本地倉庫的實現(xiàn)

    Maven將Jar包打入本地倉庫的實現(xiàn)

    項目需要用到一個Jar包,不能從遠程倉庫拉取,只有一個Jar包,所以需要將Jar包打入到本地倉庫才能引入項目,本文主要介紹了Maven將Jar包打入本地倉庫的實現(xiàn),感興趣的可以了解一下
    2023-12-12
  • springcloud項目改名的操作方法

    springcloud項目改名的操作方法

    這篇文章主要介紹了springcloud項目改名的操作方法,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • 解決java執(zhí)行cmd命令調(diào)用ffmpeg報錯Concat error - No such filter ''[0,0]''問題

    解決java執(zhí)行cmd命令調(diào)用ffmpeg報錯Concat error - No such filter ''[0,0]

    這篇文章主要介紹了java執(zhí)行cmd命令,調(diào)用ffmpeg報錯Concat error - No such filter '[0,0]'解決方法,本文通過截圖實例代碼說明給大家介紹的非常詳細,對大家的工作或?qū)W習(xí)有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • JProfiler11使用教程之JVM調(diào)優(yōu)問題小結(jié)

    JProfiler11使用教程之JVM調(diào)優(yōu)問題小結(jié)

    這篇文章主要介紹了JProfiler11使用教程之JVM調(diào)優(yōu),本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • 如何在mapper文件中使用in("str1","str2")

    如何在mapper文件中使用in("str1","str2")

    這篇文章主要介紹了如何在mapper文件中使用in("str1","str2"),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 使用springboot整合RateLimiter限流過程

    使用springboot整合RateLimiter限流過程

    這篇文章主要介紹了使用springboot整合RateLimiter限流過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Java實現(xiàn)域名解析的示例詳解(附帶源碼)

    Java實現(xiàn)域名解析的示例詳解(附帶源碼)

    這篇文章將從理論到實踐和從代碼到測試,全方位地講解如何利用?Java?實現(xiàn)一個簡單的域名解析器,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-03-03
  • Java線程同步實例分析

    Java線程同步實例分析

    這篇文章主要介紹了Java線程同步用法,實例分析了java中線程同步的相關(guān)實現(xiàn)技巧與注意事項,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07

最新評論

宜阳县| 丰原市| 台南县| 武川县| 衡水市| 沙坪坝区| 吉木乃县| 庆云县| 龙泉市| 萨嘎县| 清丰县| 沙田区| 景德镇市| 昭通市| 广丰县| 泾阳县| 高青县| 东莞市| 丹巴县| 阿勒泰市| 河北省| 茶陵县| 陇川县| 本溪| 团风县| 临沧市| 七台河市| 天等县| 米林县| 南汇区| 茶陵县| 饶平县| 和硕县| 雷山县| 广元市| 京山县| 莒南县| 交城县| 铁力市| 监利县| 宁安市|