美文网首页Java
Java访问控制权限

Java访问控制权限

作者: 一个有故事的程序员 | 来源:发表于2017-09-06 13:38 被阅读19次

    导语

    封闭性与访问控制权限是有直接联系的。

    主要内容

    • Java访问控制权限

    具体内容

    在Java里面一共支持四种控制权限。public、protected、default、private,而这四种访问控制权限特点:

    No. 范围 private default protected public
    1 在同一个类中
    2 在同一包的不同类
    3 在不同包的子类
    4 在不同包的非子类

    除了public之外,对于封装可以使用private、protected、default,只不过一般不会去考虑使用default。
    重点来看protected这种权限。它直接与包的定义有关。

    protected访问权限

    protected访问权限,它直接与包的定义有关。

    范例:protected访问权限
    定义cn.mldn.demoa.A类

    package cn.mldn.demoa;
    
    public class A {
        protected String info = "Hello";
    }
    

    定义cn.mldn.demob.B类

    package cn.mldn.demob;
    improt cn.mldn.demoa.A;
    
    public class B extends A {  // 是A不同包的子类
        public void print() {
            System.out.println("A类中的info = " + super.info)
        }
    }
    

    定义Test类

    package test;
    improt cn.mldn.demob.B;
    
    public class Test {
        public static void main(String args[]) {
            new B().print();
        }
    }
    

    输出结果:

    A类中的info = Hello
    

    B中的print()方法会输出A类中的info属性。
    Test类直接去输出A类中的info属性(错误代码)

    package test;
    improt cn.mldn.demoa.A;
    
    public class Test {
        public static void main(String args[]) {
            A a = new A();
            System.out.println(a.info);
        }
    }
    

    编译会出错,由于Test与A类不在同一个包,并且没有继承关系,所以是无法访问protected属性的。

    总结

    Java的封装性是以private、protected、default三种权限的定义。

    更多内容戳这里(整理好的各种文集)

    相关文章

      网友评论

        本文标题:Java访问控制权限

        本文链接:https://www.haomeiwen.com/subject/uunmjxtx.html