zoukankan      html  css  js  c++  java
  • 权限修饰符(public、protected、default、private)权限验证

    一、测试方法

    authorityTest包中建类AuthorityValidate
    package authorityTest;
    
    
    public class AuthorityValidate {
        private String authority1 = "private";
        protected String authority2 = "protected";
        private void runPrivate(String a) {
            System.out.print(a);
        }
        protected void runProtectde(String b) {
            System.out.print(b);
            System.out.print(authority1);
        }
    }

    在authorityTest包中建立TheThirdClass类并尝试调用AuthorityValidate 中不同权限的方法

    package authorityTest;
    
    import testRun.ChildOfAut;
    
    
    public class TheThirdClass {
        ChildOfAut a = new ChildOfAut();
        AuthorityValidate b = new AuthorityValidate();
        String c = b.authority2;
        String d = a.authority2;
        public static void main(String[] args) {
            AuthorityValidate b = new AuthorityValidate();
            ChildOfAut a = new ChildOfAut();
            System.out.print(b.authority2);
            System.out.print(a.authority2);
        }
    }

    在testRun包中建立ChildOfAut类继承AuthorityValidate 并尝试调用AuthorityValidate 中不同权限的方法

    package testRun;
    
    import authorityTest.AuthorityValidate;
    
    
    public class ChildOfAut extends AuthorityValidate {
        
        public static void main(String[] args) {
            ChildOfAut a = new ChildOfAut();
            System.out.print(a.authority2);
            a.runProtectde("果然如此");
        }
    }

    在testRun包中建立TheOtherPackage类并尝试调用AuthorityValidate 中不同权限的方法

    package testRun;
    
    import authorityTest.AuthorityValidate;
    
    
    public class TheOtherPackage {
        AuthorityValidate b = new AuthorityValidate();
        String a = b.authority2;
    }


    二、测试结果
    TheThirdClass 类能调用AuthorityValidate 中protected修饰的属性和方法;
    ChildOfAut类能调用AuthorityValidate 父类protected修饰的属性和方法;
    TheOtherPackage类无法调用AuthorityValidate 父类protected修饰的属性和方法;
    TheThirdClass,ChildOfAut,TheOtherPackage都不能访问AuthorityValidate 的private方法及属性;
    以上,证明被protected修饰的属性、方法可被同一包中的类以及其子类访问。
    被private修饰的属性、方法只能自身访问;
    同理可证public可被任意类访问、default可被同一包中的类访问。
     
  • 相关阅读:
    常见常用的CSS
    Js删除数组函数
    使用CSS让多出来的字变为省略号
    CSS缩写的样式
    mac下安装nginx
    ubuntu下程序员常用命令大全
    vue.js实现瀑布流之vue-waterfall-easy
    vue.js常见的报错信息及其解决方法的记录
    laravel5.4生成验证码
    java算法之超级丑数
  • 原文地址:https://www.cnblogs.com/qcxdoit/p/9279286.html
Copyright © 2011-2022 走看看