18장 stateful objects - codeport/scala GitHub Wiki

stateful object가 무엇인지, 스칼라에서 문법상 어떻게 표현하는지 설명하는 챕터

18.1 What makes an object stateful?

  • 순수한 함수형 객체로는 늘 동일한 결과를 얻는다.

  • 상태를 가지는 객체는 앞에서 어떤 동작을 했느냐에 따라 결과가 변한다.

  • 상태(state)와 vars는 절친한 사이지만 늘 명쾌한 것은 아니다.

    • 클래스는 vars로 정의하지 않거나 상속받지 않아도 상태를 가진다.
    • 왜냐하면 메소드 호출은 가변 상태인 다른 객체를 보내기 때문이다.
    • 그 역도 성립한다.

18.2 Reassignable variables and properties

  • private 이 아닌 멤버변수가 var이면 암시적으로 getter/setter 메소드를 가진다.
  • var 의 getter 는 변수명, setter 는 변수명_=
  • getter/setter 의 접근지시자는 변수 var 의 지시자와 동일하다.
  • getter/setter 를 필드의 정의와 상관없이 확장해서 쓸 수 있다.
  • initializing value : “ = _ “ 각 타입에 따라 초기값을 설정해준다.