📅  最后修改于: 2020-12-25 04:33:18             🧑  作者: Mango
Swift 4中的类是灵活构造的构建块。与常量,变量和函数相似,用户可以定义类的属性和方法。 Swift 4为我们提供了在声明类时用户无需创建接口或实现文件的功能。 Swift 4允许我们将类创建为单个文件,并且在初始化类后将默认创建外部接口。
继承将一类的属性转移到另一类
类型转换使用户可以在运行时检查类类型
反初始化程序负责释放内存资源
引用计数允许类实例具有多个引用
Class classname {
Definition 1
Definition 2
---
Definition N
}
class student {
var studname: String
var mark: Int
var mark2: Int
}
创建实例的语法
let studrecord = student()
class MarksStruct {
var mark: Int
init(mark: Int) {
self.mark = mark
}
}
class studentMarks {
var mark = 300
}
let marks = studentMarks()
print("Mark is \(marks.mark)")
当我们使用游乐场运行上述程序时,我们得到以下结果-
Mark is 300
可以通过“。”访问类属性。句法。属性名称以“。”分隔。在实例名称之后。
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 4中的类引用了指向一个实例的多个常量和变量。要了解指向特定类实例的常量和变量,请使用身份运算符。类实例始终通过引用传递。在类NSString中,总是分配NSArray和NSDictionary实例并将其作为对现有实例的引用而不是副本进行传递。
Identical to Operators | Not Identical to Operators |
---|---|
Operator used is (===) | Operator used is (!==) |
Returns true when two constants or variables pointing to a same instance | Returns true when two constants or variables pointing to a different instance |
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")
spClass1 === spClass2 // false
print("\(spClass1)")
spClass1 !== spClass2 // true
print("\(spClass2)")
当我们使用游乐场运行上述程序时,我们得到以下结果-
main.SampleClass
main.SampleClass