zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    Python抓取妹子图,内含福利
    我是如何通过一部动漫学习英语的?
    SqlServer,Oracle,db2,MySql查询表索引
    cmd命令大全
    资源推荐:PPT快闪资源合集附配套字体下载
    安卓抖音全球地区版
    tomcat的Server.xml详解和Host的配置
    Java总结篇系列:Java多线程(三)
    Java总结篇系列:Java多线程(二)
    Java总结篇系列:Java多线程(一)
  • 原文地址:https://www.cnblogs.com/bpf-1024/p/12663335.html
Copyright © 2011-2022 走看看