Initializers - Initializer
"์ด๋์ ๋ผ์ด์ "
๊ฐ์
Enumeration, Class, Struct ๋ ๋ชจ๋ ๊ฐ๋ฐ์๊ฐ ์ ์ธํด ๋์ ์ค๊ณ๋ ์ ๋๋ค.
์ฐ๋ฆฌ๋ ์ด ์ค๊ณ๋์ Initializer ๋ฅผ ํตํด Instance ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
Initializer์ ์คํ ํ, ๋ชจ๋ ์์ฑ์ ๊ธฐ๋ณธ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ ์ํ์ฌ์ผ ํฉ๋๋ค.
๋ง์ฝ ๊ธฐ๋ณธ ๊ฐ์ด ์๋ ์์ฑ์ด ์กด์ฌํ๋ค๋ฉด Initialization ์ฆ, ์ด๊ธฐํ๋ ์คํจํฉ๋๋ค.
Initializer์ ์ข ๋ฅ๋ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์์ต๋๋ค.
Default Initializer, Memberwise Initializer, Designated Initializer, Convenience Initializer , Required Initializer
์ด์ด์ง๋ ๊ธ์์ ์ฐจ๋ก๋ก ๊ฐ๊ฐ ๋ค๋ค๋ณด๋ ค๊ณ ํฉ๋๋ค.
Basic Syntax
class Person {
var name: String
var age: Int
/* Initializer์ ์ ์ธ */
init(name: String, age: Int) {
self.name = name
self.age = age
}
}
/* Initializer์ ํธ์ถ */
/* TypeName๊ณผ Parenthesis, Argument Label ์ ํตํด ํธ์ถํ๋ค */
var kim = Person(name: Mirae, age: 16)
Default Initializer
์กฐ๊ฑด
๋ชจ๋ ์์ฑ์ด ์ ์ธ์์ ๊ธฐ๋ณธ ๊ฐ์ ๊ฐ์ง ๋ ์ปดํ์ผ๋ฌ์ ์ํด ์๋์ผ๋ก ์์ฑ๋ฉ๋๋ค.
๋จ, ๊ฐ๋ฐ์๊ฐ Initializer๋ฅผ ์ง์ ์ ์ธํ๋ฉด ๋ ์ด์ ์ ๊ณต๋์ง ์์ต๋๋ค.
Code
class Color {
/* ์ ์ธ ์์ ๋ชจ๋ ์ ์ฅ์์ฑ์ ๊ธฐ๋ณธ ๊ฐ์ด ์์ */
var rValue = 0
var gValue = 0
var bValue = 0
}
/* Default Initializer ์ ๊ณต ๋จ */
var myColor = Color()
๋.
๋ค์ ๊ธ: Memberwise Initializer - Initializer
Memberwise Initializer - Initializer
" ๊ตฌ์กฐ์ฒด์๋ง ํน๋ณํ ์ ๊ณต๋๋ ์ด๋์ ๋ผ์ด์ " ๊ตฌ์กฐ์ฒด์๋ง ํน๋ณํ ์ ๊ณต๋๋ Initializer๊ฐ ์์ต๋๋ค. ์ด Initializer๋ ์ด๊ธฐํ ์์ ์์ ์์ ๊ฐ๋ฅํ ์์ฑ์ ํํ์ฌ, Argument๋ก ์ ๊ณตํฉ๋๋ค. ์ ์ธ ์์ ๊ณผ
woozzang.tistory.com