Swift - 类

  • 简述

    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 中,实例总是作为对现有实例的引用而不是作为副本进行分配和传递。
    与运营商相同 与运营商不同
    使用的运算符是 (===) 使用的运算符是 (!==)
    当两个常量或变量指向同一个实例时返回真 当两个常量或变量指向不同的实例时返回真
    
    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