第四章 类和接口

第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/

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

原文地址:https://www.cnblogs.com/guanbin-529/p/8180014.html