19、swift开发iOS——类
来源:互联网 发布:商业地产it管理系统 编辑:程序博客网 时间:2024/05/23 12:15
Swift 类
Swift 类是构建代码所用的一种通用且灵活的构造体。
我们可以为类定义属性(常量、变量)和方法。
与其他编程语言所不同的是,Swift 并不要求你为自定义类去创建独立的接口和实现文件。你所要做的是在一个单一文件中定义一个类,系统会自动生成面向其它代码的外部接口。
类和结构体对比
Swift 中类和结构体有很多共同点。共同处在于:
定义属性用于存储值
定义方法用于提供功能
定义附属脚本用于访问值
定义构造器用于生成初始化值
通过扩展以增加默认实现的功能
符合协议以对某类提供标准功能
与结构体相比,类还有如下的附加功能:
继承允许一个类继承另一个类的特征
类型转换允许在运行时检查和解释一个类实例的类型
解构器允许一个类实例释放任何其所被分配的资源
引用计数允许对一个类的多次引用
语法:
Class classname {
Definition 1
Definition 2
……
Definition N
}
类定义
class student{
var studname: String
var mark: Int
var mark2: Int
}
实例化类:
let studrecord = student()
实例
import Cocoa
class MarksStruct {
var mark: Int
init(mark: Int) {
self.mark = mark
}
}
class studentMarks {
var mark = 300
}
let marks = studentMarks()
print("成绩为 \(marks.mark)")
以上程序执行输出结果为:
成绩为 300
作为引用类型访问类属性
类的属性可以通过 . 来访问。格式为:实例化类名.属性名:
import Cocoa
class MarksStruct {
var mark: Int
init(mark: Int) {
self.mark = mark
}
}
class studentMarks {
var mark1 = 300
var mark2 = 400
var mark3 = 900
}
let marks = studentMarks()
print("Mark1 is \(marks.mark1)")
print("Mark2 is \(marks.mark2)")
print("Mark3 is \(marks.mark3)")
以上程序执行输出结果为:
Mark1 is 300
Mark2 is 400
Mark3 is 900
恒等运算符
因为类是引用类型,有可能有多个常量和变量在后台同时引用某一个类实例。
为了能够判定两个常量或者变量是否引用同一个类实例,Swift 内建了两个恒等运算符:
恒等运算符 不恒等运算符
运算符为:=== 运算符为:!==
如果两个常量或者变量引用同一个类实例则返回 true 如果两个常量或者变量引用不同一个类实例则返回 true
实例
import Cocoa
class SampleClass: Equatable {
let myProperty: String
init(s: String) {
myProperty = s
}
}
func ==(lhs: SampleClass, rhs: SampleClass) -> Bool {
return lhs.myProperty == rhs.myProperty
}
let spClass1 = SampleClass(s: "Hello")
let spClass2 = SampleClass(s: "Hello")
if spClass1 === spClass2 {// false
print("引用相同的类实例 \(spClass1)")
}
if spClass1 !== spClass2 {// true
print("引用不相同的类实例 \(spClass2)")
}
以上程序执行输出结果为:
引用不相同的类实例 SampleClass
- 19、swift开发iOS——类
- ios开发——swift
- 2、swift开发iOS——swift语法
- 3、swift开发iOS——swift数据类型
- iOS开发——Swift & Xcode
- 1、swift开发iOS——基础
- 4、swift开发iOS——变量
- 6、swift开发iOS——常量
- 10、swift开发iOS——循环
- 11、swift开发iOS——字符串
- 12、swift开发iOS——字符
- 13、swift开发iOS——数组
- 14、swift开发iOS——字典
- 15、swift开发iOS——函数
- 17、swift开发iOS——枚举
- 20、swift开发iOS——属性
- 21、swift开发iOS——方法
- 23、swift开发iOS——继承
- 中序,前序,后序三种树遍历
- UVa-10361 Automatic Poetry
- 海康、大华IpCamera RTSP地址和格式
- 18、swift开发iOS——结构体
- UC/OS-ii任务优先级管理与查找算法
- 19、swift开发iOS——类
- 图片和视频到系统图库
- 创建基于python 3.4的Anaconda新环境
- Tomcat8.0配置JNDI数据源完整例子
- 85:Pow(x,n)
- 基础练习——数列特征
- 20、swift开发iOS——属性
- ASIC开发设计流程
- 将来会有一天回头看,自己曾经在一点点的进步