面向对象编程(OOP)是一种广泛使用的编程范式,可以将程序分割为不同的对象,每个对象都是一个能够接收消息、处理数据并发送消息的容器。Swift作为一门现代化编程语言,同时支持面向对象编程和面向协议编程,可以帮助我们构建清晰、灵活的应用程序。
类(Class)
在Swift中,我们使用class关键字来定义一个类:
class Person {
var name: String
init(name: String) {
self.name = name
}
func sayHello() {
print("Hello, I'm \(name)")
}
}
let john = Person(name: "John")
john.sayHello() // 输出 "Hello, I'm John"
类中可以包含属性(变量)和方法(函数),还可以定义初始化方法init来创建类的实例。
结构体(Struct)
结构体与类非常相似,也可以包含属性和方法,但是结构体是值类型(传值),类是引用类型(传引用)。
struct Point {
var x: Int
var y: Int
}
var point = Point(x: 1, y: 2)
var copy = point // 复制点的副本
copy.x = 3 // 不影响point
继承(Inheritance)
类可以通过继承的方式扩展功能,子类可以继承父类的属性和方法。
www.itzhimei.com代码
class Vehicle {
var currentSpeed = 0.0
func drive() {
print("Driving at \(currentSpeed)")
}
}
class Bicycle: Vehicle {
var hasBasket = false
}
let bicycle = Bicycle()
bicycle.drive() // 子类继承了drive方法
属性封装
可以用private关键字将属性标记为私有,防止外部直接访问:
class Person {
private var id: Int
init(id: Int) {
self.id = id
}
func identify() -> Int {
return id
}
}
let person = Person(id: 12345)
person.identify() // 通过方法访问私有属性
构造过程
类的初始化可以通过定义 designated 和 convenience 两种构造方法来实现,前者是主构造,后者是次构造,方便创建实例。
Swift面向对象编程在保持语法简单的同时,提供了诸如属性封装、构造过程等多种特性,可以让我们以更合理灵活的方式来设计程序架构。