Direction 클래스에는 인스턴스에 따라 다른 값을 저장할 수 있는 Notation 프로퍼티가 들어 있다. 일반 생성자를 호출할 때처럼 괄호를 사용해 생성자 인자를 전달하면(NortH("N")) Notation의 값을 전달할 수 있다.
opposite 프로퍼티 게터에 접근할 때마다 게터가 동적으로 결과를 계산한다.
여기서는 가능한 모든 enum 값을 처리하고 있으므로 when 식에서 else 가지를 작성하지 않아도 된다.
이넘은 코드 가독성을 높여주므로 항상 사용하는 게 바람직하다.