1. java控制权限主要分类控制权限,和成员控制权限两种;
2. 权限控制修饰符有四种:public 公共的,protected 保护的,private 私有的,不写修饰符,默认的,为包修饰符;
3. public 为公共的,被public修饰的成员可以被所有类(不同包下或者同一包下的类)访问(类中的成员都必须由类对象或者类名(静态)进行访问),要想访问被public修饰的成员变量,只需要创建改成员对应类的对象,通过对象进行访问即可。(需要导入该类所在的包路径且)
4. 默认访问权限,该权限又称为包访问权限,如果类成员被设定为默认的访问权限,则只能被同一包下的其它成员访问。同样的,要想访问默认成员则需要创建相应的类对象或者是静态的由类名访问,
5. private私有访问权限,只能成员所属的类能访问,其它类都无法访问,那怕创建了该类的对象也无法访问私有成员变量;只能当前类能访问;
6. protected保护访问控制权限,这是一个修饰继承类的访问控制权限;如果基类和继承类不属于同一个包内,但是基类的成员属于包访问权限,继承类则无法访问并拥有基类的包访问权限成员,但是如果想要继承类拥有基类的成员但又不想设置为public访问权限则可以设置为protected访问权限,如果类成员访问修饰符为protected且该类为基类(有其它类继承与该类)则不管继承类是否同属于同一个包下都可以访问基类的protected修饰的成员;这就是保护成员的用法,主要为继承服务;
7. 类访问权限修饰符:类访问修饰符只能是public 和 默认的(包访问控制权限)包访问控制权限的类只能被同一包下的其他类创建对象和调用;
8. 如果想要让一个类成为私有的(即谁都不可以访问该类)可以将该类的所有构造方法都设为private,这样其它类都无法直接创建该类的对象也就无法访问该类;但是可以间接创建该类的对象,通过静态方法可以创建该类的对象;例如下面例子:
package com.xinye.bcsx.chapter6;
public class Demo642 {
private Demo642(){
}
private static Demo642 d = new Demo642();
public static Demo642 makeDemo642(){
return d;
}
public void f(){
}
}
package com.xinye.bcsx.chapter6;
public class Demo64 {
public static void main(String[] args){
//通过静态方法创建对象
Demo642.makeDemo642().f();
}
}