zoukankan      html  css  js  c++  java
  • Java四种访问修饰符

    Java 四种访问权限

    一、概述

    访问等级比较:public > protected > default > private
    

    无论是方法还是成员变量,这四种访问权限修饰符作用都一样

    • public:不管包外包内,所有类(子类+非子类)均可使用
    • protected
      • 包内:所有类可使用
      • 包外:子类可使用,非子类不可使用
    • default
      • 包内:所有类可使用
      • 包外:所有类不可使用
    • private:仅本类可使用

    二、示例代码

    Test包内的父类Permission

    public class Permission {
        private int privateValue = 1;
        public int publicValue = 1;
        protected int protectedValue = 1;
        int defaultValue = 1;
        
        void defaultFunc(){
            System.out.println("This is a default function");
        }
        
        public void publicFunc(){
            System.out.println("This is a public function");
        }
        
        protected void protectedFunc() {
            System.out.println("This is a protected function");
        }
    
        private void privateFunc(){
            System.out.println("This is a private function");
        }
    }
    

    Test包内的子类SubPermission

    public class SubPermission extends Permission{
        public void permissionTest(){
            // public, protected, default function and variable can be used
            System.out.println("this is a default value:" +  this.defaultValue);
            System.out.println("this is a public value:" + this.publicValue);
            System.out.println("this is a protected value:" + this.protectedValue);
    
            this.publicFunc();
            this.protectedFunc();
            this.defaultFunc();
        }
    }
    

    Test包外的子类

    import base.Test.Permission;
    
    public class Demo extends Permission {
        public static void main(String[] args) {
            // if is not a subclass, only public function and variable can be used
            Permission obj = new Permission();
            obj.publicFunc();
            System.out.println("this is a public value:" + obj.publicValue);
    
            // if is a subclass, public and protected function and variable can ba used
            Demo demo = new Demo();
            demo.publicFunc();
            demo.protectedFunc();
            System.out.println("this is a public value:" + demo.publicValue);
            System.out.println("this is a protected value:" + demo.protectedValue);
        }
    }
    
  • 相关阅读:
    《“十三五”国家信息化规划》(全文)
    新华社受权发布“十三五”规划纲要 共分为20篇(
    KDD2015,Accepted Papers
    KDD2016,Accepted Papers
    图像特征提取三大法宝:HOG特征,LBP特征,Haar特征
    【转】34门课改变人生——牛人自学计算机总结
    北上深金融机构势力版图全揭秘20160930
    马云访澳捐2000万美元设立马云-莫利奖学金 只为报答好友肯·莫利
    提升效率
    VMware设置NAT网络
  • 原文地址:https://www.cnblogs.com/main404/p/12976928.html
Copyright © 2011-2022 走看看