首页 > 代码库 > Effective Java之类的访问
Effective Java之类的访问
类的访问性越小越好,也就是够用就行,不同的包以及模块之间,只预留足够功能使用的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之类的访问
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。