编程语言
首页 > 编程语言> > java访问权限控制

java访问权限控制

作者:互联网

java包机制

文章目录

java访问权限控制

对类进行访问权限控制

java对类的访问权限通过不同的访问修饰符来进行控制。

不同包的类只可以访问public修饰的类,不可以访问修饰符修饰的类,相对于下面的这个例子,就是将Student05类和Person01类的访问修饰符更改为public

package cn.zhz.Kind.dh;

public class Student05 {

}
package cn.zhz.Kind.dh;

public class Person01 {

}
package cn.zhz.Case.dh;

import cn.zhz.Kind.dh.Person01;
import cn.zhz.Kind.dh.Student05;

public class Test01 {
    public static void main(String args){
        Student05 student05 = new Student05();
        Person01 Person01 = new Person01();
    }
}

如果采用默认修饰符的话,就算导入了包中的这个类还是会报错
例如这样的一个错误:

java: cn.zhz.Kind.dh.Person01在cn.zhz.Kind.dh中不是公共的; 无法从外部程序包中对其进行访问

同一个包中的类可以随意访问,也就是这种情况下的public和默认修饰符都是可以使用的,这种情况下加不加public都是可以的

package cn.zhz.Test.dh;

public class Student06 {
    
}
package cn.zhz.Test.dh;

class Person2 {

}
package cn.zhz.Test.dh;

public class Test05 {
    public static void main(String[] args) {
        Student06 student06 = new Student06();
        Person2 person2 = new Person2();
    }
}

这个就是访问权限对类的控制。

对类的成员进行访问权限控制

类的成员分别是成员变量(属性)和成员方法(行为方法),java中对类的成员进行访问权限控制有四种:在这里插入图片描述

package cn.zhz.Kind.dh;
//类可以通过public修饰
public class Student07 {
    //private修饰的类的成员,只可以本类进行访问
    private int age;
    //默认修饰符修饰的类成员,本类可以访问
    String name;
    //protected修饰符修饰的类的成员,本类可以访问
    protected String address;
    //public修饰符修饰的类的成员,在哪里都可以被访问到
    public char sex;
    public void m1(){
        System.out.println(this.name);
        System.out.println(this.age);
        System.out.println(this.address);
        System.out.println(this.sex);
    }
}
package cn.zhz.Case.dh;

import cn.zhz.Kind.dh.Student07;

public class Test02 {
    public static void main(String [] args){
        //不同包的类只可以访问public修饰的类,不可以访问默认修饰符修饰的类
        Student07 s = new Student07();
        //默认修饰符修饰的类的成员,不可以被其他包的其他类访问
//        System.out.println(s.name);
        //protected修饰符修饰的类的成员,不可以被其他包中的其他类访问
//        System.out.println(s.address);
        System.out.println(s.sex);
    }
}
package cn.zhz.Case.dh;

import cn.zhz.Kind.dh.Student07;

public class Test {
    public static void main(String [] args){
        //同包的类既可以访问public修饰的类,也可以访问默认修饰符修饰的类
        Student07 s = new Student07();
        //其他类不可以调用Student07类private修饰的类成员(属性和方法)
//        s.age;
        //默认修饰符修饰的类成员,同包的其他类也可以访问
        //protected修饰符修饰的类成员,同包的其他类也可以访问
//        System.out.println(s.name);
//        System.out.println(s.address);
        s.m1();
    }
}

标签:zhz,java,cn,dh,修饰符,访问,权限,public
来源: https://blog.csdn.net/qq_45671732/article/details/115762406