- 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;
}