Swift编程语言入门教程

2020-01-08 22:44:24王旭

通过 "let" 添加一个常量属性,以及添加另一个方法能接受参数。

通过在类名后加小括号来创建类的实例。使用点语法来访问实例的属性和方法。

 

复制代码
var shape = Shape()
shape.numberOfSides = 7
var shapeDescription = shape.simpleDescription()

 

这个版本的 Shape 类有些重要的东西不在:一个构造器来在创建实例时设置类。使用 init 来创建一个。

 

复制代码
class NamedShape {
    var numberOfSides: Int = 0
    var name: String
 
    init(name: String) {
        self.name = name
    }   //by gashero
 
    func simpleDescription() -> String {
        return "A Shape with (numberOfSides) sides."
    }
}

 

注意 self 用来区分 name 属性和 name 参数。构造器的生命跟函数一样,除了会创建类的实例。每个属性都需要赋值,无论在声明里还是在构造器里。

使用 deinit 来创建一个析构器,来执行对象销毁时的清理工作。

子类包括其超类的名字,以冒号分隔。在继承标准根类时无需声明,所以你可以忽略超类。

子类的方法可以通过标记 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)."