自定义数据类型 --- 类全解(swift2.3)

来源:互联网 发布:javascript 构造函数 编辑:程序博客网 时间:2024/05/29 10:42

自定义数据类型 — 类(swift)

下面简单的介绍结构体这一自定义数据类型的应用

  1. 类的基本语法

  2. 类是引用类型

  3. 引用类型的特点

  4. 类的等价

  5. 什么时候使用类,什么时候使用结构体


一:类的基本语法

class Person {    var firstName: String    var lastName: String    init(firstName: String, lastName: String){        self.firstName = firstName        self.lastName = lastName    }    init?(fullName: String){    guard let index = fullName.rangeOfString(" ")?.startIndex      else{            return nil        }        let a = fullName.substringToIndex(index)//如果这句话要放在guard保护里,必须是optional类型        let b = fullName.substringFromIndex(index)        self.firstName = a        self.lastName = b    }    func fullName() -> String {        return self.firstName + self.lastName    }}let person = Person(firstName: "尹", lastName: "欢一")let person1 = Person(fullName: "Steve Jobs")person.firstNameperson.lastNameperson1!.firstNameperson1!.lastNameperson1?.fullName()person.fullName()

二:类是引用类型

类的传递是通过Preference Type 传递的

三:引用类型的特点

结构体和枚举如果要调用函数自身改变自身的话,必须在函数前面写mutating关键字

struct Person {    var age = 10    var day = 20   mutating func setAge(){    return self.age += 20    }}var person = Person( )person.setAge()person.ageenum Location {    case on    case off   mutating func change() {        switch self {        case on:            self = .off        case off:            self = .on        }    }}var door = Location.offdoor.change()door.change()

四:类的等价

//如果要判断两个类对象是否相等,那么应该使用的是“===”,三个等号//如果要判断两个类对象是否不等,那么应该使用的是“!==”,一个叹号和两个等号//如果一个类被赋值了两次,那么系统就会为第三个变量开辟一块新的存储空间,这时候第一个类和第三个类就不相等了

五:什么时候使用类,什么时候使用结构体

如果你想要封装的是一个位置,坐标,温度等,考虑使用结构体如果你想要封装的是一个人,车,动物等,考虑使用类如果一个事物需要继承其他的类或被其他的类继承,那么就使用类如果一个事物非常小,那么使用结构体,结构体是保存在栈中,而类保存在堆中
1 0
原创粉丝点击