美文网首页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权限控制

    浅析Java中的访问权限控制 今天我们来一起了解一下Java语言中的访问权限控制。在讨论访问权限控制之前,先来讨论...

  • Java访问控制符

    Java访问控制符的访问权限

  • Java基础学习六 关键字

    java语言中的访问控制权限修饰符 访问控制权限修饰来控制元素的访问范围。 访问控制权限修饰符包括:public ...

  • 2018-07-07学习小结 - 包及访问权限4

    学习 18.2 类成员的访问控制权限 Java中有四种访问控制权限,private、default、protect...

  • java访问控制权限以及复用类

    1、访问控制权限 java访问控制关键字共有:private default protected public,注...

  • Java访问控制修饰符

    访问控制修饰符: 用来控制对类、方法和变量访问权限的修饰符。Java 支持 4 种不同的访问权限: default...

  • java访问权限控制

  • Java 访问权限控制

    为什么要有访问权限控制? 重构(Refactor)即对现有代码进行重新构造、书写,从而使得代码更具有可读性、更容易...

  • 访问控制权限

    Java支持四种控制权限public、protected、default、private,这四种访问控制权限的特点...

  • Java访问控制权限

    导语 封闭性与访问控制权限是有直接联系的。 主要内容 Java访问控制权限 具体内容 在Java里面一共支持四种控...

网友评论

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

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