effective java心得

# effective java在第四章类与接口

## 修饰符

相信很多程序员对修饰符这个概念都了解,但其实修饰符这些概念中蕴含着很多信息,就好像好的代码,你看到类名,就知道他是什么意思,好的方法不需要太多注释,看方法名和看方法参数就能知道他要做什么一样。修饰符同样包含有很多的信息。假如要是一个api设计者会对这些修饰符要求特别的严格

- private :私有 一般用在类的属性,方法中 代表某个类或者说某个类的实例能访问它的权限;还有一种情况,当一个类就想对一个类可见的情况下,应该将该类 private class A 写在 public class B 中

- protected 包访问级别  跨包不能访问,其实很重要的信息,应该是申明 protected的方法,想被子类复写

别的不说了,没意思 都知道了应该

## public final 和 public final static 这些修饰符一般是修饰不可变对象 或者 常量的。 不可变的也可能是引用。里面还是有可能变的。

## example

```java

public static final Thing[ ] VALUS = {....};

```

以上情况VALUES 公开后 还是能改变他的值, 有两种方法能满足你的要求 如下

```java

private static final Thing [] PRIVATE_VALUES ={ ... };

public static final List VALUES =Collections.unmodifiableList(Arrays.asList(PRIVATE_VALUES));

```

```java

private static final Thing[ ] PRIVATE_VALUES={...};

public static final Thing[ ] values(){

      return PRIVATE_VALUES.clone();

}

```

总结完毕。书看得越多,对编程的爱好越多

你可能感兴趣的:(effective java心得)