zoukankan      html  css  js  c++  java
  • Effective Java 4:类和接口

    第十三条:使类和成员的可访问性最小

      用于信息隐藏,尽可能的使每个类或者成员不被外界访问,

      对于顶层的类和接口,只有两种访问级别:包级私有,和共有的,

      private:只有该类的内部才可以访问这个成员

      包级私有:声明的成员在包内部都不可以访问,缺省型

      protected:声明该类的包,和该类的之类都可以访问

      public:在任何地方都可以访问

      如果一个类覆盖了超类的一个方法,那么子类的访问级别一定不能比超类的访问级别低,如果一个类实现了一个接口的所有方法,那么接口中所有的方法都必须声明为共有的。

      实例域绝不能是公有的,包含公有可变域的类并不是线程安全的

      类具有共有的 静态final数组域,或者返回这种域的访问方法不可以:public static final Thing[] VALUES={};

      两种方法避免:使公有的数组变私有,增加一个共有的不可变列表,(2)数组私有,增加一个公有方法,返回私有数组的一个拷贝

      public static final Thing returnVa(){

        return VALUE.clone();

      常量域的定义:单词大写,并且之间用_下划线分割单词

    第十四条:在公有类中,使用访问方法,而非共有域

      公有类永远不应该暴漏可变的域

    第十五条:使可变性最小化

      1.不要提供如何会修改对象的状态方法

      2.保证类不会被扩展

      3.使所有的域都是私有的,final的

      4.确保对于任何可变组件的互斥访问

      5.不可变对象线程安全,因为不可变

      6.鼓励客户端尽可能的重用现有的实例

      7.不可变类的唯一缺点是:对于每个不同的值,都需要一个单独的对象

      可变配套类:对于多操作步骤,提高性能,让所有的构造器变成私有的,或者包含私有的,并添加共有的静态工厂,代替公有构造器,坚决不要为每个get方法,编写一个相应的set方法

  • 相关阅读:
    VS2010开发C的方法
    Activity.startManagingCursor方法
    application/xwwwformurlencoded、multipart/formdata、text/plain
    TCP三次握手/四次挥手详解
    hdu 2157 How many ways??
    zoj 2475 Benny's Compiler
    zoj 2744 Palindromes
    zoj 2750 Idiomatic Phrases Game
    zoj 2104 Let the Balloon Rise
    flash:学习ActionScript的一些提示
  • 原文地址:https://www.cnblogs.com/csxf/p/3285273.html
Copyright © 2011-2022 走看看