2014年6月18日

Swift筆記:Objects and Classes

使用class和類別名稱來建立類別。
class Shape {
    var numberOfSides = 0
    func simpleDescription() -> String {
        return "A shape with \(numberOfSides) sides."
    }
}

要建立一個class的實體,在類別名稱後面加上小括號。
用點來存取屬性和方法。
var shape = Shape()
shape.numberOfSides = 7
var shapeDescription = shape.simpleDescription()
使用init建立建構子。
class NamedShape {
    var numberOfSides: Int = 0
    var name: String

    init(name: String) {
        self.name = name
    }

    func simpleDescription() -> String {
        return "A shape with \(numberOfSides) sides."
    }
}
建立類別實體的時候,每個屬性都要被賦值。可以透過宣告的方式numberOfSides或是建構子name)。

如果你需要在删除實體之前進行一些清理工作,使用deinit建立解構子。
子類別的定義方法是在類別名稱後面加上父類別的名字,用冒號分割。建立類別不一定要指定父類別。
子類別如果要覆寫父類別的方法,需要用override——如果没有添加override就覆寫父類別方法的話編譯器會報錯。同樣的,編譯器也會檢查override是否存在父類別中。
class Square: NamedShape {
    var sideLength: Double

    init(sideLength: Double, name: String) {
        self.sideLength = sideLength
        super.init(name: name)
        numberOfSides = 4
    }

    func area() ->  Double {
        return sideLength * sideLength
    }

    override func simpleDescription() -> String {
        return "A square with sides of length \(sideLength)."
    }
}
let test = Square(sideLength: 5.2, name: "my test square")
test.area()
test.simpleDescription()

沒有留言: