swift | static 이해하기

일어나 개발해야지·2023년 11월 27일

Swift

목록 보기
1/21
post-thumbnail

Intro

개발을 하다가 static으로 선언된 프로퍼티나 메소드를 본적있었다.
"재정의를 막기위해"사용한다고 들었었는데,
타입속성이라는 이름과는 매칭이 되질않아서
언젠가 알게되겠지 하고 미뤘었다.
미루고 미루다 오늘에야 포스팅을 하게됬다.

static - 타입

Static은 프로퍼티(속성)뿐아니라 메소드에서도 사용된다.
키워드에 대해서 전반적으로 이야기하고,
프로퍼티와 메소드에 대해서 각각 이야기하려고한다.

왜 "타입속성"이지?

static 이 붙으면 타입이라는 용어가 추가된다.
이 키워드를 사용한 프로퍼티나 메소드는 다른 인스턴스를 찍어내더라도
호출되지않고, 변경되지 않는다.
때문에 타입자체에 속한 속성이라서 이렇게 칭한다고 한다.

class IOSdevleoper {
    //타입속성
    static let language = "Swift"
    //타입 메서드
    static func work(){
        print("\(language)로 APP을 만듭니다")
    }
}

언제 사용할까

① 변하지 않거나
② 공유하는값에 사용한다.

1. Properties

  • 항상 초기값이 필요하며
  • 지연속성의 성격을 가진다.
  • 상속시 재정의가 불가해진다.
//저장 프로퍼티
  let name = "Sodeul"    
// 저장 타입 프로퍼티
  static let name = "Sodeul"   // 변하지 않거나
  static var age = 28 // 공유해야하는 프로퍼티

2. Methed : Class Struct Enum에 있는 함수

  • 타입 메서드에서 타입 속성에 접근할때는 속성이름만으로 접근이 가능

  • override_(재정의)를 금지하고 싶을때 사용

    
      static let name = "Sodeul"   
    
    // 인스턴스 메서드 : 선언한 메서드
     func doSomething() { 
          print("Somaker")
      }
      
      // static 타입 메서드 :
      static func sayHello() {
          print(name)
      }
      
      //class 타입 메서드 
      class func sayBye() {
          print("Bye")
      }  

참고자료
https://babbab2.tistory.com/122
https://so-kyte.tistory.com/165

0개의 댓글