美文网首页
Java中public、protected、default、pr

Java中public、protected、default、pr

作者: white_or_black | 来源:发表于2018-12-27 17:48 被阅读0次

    首先按照权限从上到下的顺序排序

    1. public 任何地方都可以访问,对访问无限制

    2. protected 同一个包内或者不同包内的子类可以访问

    3. default(默认省略) 同一个包内可以访问

    4. private 同一个类可以访问

    表格如下:

    限定符 类内部 本包 子类 外部包
    public
    protected
    default
    private

    代码如下:

    /**
     * @author wzq
     * @date 2018/12/27 上午11:43
     * @desc 最基本的一个类(被调用属性的一个类,分别定义了四个不同权限的属性)
     */
    
    public class Packet1Example {
    
        public int mPublic;
    
        protected int mProtected;
    
        int mDefault;
    
        private int mPrivate;
    
    }
    
    /**
     * @author wzq
     * @date 2018/12/27 上午11:47
     * @desc 一个相同包内的类, 尝试去获取Example类里面的属性
     */
    
    public class Packet1Test {
    
        private Packet1Test() {
            Packet1Example packet1Example = new Packet1Example();
            int a = packet1Example.mPublic;
            int b = packet1Example.mProtected;
            int c = packet1Example.mDefault;
        }
    
    }
    
    
    /**
     * @author wzq
     * @date 2018/12/27 上午11:49
     * @desc 一个相同包内的类, 尝试去获取Example类里面的属性
     */
    
    public class Packet2Test {
    
        private Packet2Test() {
            Packet1Example packet1Example = new Packet1Example();
            int a = packet1Example.mPublic;
        }
    
    }
    
    
    /**
     * @author wzq
     * @date 2018/12/27 上午11:51
     * @desc 一个不同包的继承自Example的子类,尝试去获取Example的属性
     */
    
    public class Packet2SonTest extends Packet1Example {
    
        private Packet2SonTest() {
            int a = mPublic;
            int b = mProtected;
        }
    }
    
    说明:Packet1Example、Packet1Test都是属于Package1的类;Packet2Test,Packet2SonTest(继承于Packet1Example)都是属于Package2的类。

    代码超简单,细心耐心的对比一下就可以规律了。

    相关文章

      网友评论

          本文标题:Java中public、protected、default、pr

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