๋ฉ์๋๋?
๐ก ํด๋์ค , ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐํ ์์ ํฌํจ๋์ด์๋ ํจ์
๋ฉ์๋์ ์ข
๋ฅ
์ธ์คํด์ค ๋ฉ์๋(instance method)
์ ์
- ์ธ์คํด์ค์ ๊ด๋ จ๋ ๋ฉ์๋๋ก ์ธ์คํด์ค๋ฅผ ์์ฑํด์ผ๋ง ํธ์ถ์ด ๊ฐ๋ฅํ๋ค
- ์ฆ, ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค์ผ๋ง ํธ์ถ์ด ๊ฐ๋ฅํ๋ค
- ์ง๊ธ๊น์ง ์ฐ๋ฆฌ๊ฐ ํธ์ถํ ์ฆ, ์๋ฌด๋ฐ ์์์ด ์์ด func์ผ๋ก ์์ํ๋ ๋ฉ์๋๋ ๋ชจ๋ ์ธ์คํด์ค ๋ฉ์๋์ด๋ค
์์
- sayHi ๋ฉ์๋ ์ฒ๋ผ ์๋ฌด๋ฐ ์์์ด ์๋ ๋ฉ์๋๋ฅผ ์ธ์คํด์ค ๋ฉ์๋๋ผ๊ณ ํ๋ค
class Ramoo {
func sayHi() {
print("say Hi")
}
}
let miniRamoo: Ramoo = .init()
miniRamoo.sayHi()
์ ๊ทผ ๊ฐ๋ฅํ ๋ฉค๋ฒ๋ณ์
- ์ธ์คํด์ค ๋ฉ์๋๋ ํ๋กํผํฐ(์ฐ์ฐ, ์ ์ฅ ํ๋กํผํฐ)
- ์ด๋ฏธ ์ธ์คํด์ค ์ฆ, ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ์ผ๋ฏ๋ก ๋น์ฐํ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค
- ํ์
๋ฉ์๋๋ ํ๋กํผํฐ
- ํ์
๋ฉค๋ฒ๋ ํ์
๋ง ์๋ฉด ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค
ํ์
๋ฉ์๋(type method)
์ ์
- ํ์
ํ๋กํผํฐ์ ๊ฐ์ด ์ธ์คํด์ค ์์ฑ์ ์๊ด์์ด type๊ณผ ๊ด๋ จ๋ ๋ฉ์๋๋ฅผ ์๋ฏธํ๋ค
- type์ด๋ฆ๋ง ์๋ฉด ํธ์ถ์ด ๊ฐ๋ฅํ๋ค
- ๋ฉ์๋ ์ ์ธ ์ func์์ staticํน์ classํค์๋๋ฅผ ๋ถ์ธ๋ค
- static func๊ณผ class func์ ์ฐจ์ด
-
๋ฉ์๋ ์ค๋ฒ๋ผ์ด๋ฉ ๊ฐ๋ฅ์ ์ฌ๋ถ
-
static โ ๋ฉ์๋ ์ค๋ฒ๋ผ์ด๋ฉ ๊ธ์ง
-
class โ ๋ฉ์๋ ์ค๋ฒ๋ผ์ด๋ฉ ํ์ฉ
static func & class func
์์
- sayHello์ sayBye๋ ๋ชจ๋ ํ์
๋ฉ์๋ ์ด๋ค
class Ramoo {
static func sayHello() {
print("hello")
}
class func sayBye() P
print("bye")
}
}
ramoo.sayHello()
ramoo.sayBye()
์ ๊ทผ ๊ฐ๋ฅํ ํ๋กํผํฐ(๋ฉค๋ฒ ๋ณ์)
- ์ ์ฅ ํ์
ํ๋กํผํฐ, ์ฐ์ฐ ํ์
ํ๋กํผํฐ ๋ฑ ํ์
ํ๋กํผํฐ๋ง ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค
- ์ฆ, ๊ฐ์ ํ์
๋ฉค๋ฒ๋ ํ์
์ด๋ฆ์์ด ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค
- ๊ทธ ์ธ์ ์ผ๋ฐ ์ ์ฅ ํ๋กํผํฐ, ์ฐ์ฐ ํ๋กํผํฐ๋ ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํ๋ค
- ์๋ํ๋ฉด ์ ์ฅ ํ๋กํผํฐ, ์ฐ์ฐ ํ๋กํผํฐ๋ ์ธ์คํด์ค ํ๋กํผํฐ๋ก ์ธ์คํด์ค์ ๊ด๋ จ๋ ์ฆ, ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ์ ๋๋ง ์ ๊ทผ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ
์ฐธ๊ณ ์ฌ์ดํธ
Swift) static? class? ๋ฉ์๋ ์๋ฒฝ ์ ๋ณตํ๊ธฐ