Java学习之包访问修饰符

基本介绍

java 提供四种访问控制修饰符号,用于控制方法和属性(成员变量)的访问权限(范围)

  1. 公开级别:用 public 修饰,对外公开
  2. 受保护级别:用 protected 修饰,对子类和同一个包中的类公开
  3. 默认级别:没有修饰符号,向同一个包的类公开.
  4. 私有级别:用 private 修饰,只有类本身可以访问,不对外公开.

四种访问修饰符的访问范围

在这里插入图片描述
要求:背诵此表格
表格解释:在同一个类中四种都可以访问
举例说明
例1:

package com.hspedu.modifier;

public class A {
    //四个属性,分别使用不同的访问修饰符来修饰
    public int n1 = 100;
    protected int n2 = 200;
    int n3 = 300;
    private int n4 = 400;
    public void m1(){
        //在同一个类中该方法可以访问public、protected,默认,private修饰的属性或方法
        // 属性
        System.out.println("n1=" + n1 + " n2=" + n2 + " n3=" + n3 +" n4=" + n4);
    }
    protected void m2() { }
    void m3() { }
    private void m4() { }
    public void hi(){
        //方法
        m1();
        m2();
        m3();
        m4();
    }

同包不同类的话不可以访问private

package com.hspedu.modifier;

public class B {
    //同包
    public void say(){
        //A类是public,所以同包不同类也可以访问
        A a = new A();
        //直接访问属性,同包不同类的时候,不能访问private修饰的属性或方法
        System.out.println("n1=" + a.n1 + " n2=" + a.n2 + " n3=" + a.n3);//输出100,200,300

        //不能访问private修饰的方法
        a.m1();//输出100,200,300,400
        a.m2();
        a.m3();
    }
}

新建Test类运行上述代码

package com.hspedu.modifier;

public class Test {
    public static void main(String[] args) {
        //跨类调用,public A类
        A a = new A();
        //是调用m1方法,其访问修饰符是public,不是直接访问属性
        // 所以可以同包不同类的调用
        a.m1();
        B b = new B();
        b.say();
    }
}

运行结果:
在这里插入图片描述
第一行是a.m1();的运行结果
第二行和第三行是b.say();即b类say()方法的运行结果

如果是不同包的话,只可以访问public

package com.hspedu.pkg;

import com.hspedu.modifier.A;

public class Test {
    public static void main(String[] args) {
        A a = new A();
        //在不同包下只能访问public修饰的属性或方法
        //不可以访问ptotected,私有,private修饰的属性或方法
        System.out.println("n1 =" + a.n1);


        a.m1();
        //不能访问a.m2();a.m3();a.m4()
    }
}

属于不同的包:package com.hspedu.modifierpackage com.hspedu.pkg

类的访问修饰符:只有两种:public和默认,访问范围同上,public通用,默认只可以同类同包

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值