비전공자의 Swift 기초문법 - static

Cobugi·2021년 12월 21일
0

swift

목록 보기
12/12
post-thumbnail

static

함수(function) vs 메서드(method)

  • func로 만들어진 모든 것은 함수다
  • 하지만 클래스(구조체, 열거형) 안에서 정의된 함수는 메서드다
func someFunction() {  } // 함수

class someClass() {
    func someFunctionInClass() {  } // 메서드
}

타입 메서드(Type Method) vs 인스턴스 메서드(Instance Method)

  • 인스턴스 메서드는 인스턴스를 생성하고, 인스턴스에서 호출한다
  • func 앞에 아무것도 없으면 인스턴스 메서드
  • 타입 메서드는 인스턴스 생성없이, 타입에서 직접 호출한다
  • func 앞에 static, class가 있으면 타입 메서드
class someClass() {
    func printHello() { // 인스턴스 메서드
    	print("Hello")
    }
    static func printHelloWorld() { // 타입 메서드
    	print("Hello, World")
    }
    class func printHelloSwift() { // 타입 메서드
    	print("Hello, Swift")
    }
}

static vs class

  • static: 오버라이드(override, 재정의) 불가능
  • class: 오버라이드 가능
class AClass {
    static func staticTypeMethod() {
        print("AClass staticTypeMethod")
    }
    
    class func classTypeMethod() {
        print("AClass classTypeMethod")
    }
}

class BClass: AClass {
    /* static은 override 불가능
     override static func staticTypeMethod() {
     
     }
     */
     
     // class는 override 가능
    override class func classTypeMethod() {
        print("BClass classTypeMethod")
    }
}
profile
iOS Developer 🐢

0개의 댓글