2 回答

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊
public表明該數(shù)據(jù)成員、成員函數(shù)是對(duì)所有用戶開放的,所有用戶都可以直接進(jìn)行調(diào)用
private表示私有,私有的意思就是class內(nèi)的可以直接用,別的都不可以直接使用,相當(dāng)于私有財(cái)產(chǎn),只能自己使用,除了自己,都不可以使用。
protected對(duì)于子女、朋友來(lái)說(shuō),就是public的,可以自由使用,沒(méi)有任何限制,而對(duì)于其他的外部class,protected就變成private。

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊
只給自己使用的變量和函數(shù)就用private protected。這個(gè)只能說(shuō)概念了。就是想要允許他的子類直接訪問(wèn),就用protected。 其實(shí),你只需要記住,在設(shè)計(jì)過(guò)程中,先把所有的設(shè)置為private。然后再來(lái)慢慢分析是否需要修改為另外兩種。例如你寫一個(gè)類用來(lái)在屏幕上畫一個(gè)矩形,那肯定要有一個(gè)draw函數(shù)是public的,要不然別人或者類之外的代碼沒(méi)法用你這個(gè)類來(lái)畫圖,對(duì)吧?但是呢,你的draw函數(shù),為了多方面的原因,并不是在draw里面把所有圖形都畫完了,你可能想要寫一個(gè)畫邊框draw_frame和一個(gè)填充這個(gè)框架的函數(shù)叫做fill。然后draw函數(shù)就掉用這兩個(gè)函數(shù)來(lái)實(shí)現(xiàn)畫圖的功能。那么假設(shè)你又想設(shè)計(jì)一個(gè)類專門畫一種特殊邊框的矩形,那你是不是就要派生一個(gè)類出來(lái)呢?于是,這個(gè)派生的類里面,你想要調(diào)用原來(lái)那個(gè)父類的fill函數(shù)來(lái)填充,對(duì)吧?因?yàn)槟氵@個(gè)派生類只是邊框的畫法不同,填充方法還是相同的,沒(méi)必要重新寫一下fill的代碼噻,所以你就把fill改為protected,這樣子類也可以直接調(diào)用了。 于是,三種類型的基本用法我就講完了。補(bǔ)充: 簡(jiǎn)單的說(shuō),就是先把所有的設(shè)計(jì)為private,然后程序報(bào)錯(cuò)了,說(shuō)不能訪問(wèn),那么你就把他改成protected(如果提示不能訪問(wèn)的地方是在派生類里面)或者public(如果提示不能訪問(wèn)的地方是在類的外面) 多試幾次,你就知道,其實(shí)概念真的已經(jīng)把他們的區(qū)別說(shuō)完整了。
添加回答
舉報(bào)