java访问权限控制

java包机制

java访问权限控制

对类进行访问权限控制

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

  • public修饰符:公有访问级别
  • 默认修饰符:包级私有访问级别
  • 注意:

不同包的类只可以访问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();
    }
}

java中static的用法

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_45671732

你们鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值