访问修饰符的学习总结

基本介绍

java 提供四种访问控制修饰符号,用于控制方法和属性 ( 成员变量 ) 的访问权限(范围) :
(1) 公开级别 : public 修饰 , 对外公开
(2) 受保护级别 : protected 修饰 , 对子类和同一个包中的类公开
(3) 默认级别 : 没有修饰符号 , 向同一个包的类公开
(4) 私有级别 : private 修饰 , 只有类本身可以访问 , 不对外公开

访问修饰符的访问范围

public>protected>默认>private

使用的注意事项

(1)修饰符可以用来修饰类中的属性,成员方法以及类

(2)只有默认的和public可以修饰类,并且遵循上述访问权限的特点

(3)成员方法的属性和访问规则完全一样

代码

Test类

public class Test {
        public static void main(String[] args) {
            A a = new A ();
            a.m1();
            B b = new B();
            b.say();
        }
    }

A类

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() {
//在同一类中,可以访问 public protected 默认 private 修饰属性和方法
        m1();
        m2();
        m3();
        m4();
    }
}

在方法hi中,通过m1、m2、m3和m4,可以在同一类中访问类A中的不同属性和方法

B类

public class B {
    public void say() {
        A a = new A();
//在同一个包下,可以访问 public , protected 和 默认修饰属性或方法,不能访问 private 属性或方法
        System.out.println("n1=" + a.n1 + " n2=" + a.n2 + " n3=" + a.n3 );
        a.m1();
        a.m2();
        a.m3();
//a.m4(); 错误的
    }
}

打印了属性n1、n2和n3的值,并调用了方法m1、m2和m3。

  • 因为n1、n2和n3具有包级访问权限,所以可以在同一包下的类中访问。

  • m1、m2和m3也具有相应的访问权限,所以可以在同一包下的类中调用。

  • 由于m4使用了private修饰符,无法在类B中直接调用

在say()方法中,创建了一个A类的对象a,并通过对象a访问了A类中的属性和方法。

  • 属性n1和n2使用了public和protected修饰符,所以可以在同一包下的类中访问。

  • 属性n3未使用访问修饰符,默认使用包级访问权限,所以可以在同一包下的类中访问。

  • 方法m1、m2和m3使用了public、protected和默认修饰符,所以可以在同一包下的类中访问。

  • 方法m4使用了private修饰符,所以无法在类B中直接访问

运行截图

总结

访问修饰符是面向对象编程中一个基础的概念。不同的访问修饰符提供了不同的访问权限,使得我们可以更好地组织代码和控制代码的可见性。通过掌握不同访问修饰符的含义,可以更好地编写出安全、灵活、可扩展的代码。

希望本篇博客对你理解访问修饰符和其在面向对象编程中的重要性有所帮助。如果还有疑问或需要进一步讨论,请随时提问。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值