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
如果你不需要计算属性
但仍然需要在设置一个新值的前后执行代码,使用 willSet
和 didSet
。
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学习笔记-对象和类的主要内容,如果未能解决你的问题,请参考以下文章