Java四种访问修饰符

2020-05-27 16:10:24来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

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);
    }
}

原文链接:https://www.cnblogs.com/main404/p/12976928.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:JAVA 每次从List中取出100条记录

下一篇:Java架构师必须知道的 6 大设计原则