Swift 입문 | 클래스 기본 | Computed 속성
상속 외에도 이것은 기억 두지 않으면 안되는 기능이 몇 가지 있다. 그것에 대해서도 설명하겠다. 먼저 “Computed 속성"을 설명하겠다.
속성이라는 것은 클래스에 값을 보관할 변수이다. 이것은 그대로 값을 교체할 수 있기 때문에, 어떤 값이 될지 모른다. 여기서 값의 입출력을 프로그래밍으로 제어할 수 있도록 한 것이 Computed 속성이다.
Computed 속성은 다음과 같이 작성한다.
var 속성 : 유형 {
get {
...... 처리 ......
return 값
}
set {
...... 처리 ......
}
}
속성의 선언 뒤에 {}가 있고, 그 안에 get 및 set이라는 것이 작성하고, 여기에서 값을 읽고 쓰기 위한 처리를 작성한다. get만 작성하고 set를 작성하지 않으면, 값을 얻기만 가능하고 수정할 수 없는 속성이 된다. 반대로 set만 작성하면, 값 변경만 가능하고 얻을 수 없는 속성이 된다.
아래 Computed 속성의 사용 예제를 보도록 하자.
class Friend {
var name:String
var old:Int
var age:Int {
get {
return old
}
set {
if newValue > 0 {
old = newValue
}
}
}
init(name:String, age:Int) {
self.name = name
self.old = age
}
func printData() {
print("\(self.name) (\(age))")
}
}
var you = Friend(name: "Taro", age: 30)
you.printData()
여기에서는 age라는 Computed 속성을 사용하고 있다. 실제 값은 old라는 속성에 보관하고 있다. Computed 속성은 이 처럼 실제 값을 보관해 두기 위한 장소를 따로 마련할 필요가 있는 것이다.
최종 수정 : 2021-08-29