- package語句必須是文件中的第一行非註釋程序代碼。
- 假設存在類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) {
wjc.one.Vector v=new wjc.one.Vector();
}
}
- 靜態引入類Vector可以直接調用Vector中靜態方法,如同方法在類Main內部一樣。
package wjc.main;
import static wjc.one.Vector.*;
public class Main {
public static void main(String[] args) {
print("str");
}
}
package wjc.one;
public class Vector {
public static void print(String str) {
System.out.print(str);
}
}
- 類的訪問控制修飾符一般只有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;
}