• Java 访问权限控制 小结


    总所周知,Java提供了访问权限修饰词,以供类库开发人员向客户端程序员指明哪些是可用的,哪些是不可用的。

    访问权限控制的等级,从最大权限到最小权限依次为:publicprotected包访问权限(没有关键词)和 private 。

    对于类(Class)

      类既不可以是private的(这样会使得除该类之外,其他任何类都不可以访问它),也不可以是protected的。

      所以对于类的访问权限,仅有两个选择:包访问权限public 。

    •   public 类可以在其他包中调用
    •   包访问权限 类只能在该包里调用。

    对于方法(Method)以及变量

    访问权限修饰 类内部调用 同包下的外部类调用 不同包下的外部类调用 继承调用
    public   √     √     √     √
    protected   √     √     √
    包访问权限   √       √    
    private   √      

    注:不同包下的调用必须建立在类的访问权限必须为 public 。

    接口开放方法的控制

      直接使用继承方法,可以获得父类的所有方法,则将父类所有的方法都暴露给了用户,如果想要控制开放的方法可以采用一种 “ 代理 ” 的做法来实现:

      例如现在有一个Class Two,其有A、B、C、D四种方法。

    public class Two {
        public void A(){
            
        }
        public void B(){
            
        }
        public void C(){
            
        }
        public void D(){
            
        }
    }

      如果我们只想给用户提供A、B、C三种方法,则可以使用这种方法来实现:

    public class One {
        private Two two;
    
        public void A() {
            two.A();
        }
    
        public void B() {
            two.B();
        }
    
        public void C() {
            two.C();
        }
    }

      这种代理的方法,Idea可以自动帮助你生成。

      (1)写上你要代理的类,如上写的为: private Two two.

      (2)使用Generate -->  Delegates Method 即可。

      

  • 相关阅读:
    3.29上午
    3.28下午
    3.28上午
    3.27下午
    3.24的下午
    2017.3.16上午学习内容
    2017.3.15上午学习内容
    2017.3.14下午学习内容
    2017.3.14上午学习内容
    2017.3.13下午学习内容
  • 原文地址:https://www.cnblogs.com/rekent/p/7674554.html
Copyright © 2020-2023  润新知