访问权限控制

  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;
}
原文地址:https://www.cnblogs.com/wjc920/p/9256171.html