문제 설명

스칼라에서는 클래스를 아주 짧은 코드로도 만들 수 있는데요. 클래스를 선언하는 부분이 기본 생성자(constructor)의 역할도 하게 됩니다.

Person1.scala파일을 보세요. 이렇게 기본 생성자에 매개변수를 넣으면 fname과 lname이라는 이름을 가지는 private 변수가 생깁니다.

Person2.scala에서는 메소드를 정의하는 방법을 확인할 수 있습니다.

Person3.scala에서는 필드를 선언하는 방법을 확인할 수 있습니다.

Person4.scala처럼 매개변수를 val로 선언하면 해당 이름을 가지는 변수(private)와 public getter메소드를 생성합니다.
var로 생성자의 매개변수를 선언하면 해당 이름을 가지는 변수(private)와 public getter, setter메소드를 생성합니다.
를 확인하세요.

스칼라에서는 명시적으로 정의되지 않으면 모두 public으로 간주합니다.

주의
private 변수의 이름과 getter, setter가 모두 같은 이름을 가지는 경우를 직접 코드로 구현할 수는 없습니다.
getter와 setter를 사용하기 위해서는 private 변수의 이름은 다르게 지정해야 하는데요. 메소드명과 구분하기 위해 _를 변수명 앞에 붙이기도 합니다.

실행 결과 실행 중지