前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 访问权限控制 小结

Java 访问权限控制 小结

作者头像
Rekent
发布2018-09-04 15:35:04
1.4K0
发布2018-09-04 15:35:04
举报
文章被收录于专栏:日常分享日常分享

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

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

对于类(Class)

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

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

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

对于方法(Method)以及变量

访问权限修饰

类内部调用

同包下的外部类调用

不同包下的外部类调用

继承调用

public

protected

包访问权限

private

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

接口开放方法的控制

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

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

代码语言:javascript
复制
public class Two {
    public void A(){
        
    }
    public void B(){
        
    }
    public void C(){
        
    }
    public void D(){
        
    }
}

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

代码语言:javascript
复制
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 即可。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-10-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档