swift学习笔记——类和对象

在swift中通过class关键字来创建一个类,例如:

class NameShape{
    
}

如上代码则创建了Shape类型。

可以为类添加成员变量以及方法,例如:

class NameShape{
    var numberOfSides:Int = 0
    var name:String;
    init(name:String) {
        self.name = name
    }
    func simpleDescription()-> String
    {
        return "A Shape with \(numberOfSides) sides."
    }
}

如上代码则添加了numberOfSides与name成员变量,以及simpleDescription()方法。

init为类型的初始化方法,统一进行初始化操作。

下面的代码演示继承NameShape的子类,并对父类进行了相关的扩展:

class Square: NameShape {
    var sideLength:Double
    init(sideLength:Double,name:String)
    {
        self.sideLength = sideLength;
        super.init(name: name)
        self.numberOfSides = 4
    }
    
    func area() -> Double
    {
        return sideLength * sideLength
    }
    
    override func simpleDescription() -> String {
        return "A Square with \(numberOfSides) sides of length \(sideLength)"
    }
}

override关键字表示该方法是继承至父类的方法。

对于类的属性,我们可以为其设置set与get方法,例如:

class EquilateralTriangle: NameShape {
    var sideLength:Double = 0.0
    init(sideLength:Double,name:String) {
        self.sideLength = sideLength
        super.init(name: name)
        self.numberOfSides = 3
    }
    
    var perimeter : Double {
        //get方法
        get {
            return 3.0 * sideLength
        }
        //set方法
        set {
            sideLength = newValue / 3.0
        }
    }
    
    override func simpleDescription() -> String {
        return "An equilateral triangle with sides of length \(sideLength)."
    }
}

在上面的例子中我们为属性perimeter设置了set与get方法。这样实例化对象后,我们就可以调用该方法,例如:

var triangle:EquilateralTriangle = EquilateralTriangle(sideLength: 3.1, name: "EquilateralTriangle")
//调用get方法
triangle.perimeter
//调用set方法
triangle.perimeter = 9.9




你可能感兴趣的:(类,对象,swift)