第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問 抽象和封裝的區(qū)別?

請問 抽象和封裝的區(qū)別?

JVM
滄海一幻覺 2019-09-03 04:00:05
抽象和封裝的區(qū)別?封裝和抽象之間的確切區(qū)別是什么?
查看完整描述

3 回答

?
ABOUTYOU

TA貢獻1812條經(jīng)驗 獲得超5個贊

這里的大多數(shù)答案都集中在OOP上,但是封裝開始的時間要早得多:

  • 每個函數(shù)都是封裝;在偽碼中:

    point x = { 1, 4 }
    point y = { 23, 42 }
    
    numeric d = distance(x, y)

    這里,distance封裝平面中兩點之間(歐幾里德)距離的計算:它隱藏實現(xiàn)細節(jié)。這是封裝,純而簡單。

  • 抽象化是…的過程泛化*具體實施,并使其適用于不同類型的數(shù)據(jù),盡管有些相關。抽象的經(jīng)典例子是C的qsort函數(shù)對數(shù)據(jù)進行排序:

    關于qsort是它不關心它排序的數(shù)據(jù)-事實上,它不知道它分類的數(shù)據(jù)。相反,它的輸入類型是一個無類型指針(void*),這只是C的一種說法:“我不在乎數(shù)據(jù)的類型”(這也稱為類型擦除)。重要的一點是qsort無論數(shù)據(jù)類型如何,始終保持不變。唯一更改是比較函數(shù),它因數(shù)據(jù)類型而異。qsort因此,期望用戶將所述比較函數(shù)作為函數(shù)參數(shù)提供。

封裝和抽象是緊密聯(lián)系在一起的,所以您可以指出它們確實是不可分割的。出于實際目的,這可能是正確的;盡管如此,這里的封裝并不是抽象的:

class point {
    numeric x
    numeric y
}

我們封裝了點的坐標,但是除了邏輯分組之外,我們并沒有將它們抽象出去。

這里有一個抽象的例子,它不是封裝的:

T pi<T> = 3.1415926535

這是一個泛型變量 pi對于給定的值(π),聲明并不關心變量的確切類型。誠然,我很難在實際代碼中找到這樣的東西:抽象幾乎總是使用封裝。然而,上述是嗎?實際上存在于C+(14)中,可變模板(=變量的通用模板);具有稍微復雜的語法,例如:

template <typename T> constexpr T pi = T{3.1415926535};



查看完整回答
反對 回復 2019-09-04
?
呼如林

TA貢獻1798條經(jīng)驗 獲得超3個贊

封裝隱藏實現(xiàn)細節(jié),這些實現(xiàn)細節(jié)可能用于一般行為,也可能不用于特定行為。

抽象化是提供一個泛化(例如,對一組行為)。

下面是一個很好的讀物:抽象、封裝和信息隱藏作者:The Object Agency的愛德華·V·貝拉德。


查看完整回答
反對 回復 2019-09-04
?
Qyouu

TA貢獻1786條經(jīng)驗 獲得超11個贊

許多答案及其例子都具有誤導性。

封裝是.的包裝數(shù)據(jù)對該數(shù)據(jù)進行操作的函數(shù)并限制對象的某些組件的訪問。
封裝意味著對象的內(nèi)部表示通常隱藏在對象定義之外的視圖之外。

抽象化是一種表示基本特性而不包括實現(xiàn)細節(jié)的機制。

封裝:-- 信息隱藏.
抽象:-- 實現(xiàn)隱藏.

例子:

class foo{
    private:
        int a, b;
    public:
        foo(int x=0, int y=0): a(x), b(y) {}

        int add(){    
            return a+b;   
        } 
}

的任何對象的內(nèi)部表示foo類隱藏在類之外。->封裝。
對象的任何可訪問成員(數(shù)據(jù)/函數(shù))foo受到限制,并且只能由該對象訪問。

foo foo_obj(3, 4);
int sum = foo_obj.add();

實施方法add是隱藏的。->抽象。



查看完整回答
反對 回復 2019-09-04
  • 3 回答
  • 0 關注
  • 648 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號