개발을 하다가 static으로 선언된 프로퍼티나 메소드를 본적있었다.
"재정의를 막기위해"사용한다고 들었었는데,
타입속성이라는 이름과는 매칭이 되질않아서
언젠가 알게되겠지 하고 미뤘었다.
미루고 미루다 오늘에야 포스팅을 하게됬다.
Static은 프로퍼티(속성)뿐아니라 메소드에서도 사용된다.
키워드에 대해서 전반적으로 이야기하고,
프로퍼티와 메소드에 대해서 각각 이야기하려고한다.
static 이 붙으면 타입이라는 용어가 추가된다.
이 키워드를 사용한 프로퍼티나 메소드는 다른 인스턴스를 찍어내더라도
호출되지않고, 변경되지 않는다.
때문에 타입자체에 속한 속성이라서 이렇게 칭한다고 한다.
class IOSdevleoper {
//타입속성
static let language = "Swift"
//타입 메서드
static func work(){
print("\(language)로 APP을 만듭니다")
}
}
① 변하지 않거나
② 공유하는값에 사용한다.
//저장 프로퍼티
let name = "Sodeul"
// 저장 타입 프로퍼티
static let name = "Sodeul" // 변하지 않거나
static var age = 28 // 공유해야하는 프로퍼티
타입 메서드에서 타입 속성에 접근할때는 속성이름만으로 접근이 가능
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