본문 바로가기

기타

#1. Static

반응형

static은 프로퍼티나 메서드 앞에 붙여서 사용되며 

static으로 선언된 프로퍼티나 메서드는 접근하여 사용할 경우에 인스턴스를 통한 접근이 아닌 

struct 및 enum그 자체에 속성으로 접근하여 사용한다 

 

예시

struct BTSFan {
    static var favoriteSong = "Butter"
    
    var name: String
    var age: Int
}

let fan1 = BTSFan(name: "SOON", age: 25)

let fan2 = BTSFan(name: "KIM", age: 23)

print(fan1.name, fan1.age)
print(fan2.name, fan2.age)
print(BTSFan.favoriteSong) // fan1.favoriteSong 나 fan2.favoriteSong으로는 접근할 수 없음

결과

SOON 25
KIM 23
Butter

 

 

위와 같이 "favoriteSong" 프로퍼티에 접근하려면 새로만든 fan1인스턴스가 아닌 

BTSFan struct 자체로 접근하여 사용하여야 한다.

 

 

 


Static의 장점

 

1. 각 인스턴스가 공동으로 갖는 정보를 할당해 사용하는데 유용하며

2. 메모리 관점에서 효율적

3. 객체(인스턴스)를 생성하지 않아 속도에서 이점

 

Static의 단점

 

1. 프로그램 종료시까지 어쨋든 계속 메모리에 남아 있다는 점

2. 객체지향적이지 못하다는 점 -> 코드내에서 지속적인 활용이 어렵다는 뜻,,?

반응형

'기타' 카테고리의 다른 글

#3. State  (0) 2022.08.07
#2. Typealias  (0) 2022.08.06
#5. 거제도-통영 나들이-마지막날  (13) 2021.06.29
#4. 거제도-통영 나들이-둘째날(3)  (14) 2021.06.25
# 백신 접종 후기  (14) 2021.06.24