• java的访问权限


     

    java的访问权限

    一、访问权限

    1. 权限简介

    java有四种访问权限:public > protected > default > private。

    注:protected、private不能修饰类,private不能修饰抽象方法。

    2. 权限详情

    public ------所修饰的成员,在任何位置均可被访问。

    protected -所修饰的成员,能被其子类访问。

    default -----所修饰的成员,只能在同包中被访问。

    private -----所修饰的成员,只能在本类中被访问。

    访问权限 同类 同包 不同包子类 不同包非子类
    public
    protected ×
    default × ×
    private × × ×

    二、权限测试

    1. 同类

    /*
     * @Author: bpf
     * @FilePath: Learn in the InternetCodejavacnblogsmyPackAsk.java
     */
    package cnblogs.myPack;
    
    public class Ask {
        public String s1 = "我是公共";
        String s2 = "我是友好";
        protected String s3 = "我是受保护";
        private String s4 = "我是私有";
    
        public void speak(String s) {
            System.out.println(s);
        }
    
        public static void main(String args[]) {
            Ask ask = new Ask();
            ask.speak(ask.s1);
            ask.speak(ask.s2);
            ask.speak(ask.s3);
            ask.speak(ask.s4);
        }
    }

     由此可见,在同类中,四种权限均可被访问。

    2. 同包

    /*
     * @Author: bpf
     * @FilePath: Learn in the InternetCodejavacnblogsmyPackE.java
     */
    package cnblogs.myPack;
    
    public class E {
        public static void main(String args[]) {
            Ask ask = new Ask();
            ask.speak(ask.s1);
            ask.speak(ask.s2);
            ask.speak(ask.s3);
            ask.speak(ask.s4);
        }
    }

     由此可见,在同包中,四种权限只有private不能被访问。

    3. 不同包子类

    /*
     * @Author: bpf
     * @FilePath: Learn in the InternetCodejavacnblogs	empE.java
     */
    package cnblogs.temp;
    import cnblogs.myPack.Ask;
    
    public class E extends Ask {
        public static void main(String args[]) {
            Ask father = new Ask();// 使用父类的对象访问
            father.speak(father.s1);
            father.speak(father.s2);
            father.speak(father.s3);
            father.speak(father.s4);
    
            E child = new E();     // 使用子类的对象访问
            child.speak(child.s1);
            child.speak(child.s2);
            child.speak(child.s3);
            child.speak(child.s4);
        }
    }

     由此可见,当使用父类创建的对象访问时,只能访问public;当使用子类创建的对象访问时,可以访问public、protected。

    4. 不同包非子类

    /*
     * @Author: bpf
     * @FilePath: Learn in the InternetCodejavacnblogscomE.java
     */
    package cnblogs.com;
    import cnblogs.myPack.Ask;
    
    public class E{
        public static void main(String args[]) {
            Ask ask = new Ask();
            ask.speak(ask.s1);
            ask.speak(ask.s2);
            ask.speak(ask.s3);
            ask.speak(ask.s4);
        }
    }

     由此可见,在不同包非子类中,只能访问public。

  • 相关阅读:
    MVAPICH
    sql server触发器的例子
    Sql Server 判断表或数据库是否存在
    JS验证用户真实姓名
    js实现瀑布流的一种简单方法实例分享
    C#实现登录窗口(不用隐藏)
    判断滚动条到底部的JS代码
    php 中文字符串首字母的获取函数
    C#获取当前页面的URL
    C#动态生成图书信息XML文件
  • 原文地址:https://www.cnblogs.com/bpf-1024/p/12663335.html
Copyright © 2020-2023  润新知