Swift 类
封面图
•
2025-10-23
•
Swift
1
0
0
0
在 Swift 中,**类(class)** 是面向对象编程(OOP)的核心组成部分。Swift 是一种强类型、面向对象的编程语言,支持类、结构体(struct)、枚举(enum)等。 --- ## 一、类的基本语法 ```swift class ClassName { // 属性(Properties) var property: Type // 方法(Methods) func methodName() { // 方法体 } } ``` --- ## 二、类的属性(Properties) 类可以有 **存储属性(Stored Properties)** 和 **计算属性(Computed Properties)**。 ### 1. 存储属性 ```swift class Car { var model: String var year: Int init(model: String, year: Int) { self.model = model self.year = year } } ``` ### 2. 计算属性 ```swift class Circle { var radius: Double init(radius: Double) { self.radius = radius } var area: Double { get { return .pi * radius * radius } set { radius = sqrt(newValue / .pi) } } } ``` --- ## 三、类的方法(Methods) 方法是类中定义的函数,用于执行特定任务。 ```swift class Person { var name: String init(name: String) { self.name = name } func greet() { print("Hello, my name is $name)") } } ``` --- ## 四、初始化器(Initializers) 类必须通过初始化器来设置初始状态。 ```swift class Student { var name: String var grade: Int init(name: String, grade: Int) { self.name = name self.grade = grade } } ``` --- ## 五、类的继承(Inheritance) Swift 支持类的继承,使用 `class` 关键字,并用 `:` 表示继承。 ```swift class Vehicle { var speed: Int = 0 func accelerate() { speed += 10 } } class Car: Vehicle { var model: String init(model: String) { self.model = model } } ``` --- ## 六、重写方法(Overriding) 子类可以重写父类的方法: ```swift class Car: Vehicle { override func accelerate() { speed += 20 } } ``` --- ## 七、类和结构体的区别(Class vs Struct) | 特性 | 类(Class) | 结构体(Struct) | |------|-------------|------------------| | 引用类型 | ✅ 是 | ❌ 否(值类型) | | 继承 | ✅ 支持 | ❌ 不支持 | | 初始化器 | ✅ 可以有自定义 | ✅ 可以有自定义 | | 性能 | 适用于大型数据或需要共享状态的场景 | 适用于小型、简单数据结构 | --- ## 八、示例:完整类的使用 ```swift class Dog { var name: String var breed: String init(name: String, breed: String) { self.name = name self.breed = breed } func bark() { print("$name) says: Woof!") } } let myDog = Dog(name: "Buddy", breed: "Golden Retriever") myDog.bark() ``` --- 如果你有具体想了解的内容,比如: - 类的 `deinit` - 类的 `static` 或 `class` 方法 - 类的 `lazy` 属性 - 类的 `typealias` 等 欢迎继续提问!
上一篇:
Swift 类型转换
下一篇:
Swift 下标脚本
标题录入,一次不能超过6条
返回顶部
留言
留言
评论