訪問權限控制

  1. package語句必須是文件中的第一行非註釋程序代碼。
  2. 假設存在類wjc.one.Vector.wjc和wjc.two.Vector.wjc,然後在Main類中同時引入包wjc.one.*和wjc.two.*,代碼三中註釋行會編譯報錯(編譯器會無法識別是哪一個Vector),所以只能使用全路徑的方式使用Vector類。
//代碼一
package wjc.one;
public class Vector {}
//代碼二
package wjc.two;
public class Vector {}
//代碼三
package wjc.main;
import wjc.one.*;
import wjc.two.*;
public class Main {
    public static void main(String[] args) {
            //Vector v=new Vector();
        wjc.one.Vector v=new wjc.one.Vector();
    }

}
  1. 靜態引入類Vector可以直接調用Vector中靜態方法,如同方法在類Main內部一樣。
package wjc.main;
//靜態引入Vector
import static wjc.one.Vector.*;

public class Main {
    public static void main(String[] args) {
        //可以直接調用Vector中的print(String str)方法
        print("str");
    }
}
package wjc.one;
public class Vector {
    public static void print(String str) {
        System.out.print(str);
    }
}
  1. 類的訪問控制修飾符一般只有public和默認包訪問權限(內部類是可以是private和protected,121頁此處有一問?),如果想控制類的使用範圍,可以用構造方法的訪問權限來控制。如:將public類的構造方法定義爲private,則類只能在內部實例化。此時不影響static方法和域的訪問,即使構造方法爲private仍然可以通過類名.靜態方法調用類中的靜態方法。
package classaccess.one;
public class Main {
    public static void main(String[] args) {
        System.out.println(ClassAccess.i);
    }
}
class ClassAccess{
    private ClassAccess(){}
    public static int i=1;
}
發佈了47 篇原創文章 · 獲贊 4 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章