: 클래스, 구조체, 또는 열거형 등과 값을 연결
: 값을 저장하거나 제공하기 위한 목적
1. 저장 프로퍼티: 값을 저장하고, 저장된 값을 제공하는 프로퍼티
2. 연산 프로퍼티: 값 저장 x, 특정 연산을 실행한 결과값
3. 타입 프로퍼티: 특정 타입에서 사용되는 프로퍼티(특정 인스턴스 x)
→ 저장 프로퍼티는 그동안 익숙하게 사용해 왔던 것들로,
var name
let number
등등.. 선언을 통해서 값을 저장해왔던 것들이다.
개인적으로 이것 부터 어려웠다!!
먼저 연산 프로퍼티는 말 그대로, 연산
을 하는 것이다.
값을 저장하는 것 대신에 getter
/setter
를 통해 값에 직접적으로 접근을 할 수 있다.
시급을 알려주는 클래스를 예로 들어 보자.
class MyHourlyWage {
// 저장 프로퍼티
var montlySalary: Double
var workingHours: Double
//연산 프로퍼티
var hourlyWage: Double { ... }
init(monthlySalary: Double, workingHours: Double) {
self.monthlySalary = monthlySalary
self.workingHours = workingHours
}
}