모든 클래스와 멤버의 접근성을 가능한 한 좁혀야 한다.

public 클래스의 인스턴스 필드는 되도록 public이 아니여야 한다. public 이면 불변식을 보장할 수 없기에 스레드로 부터 안전하지 않다.

public 클래스는 상수용 public static final 필드 외에는 어떠한 public 필드도 가져서는 안 된다. public static final 필드가 참조하는 객체가 불변인지 확인하라.