1. init
모든 멤버가 반드시 초기화 되어야 함
변수 선언 옆에 하던지, 초기화 함수를 만들던지 꼭 해야 에러가 안남
2. 샘플 코드
class Point
{
// var x : Int = 0
var x : Int
var y : Int
// init() // 생성자
// {
// x=0
// y=0
// }
init(_ x : Int,_ y : Int) // 생성자
{
self.x=x
self.y=y
}
// 편의 생성자 : 하나의 생성자에서 다른 생성자를 호출하고 싶을 때 사용
convenience init(){self.init(0,0)}
// 실패 가능 생성자(failable constructor
init?(s:String)
{
x=0
y=0
return nil
}
}
var pt = Point()
//var pt2 = Point(x: 1, y: 2) // 쓰기 싫으면 init 앞에 _ _ 달아주자
var pt2 = Point(1,2)
var pt3 = Point(s:"AA")
showType(pt3)
print(pt.x, pt.y)
print(pt2.x, pt2.y)
// 구조체만 지원되는 초기화 기술
struct SPoint
{
// var x : Int = 0
var x : Int = 0
var y : Int = 0
}
var spt = SPoint(x: 3, y: 4) // 만든적 없는데 지원해줌 클래스는 안됌 structe point p {1,2} default public이기 때문에
// member wise initializer 라고 함 class는 지원 안됌
// 상속과 생성자
class Rect : Point
{
var width : Int = 0
var height : Int = 0
init()
{
super.init(1,2)
}
}
var r = Rect()
'교육 > Swift' 카테고리의 다른 글
[swift] method (0) | 2016.08.08 |
---|---|
[swift] property (0) | 2016.08.08 |
[swift] 구조체와 클래스 (0) | 2016.08.05 |
[swift] enum (0) | 2016.08.05 |
[swift] 클로저 (0) | 2016.08.04 |