• 第四章 类和接口


    第13条 使类和成员的可访问性最小化

    要确保公有的类中不应该有包含的共有域,并且确保公有静态final域所引用的对象都是不可变的

    1.private是私有的,只在类内部使用;

    2.默认是default可不写,在包内部可以访问;

    3.protexted在包内部和继承该类的子类中使用;

    4.public在整个项目中可以使用;

    第14条 在公有类中使用访问方法而非公有域

     

    第15条 使可变性最小化

     成为不可变类,须遵循以下几点

    1.不要提供任何会修改对象的方法

    2.保证类不会被扩展

    3.使所有的域都是final的(对像是基本数据类型,或者不可变的引用类型)

    4.使所有的域都成为私有的

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

    不可变类 eg.

    package item;

    /**
    * @author GuanBin
    * @version Persen.java, v1 2017/12/14 下午4:55 GuanBin Exp $$
    */
    public class Complex {

    private final double re;
    private final double im;

    public Complex(double re,double im){
    this.re=re;
    this.im=im;
    }

    public double realPart(){
    return re;
    }

    public double imaginaryPart(){
    return im;
    }

    public Complex add(Complex c){
    return new Complex(re+c.re,im+c.im);
    }

    public double getRe() {
    return re;
    }

    public double getIm() {
    return im;
    }
    }

     第16条 复合优先于继承

    我对于这条的理解是,能不用继承的就不要继承,因为继承会重写超类中的方法,父类变,子类就必须变,继承破坏了封装,对于父类而言,它的实现细节对与子类来说都是透明的,继承是一种强耦合关系,总之慎用继承;

    如果非用继承,可以考虑复合方式,一个a类先实现超类,然后子类再去继承这个a类;

    作者:guanbin —— 纵码万里千山

    出处:https://www.cnblogs.com/guanbin-529/

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    python网络编程之最简单的单工通信
    ruby : Exception Notification
    python学习之操作mysql
    python学习之最简单的获取本机ip信息的小程序
    python学习之最简单的用户注册及登录验证小程序
    mongo数据库的导入导出
    mac安装django1.5.4
    mac安装软件管家homebrew
    关于mac安装rails报错clang: error: unknown argument
    在mac上安装nodejs
  • 原文地址:https://www.cnblogs.com/guanbin-529/p/8180014.html
Copyright © 2020-2023  润新知