스칼라의 접근 한정자(access modifier)는 자바와 비슷하다. 그러나 하나 더 추가되는 내용이 있다.
수식자(qualifier)를 사용해 스칼라의 접근 한정자가 확장될 수 있다. private[X] 또는 protected[X] 타입의 한정자는 각각 접근이 X까지 private 또는 protected임을 의미한다. 여기서 X는 패키지, 클래스, 싱글턴 오브젝트를 나타낸다.
다음 예를 살펴보자.
scala> :paste
// Entering paste mode (ctrl-D to finish)
package Country {
package Professional {
class Executive {
private[Professional] var jobTitle = "Engineer"
private[Country] var friend = "Andrew Ng"
protected[this] var option = "X"
def getInfo(another : Executive) {
println(another.jobTitle) // 동작한다
println(another.friend) // 동작한다
println(another.secret) //에러가 발생한다
println(this.option) // 동작한다
}
}
}
}
jobTitle 변수는 Professional 패키지 내의 모든 클래스에서 접근할 수 있다.
friend 변수는 Country 패키지내의 모든 클래스에서 접근할 수 있다.
secret 변수는 인스턴스 메소드(this)의 암시(implicit) 오브젝트에만 접근할 수 있다.
'scala' 카테고리의 다른 글
scala에서의 jodatime(ISO8601) 예제 (0) | 2017.11.20 |
---|---|
scala REPL에서 main 클래스/함수 실행시키기 (0) | 2017.11.17 |
lazy val의 내부(volatile/synchronized) (0) | 2017.11.06 |
[sbt] hbase 연동시 만난 library 의존성 관련 exception 처리하기 (0) | 2017.11.03 |
[play2] globalsetting (0) | 2017.11.02 |