๐ŸŽ iOS/Swift

Class๋ฉ”์„œ๋“œ์™€ Static๋ฉ”์„œ๋“œ

JerryiOS 2023. 6. 8. 20:36

๋ฉ”์„œ๋“œ

ํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด, ์—ด๊ฑฐํ˜• ์†์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ํ•จ์ˆ˜

 

์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ(Instance Method)

์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•ด์•ผ๋งŒ ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•œ ๋ฉ”์„œ๋“œ
class Jerry {
    func doSomething() {
    	print("dd")
    }
}

์ด๋Ÿฐ ๋ฉ”์„œ๋“œ๊ฐ€ ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ๋‹ค.

let jerry: Jerry = .init()
jerry.doSomething()

์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•ด์•ผ๋งŒ ํ˜ธ์ถœ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋ž˜์„œ ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ๋‹ค.

 

ํƒ€์ž… ๋ฉ”์„œ๋“œ(Type Method)

์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์—†์ด ํ˜•์‹(Type) ์ด๋ฆ„๋งŒ ์•Œ๋ฉด ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•œ ๋ฉ”์„œ๋“œ
class Jerry {
    static func typeMethod1() {
    	print("dd")
    }
    class func typeMethod2() {
    	print("ww")
    }
}

 

Static ๋ฉ”์„œ๋“œ

SubClass์—์„œ ํ•ด๋‹น ํƒ€์ž…๋ฉ”์„œ๋“œ์˜ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์„ ๊ธˆ์ง€ํ•˜๋Š” ๋ฉ”์„œ๋“œ
class Jerry {
    static func sayHello() {
        print("Hello")
    }
}
 
class ChildJerry: Jerry {
    override static func sayHello() {    //Cannot override static method   
    }
}

 

Class ๋ฉ”์„œ๋“œ

SubClass์—์„œ ํ•ด๋‹น ํƒ€์ž…๋ฉ”์„œ๋“œ์˜ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์„ ํ—ˆ์šฉํ•˜๋Š” ๋ฉ”์„œ๋“œ
class Jerry {
   class func sayBye() {
        print("Bye")
    }
}
 
class ChildJerry: Jerry {
    override class func sayBye() {     
    }
}
๋ฐ˜์‘ํ˜•