码迷,mamicode.com
首页 > 编程语言 > 详细

Effective Java之类的访问

时间:2014-11-16 15:52:25      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   使用   sp   java   div   log   cti   

  类的访问性越小越好,也就是够用就行,不同的包以及模块之间,只预留足够功能使用的api接口,其他的所有功能实现的细节就封装在包的内部,这样,代码的可维护性和可扩展性会有较大的提升。那么,java中有哪些访问控制呢?

  一、public:这个就相当于“我家大门常打开”,任何人都可以进入,这当然是相当不安全的。

  二、默认访问权限:这种访问权限相当于只有在相同的包内,类之间才可以互相调用,且调用的方法必须是protected级别及其以上的。

  三、protected:这种是适用于继承的,不管子类在哪个包中,都可以访问。

  四、private:这就相当于宣布是私人财产,不得侵犯了。

  还有一些其他的规则,比如子类继承的方法的访问权限必须不能小于父类的,这样,父类就可以调用子类继承的方法了。

  还有,针对一些线程安全的类,除了采用“同步”的机制外,还可以使用final类,将类中的所有属性都申明为final的,这样相同实例的属性就不会被改变。例子如下:

package demo;

public final class FinalTest {

    private final int a;

    public FinalTest(int a) {
        this.a = a;
    }

    public int getA() {
        return a;
    }
}

  这样,FinalTest中的a属性在不同线程中是不会被改变的。但是不可改变的类也有一定的缺点,如果非要改变FinalTest实例中的属性,那么只有重新创建一个FinalTest的实例,这样的话对性能有一定的影响。

  总之,在类设计时,只向外开放应该开放的接口,封装类内部实现的细节,这一点说起来容易,但实践起来,需要大量的经验。

Effective Java之类的访问

标签:style   blog   color   使用   sp   java   div   log   cti   

原文地址:http://www.cnblogs.com/byheart/p/4101450.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!