国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java類訪問權限與成員訪問權限解析

2019-11-26 14:33:56
字體:
來源:轉載
供稿:網友

在寫代碼的時候有個問題:包內定義了一個接口類,另外一個包要實現它,這里采用接口隔離與依賴倒置原則,將兩個包的依賴關系倒置過來。但是,這里就遇到了一個問題,實現類采用工廠模式來實例化,所以實現類就不想暴露給包外,但是實現類還要實現public接口。所以這里有產生了一個疑問,如果類是default類型,成員函數是public類型,那么訪問限制是怎樣的呢?
實現驗證
1. 先在一個包中定義一個接口類:

package mytest  public interface ClassAccessTest{  void getData();  CharSeqence getString();}

2. 在實現包中定義實現類和工廠

package classaccesstest  import mytest.ClassAccessTest  class ClassAccessTestImp implements ClassAccessTest{  int mA = 0;    ClassAccessTestImp(int a)  {    mA = a;  }    public void getData()  {    System.out.printlin(" the data is     " + mA);  }    public CharSequence getString()  {    return (" the data is " + mA);  }  package classaccesstest  import mytest.ClassAccessTest  public class Factory{  public static ClasAccessTest getAccessTest()  {    return new ClassAccessTestImp(10);  }}

3. 再在原包中使用接口:

package mytest  import classacesstest.Factory//import classaccesstest.ClassAccessTestImp  public class TestMain{  public static void main(String arg[])  {    Factory.getAccessTest().getString();<span style="white-space:pre">  </span>//<span style="font-family: Arial, Helvetica, sans-serif;">ClassAccessTest test = </span>new <span style="font-family: Arial, Helvetica, sans-serif;">ClassAccessTestImp(10);</span>    }}

4.結果:
在TestMain類中,使用非注釋掉的部分可以正常運行,使用注釋掉的部分會報錯,ClassAccessTestImp未定義
結論
由上推論出,java中類的訪問權限是可以小于成員的訪問權限的,依賴倒置和包的封裝性的要求下,可以實現滿足要求。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 股票| 新安县| 安乡县| 清水河县| 望奎县| 临泽县| 广安市| 三明市| 陇川县| 文成县| 武清区| 上栗县| 东乡| 柳河县| 荣成市| 岳阳市| 郁南县| 神农架林区| 洪江市| 仁布县| 雅安市| 兴隆县| 仪陇县| 六安市| 银川市| 郓城县| 台北县| 望都县| 高雄市| 射洪县| 宁晋县| 瑞安市| 长岛县| 玛多县| 吉水县| 南木林县| 宁远县| 沐川县| 沐川县| 香格里拉县| 桃园市|