• 【java基础】访问权限修饰符


    访问修饰符

    通过控制方法、属性的不同访问权限,对外部暴露必要的接口,提供给客户程序员使用。将外部的功能和内部实现分隔。客户程序员无需关心内部实现。
    这样在以后修改内部的具体实现细节(比如HashMap的优化),不会影响到客户程序员的使用。

    public

    所有的包都可以访问public属性

    protected

    只有同一个包下的类可以访问,或者虽然不在同一包下,但是继承父类,就可以访问到protected属性。

    friendly

    必须在同一个包下,才能访问到默认属性。即使不在同一个类也可以访问到。

    private

    只能在当前类下能够访问


    可结合如下代码理解

    package study.basic.demo01;
    
    public class Person {
        public String publicName;
    
        protected int protectedAge;
    
        int fridenlyHight;
    
        private String privateId;
    
        public static void main(String[] args) {
            Person person = new Person();
            person.publicName="json";
            person.protectedAge=12 ;
            person.fridenlyHight=180;
            person.privateId="123123";//在同一个包下的同一个类,所有属性都可以访问到
        }
    }
    
    class Jake{
        public static void main(String[] args) {
            Person person = new Person();
            person.publicName="jake";
            person.protectedAge=23;
            person.fridenlyHight=172;//在同一个包下,但不是同一个类。可以访问到friendly
    
        }
    }
    
    


    package study.basic.demo02;
    
    import study.basic.demo01.Person;
    
    public class Animal {
        public static void main(String[] args) {
            Person person = new Person();
            person.publicName="jane";//不在同一个包下,只能访问到 public
        }
    }
    
    class Tom extends Person{
        public static void main(String[] args) {
            Tom tom = new Tom();
            tom.publicName="tom";
            tom.protectedAge=12;//不在同一个包下,但是继承了person类,可以访问到protected
        }
    }
    
    
  • 相关阅读:
    Java的mybatis随笔
    通过字节输入输出流,对标识文件读写,并按规定输出
    Java中异常的处理以及自定义异常,抛出异常到方法调用栈底层
    Java接口实现传参
    类的高级概念
    Java面向对象特征之封装
    Java中的方法(形参及实参)return返回类型
    Java中的数组添加,数组相关代码
    并发思考-actor和thread那个好点?
    TensorFlow实现线性回归模型代码
  • 原文地址:https://www.cnblogs.com/HappyKnockOnCode/p/15236084.html
Copyright © 2020-2023  润新知