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可被同一包中的类访问。
     
  • 相关阅读:
    结对编程项目作业3
    团队编程项目作业1-成员简介及分工
    团队编程项目作业1-需求分析
    结对编程项目作业1
    20171123-构建之法:现代软件工程-阅读笔记
    课后作业-阅读任务-阅读提问-4
    软件工程课程总结
    结对编程项目五子棋-结对项目总结
    课后作业-阅读任务-阅读笔记-1
    结对编程项目作业3
  • 原文地址:https://www.cnblogs.com/qcxdoit/p/9279286.html
Copyright © 2011-2022 走看看