더북(TheBook)

name에는 옵셔널 수식어를, age에는 readonly 수식어를 붙였습니다. readonly이므로 changeAge 메서드에서 에러가 발생합니다.

married에는 protected 수식어가, value에는 private 수식어가 붙었습니다. name이나 age 속성에 public이 붙지는 않았지만 protectedprivate이 아니면 기본적으로 public입니다.

public 속성인 경우: 선언한 자신의 클래스, 자손 클래스, new 호출로 만들어낸 인스턴스에서 속성을 사용할 수 있습니다. 앞의 예제에서는 name 속성을 보면 됩니다. 자손 클래스란 extends로 상속받은 클래스를 의미합니다. 여러 번 extends해도 자손 클래스입니다.

protected 속성인 경우: 자신의 클래스와 자손 클래스에서는 속성을 사용할 수 있으나 인스턴스에서는 사용할 수 없습니다. married 속성은 child.married에서 에러가 발생합니다.

private 속성인 경우: 자신의 클래스에서만 속성을 사용할 수 있습니다. value 속성은 Child 클래스나 child.value에서 에러가 발생합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.