欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

1. 概念

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

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

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

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

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

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

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

......

問題解決!

2. 特點(diǎn)

在面向?qū)ο缶幊讨?,一個(gè)對(duì)象會(huì)有以下特點(diǎn):

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

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

二. 面向過程

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

1. 概念

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

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

開墾荒地;

種糧種菜;

收獲加工;

做飯烹飪;

開始吃飯;

收拾整理;

.......

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

2. 特點(diǎn)

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

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

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

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

三. 結(jié)語

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

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

相關(guān)文章

  • 教你Spring如何使用三級(jí)緩存解決循環(huán)依賴

    教你Spring如何使用三級(jí)緩存解決循環(huán)依賴

    這篇文章主要介紹了Spring使用三級(jí)緩存解決循環(huán)依賴的過程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • Java字符串拼接效率測(cè)試過程解析

    Java字符串拼接效率測(cè)試過程解析

    這篇文章主要介紹了Java字符串拼接效率測(cè)試過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 利用Redis實(shí)現(xiàn)延時(shí)處理的方法實(shí)例

    利用Redis實(shí)現(xiàn)延時(shí)處理的方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于利用Redis實(shí)現(xiàn)延時(shí)處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用Redis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Java?InputStream實(shí)戰(zhàn)之輕松讀取操作文件流

    Java?InputStream實(shí)戰(zhàn)之輕松讀取操作文件流

    在Java中,輸入輸出是非常重要的基礎(chǔ)功能,其中,InputStream是Java中的一個(gè)重要輸入流類,用于從輸入源讀取數(shù)據(jù),下面我們就來學(xué)習(xí)一下InputStream類的相關(guān)知識(shí)吧
    2023-10-10
  • Java中實(shí)現(xiàn)String.padLeft和String.padRight的示例

    Java中實(shí)現(xiàn)String.padLeft和String.padRight的示例

    本篇文章主要介紹了Java中實(shí)現(xiàn)String.padLeft和String.padRight,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • 與眾不同的 Java 日期格式化大全

    與眾不同的 Java 日期格式化大全

    這篇文章主要介紹了與眾不同的 Java 日期格式化大全,在 Java 中,經(jīng)常要將時(shí)間字符串轉(zhuǎn)換為日期,或者要將日期轉(zhuǎn)換為時(shí)間字符串。,需要的朋友可以參考下
    2019-06-06
  • Spring 靜態(tài)變量/構(gòu)造函數(shù)注入失敗的解決方案

    Spring 靜態(tài)變量/構(gòu)造函數(shù)注入失敗的解決方案

    我們經(jīng)常會(huì)遇到一下問題:Spring對(duì)靜態(tài)變量的注入為空、在構(gòu)造函數(shù)中使用Spring容器中的Bean對(duì)象,得到的結(jié)果為空。不要擔(dān)心,本文將為大家介紹如何解決這些問題,跟隨小編來看看吧
    2021-11-11
  • Java中的ThreadPoolExecutor線程池詳解

    Java中的ThreadPoolExecutor線程池詳解

    這篇文章主要介紹了Java中的ThreadPoolExecutor線程池詳解,當(dāng)線程池中的線程數(shù)大于 corePoolSize 時(shí),keepAliveTime 為多余的空閑線程等待新任務(wù)的最長(zhǎng)時(shí)間,超過這個(gè)時(shí)間后多余的線程將被終止,需要的朋友可以參考下
    2023-12-12
  • springCloud項(xiàng)目搭建流程步驟分解

    springCloud項(xiàng)目搭建流程步驟分解

    SpringCloud 作為當(dāng)下最為流行的微服務(wù)框架,也越來越多的人去學(xué)習(xí)和使用這個(gè)框架。下面,我將帶大家簡(jiǎn)單地認(rèn)識(shí)一下 SpringCloud 框架,以及如何來搭建一個(gè) SpringCloud 項(xiàng)目環(huán)境的教程
    2022-05-05
  • Spring IOC推導(dǎo)與DI構(gòu)造器注入超詳細(xì)講解

    Spring IOC推導(dǎo)與DI構(gòu)造器注入超詳細(xì)講解

    這篇文章主要介紹了Spring IOC推導(dǎo)與DI構(gòu)造器注入,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-02-02

最新評(píng)論