• Java修饰符public,protected,default,private访问权限


    public

    具有最大的访问权限。所有类可访问。

    protected

    主要是用来保护子类。自身、子类及同一个包中类可以访问

    default

    没有加修饰符的。有时候也称为friendly,它是针对本包访问而设计的。同一包中可以访问。

    private

     访问权限仅限于类的内部,是一种封装的体现。只能被自己访问

      类内部 子类内部(本包) 其他类(本包) 子类内部(外部包) 其他类(外部包)
    public O O O O O
    protected O O O O X
    default O O O X X
    private O X X X X

     

     

     

     

     

    示例代码

    包apkg

    ParentA.java

    package apkg;
    
    public class ParentA {
        public String publicVariable = "public";
        protected String protectedVariable = "protected";
        String variable = "default";
        private String privateVariable = "privater";
        
        public void show() {
            System.out.println(this.publicVariable);
            System.out.println(this.protectedVariable);
            System.out.println(this.variable);
            System.out.println(this.privateVariable);
        }
        
        public static void main(String[] args) {
            ParentA apkg = new ParentA();
            apkg.show();
        }
    }

    SonA.java

    package apkg;
    
    public class SonA extends ParentA {
        public void show() {
            System.out.println(this.publicVariable);
            System.out.println(this.protectedVariable);
            System.out.println(this.variable);
            //System.out.println(this.privateVariable);// 无法访问
        }
    }

    UncleA.java

    package apkg;
    
    import apkg.ParentA;
    
    public class UncleA {
        public void show() {
            ParentA apkg = new ParentA();
            System.out.println(apkg.publicVariable);
            System.out.println(apkg.protectedVariable);
            System.out.println(apkg.variable);
            //System.out.println(apkg.privateVariable);// 无法访问
        }
    }

    包bpkg

    SonB.java

    package bpkg;
    
    import apkg.ParentA;
    
    public class SonB extends ParentA {
        public void show() {
            System.out.println(this.publicVariable);
            System.out.println(this.protectedVariable);
            //System.out.println(this.variable);// 无法访问
            //System.out.println(this.privateVariable);// 无法访问
        }
    }

    UncleB.java

    package bpkg;
    
    import apkg.ParentA;
    
    public class UncleB {
        public void show() {
            ParentA apkg = new ParentA();
            System.out.println(apkg.publicVariable);
            //System.out.println(apkg.protectedVariable);// 无法访问
            //System.out.println(apkg.variable);// 无法访问
            //System.out.println(apkg.privateVariable);// 无法访问
        }
    }

     

     

     

     

     

  • 相关阅读:
    py程序----两个判断回文的程序
    Python特性
    python-基本数据类型
    shell编程第一天
    iptables防火墙
    纤维参数测量
    线性代数及其应用(最小二乘、PCA、SVD)
    水流方向检测
    微信跳一跳-MATLAB实现
    相机标定opencv实现
  • 原文地址:https://www.cnblogs.com/yangchongxing/p/8365494.html
Copyright © 2020-2023  润新知