大家好,我是你的老師父,這次講講剩下的兩個權限修飾符一個是public,其實之前講過,另外一個是什麼都不寫那其實是default或者稱作friendly修飾符。
public:
這個修飾符權限完全公開,所有類和包都可以訪問的到
作用:一般用作公開的方法、常量、靜態變量、靜態常量等地方
注意:屬性上很少用public,為了保證安全,一般屬性都是要封裝private的。
那default或者說friendly
這個是包內可以訪問,僅僅是包內所有類都可以訪問
區別於protected的是:
protected是
1、包內所有類可以訪問
2、包外的子類可以訪問
默認訪問權限是:
1、包內可以訪問、同一個包內子類也可以訪問!
2、包外任何類都是不能訪問的!
比如下邊的例子:
大家看到TeaCup繼承了Cup類,Cup的deep屬性是用的protected的訪問權限,雖然兩個類在不同包中,但是Cup的派生類也TeaCup是可以直接使用deep這個屬性的。
那再看下邊這個例子和上邊例子目錄結構一致,唯一不同的是屬性的訪問權限是默認的:
這個例子中Desktop中所有屬性都是默認訪問權限,也就是包訪問權限
StudentDesktop和Desktop分別在兩個包中
即使StudentDesktop是Desktop的派生類,那StudentDesktop也是無法訪問屬性的。
那默認訪問權限在同一個包中的子類呢?咱們驗證下,把StudentDesktop移動到test01包中(滑鼠拽過去就可以)
那大家看,兩個在相同目錄了,並且是父子關係,那屬性是默認的訪問權限,這個屬性在子類中是可以訪問的!
大家自己試試在同一個目錄下,屬性默認的訪問權限在非子類的類中是否可以訪問?(其實是可以訪問的)
那默認訪問權限大家應該清楚了。
到此為止private、protected、default和public這四種訪問權限的方式大家都學會了,
我給大家都列舉一下private、protected、default和public這四種訪問權限的權限列表吧,看截圖:
現在四種訪問權限已經跟大家講完了,順帶講了面向對象三大特徵中的其中兩種。下一篇把面向對象的第三大特徵:多態跟大家講講,這個是一個難點,希望大家先找找資料看看。另外大家有時間回顧回顧這幾篇文章!