Swift学习笔记-对象和类

Posted 宇仔TuT

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift学习笔记-对象和类相关的知识,希望对你有一定的参考价值。

定义

通过class关键词定义类。
在类里边声明属性与声明常量或者变量的方法是相同的,唯一的区别的它们在类环境下。
同样的, -方法函数-(方法和函数不是一回事吗?) 的声明也是相同的写法。

class Shape 
    var numberOfSides = 0
    func simpleDescription() -> String 
        return “A shape with \\(numberOfSides) sides.

实例化

在类名后用()来创建类的实例。
使用点语法来访问实例的属性和方法。

var shape = Shape()
shape.numberOfSides = 7
var shapeDescription = shape.simpleDescription()

构造函数:init

使用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.

注意:
使用self来区分name是类属性还是构造函数的参数

析构函数:deinit

使用 deinit来创建一个析构函数,可以用来在释放对象之前执行一些清理工作。

子类和override关键字

在类名后用:跟上父类的名字来定义子类。

class Square: NamedShape

子类的方法如果要重写父类的实现,则需要使用 override——不使用 override关键字来标记则会导致编译器报错。

 override func simpleDescription() -> String 
        return “A square with sides of length \\(sideLength).

存储属性和计算属性

带有getter和setter的计算属性:

 var perimeter: Double 
        get 
            return 3.0 * sideLength
        
        set 
            sideLength = newValue / 3.0
        
    

在 perimeter的 setter 中,新值被隐式地命名为 newValue。你可以提供一个显式的名字放在 set 后边的圆括号里。

set(newValue: Double)  
  sideLength = newValue / 3.0

willSet与didSet

如果你不需要计算属性但仍然需要在设置一个新值的前后执行代码,使用 willSetdidSet

var triangle: EquilateralTriangle 
        willSet 
            square.sideLength = newValue.sideLength
        
    
    var square: Square 
        willSet 
            triangle.sideLength = newValue.sideLength
        
    

?的使用

你可以在可选项前边使用 ?,比如方法属性下标脚本
如果 ?前的值是 nil,那 ?后的所有内容都会被忽略并且整个表达式的值都是 nil
否则,可选项的值将被展开,然后 ?后边的代码根据展开的值执行。
在这两种情况当中,表达式的值是一个可选的值。

let optionalSquare: Square? = Square(sideLength: 2.5, name:optional square”)
let sideLength = optionalSquare?.sideLength

Swift学习群

欢迎加入本人的Swift学习微信群,一同互相监督学习,我微信:reese90

以上是关于Swift学习笔记-对象和类的主要内容,如果未能解决你的问题,请参考以下文章

python学习笔记--面向对象的编程和类

Java学习小笔记——对象和类

CoreJava学习笔记1-基本概念对象和类

Objective-C学习笔记(十九)——对象方法和类方法的相互调用

swift学习笔记:字符转为类,代码创建控件

swift 对象和类