Programing Langauge/swift

property 학습하기 (3) [ Type Property ]

Hamp 2024. 8. 25. 18:49
반응형

 

이번에는 타입 프로퍼티의 역할을 학습해보자.

 

Type Property (타입 프로퍼티)

모든 타입이 공통적인 값을 정의하는 역할을 한다.

 

특징

1) 클래스, 구조체, 열거형에서 사용된다

 

2) 저장 타입 프로퍼티와 연산 타입 프로퍼티가 존재하며 저장 타입 프로퍼티의 경우 항상 초기화가 되어 있어야 한다

 

3) static을 이용해 선언하며, 자동으로 lazy로 작동한다

 

종류

  static class
저장 프로퍼티 사용 가능 O X
연산 프로퍼티로 사용 가능 O X
오버라이딩 가능  X O

예시 코드

class Human {
  
  
    static var typeStoredProperty1: String = "HELLO"
    
    // ❌ 에러발생
    class var typeStoredProperty2: String = "HELLO2" // class는  저장으로 사용불가
    
    static var typeComputedProperty1: String {
        return typeStoredProperty1
    }
    
    class var typeComputedProperty2: String {
        return typeStoredProperty1
    }

}


class SmallHuman : Human {
    
    
    static var typeStoredProperty3 = "HELLO3"
    
    override class var typeComputedProperty2: String {
        return typeStoredProperty3
    }
    
    // ❌ 에러발생 , typeStoredProperty1는 static이라 override 불가
    override static var typeStoredProperty1: String {
        return typeStoredProperty3
    }
}

 

반응형