Swift基础语法-类基本定义,类的恒等运算


1. 类的基本定义

  • Swift中的结构体和类非常相似, 但是又有不同之处

  • 类是具有相同属性和方法的抽象

  • 类没有逐一构造器, 因此需要手动写构造方法

  • 如果写了自定义的构造器, 则原有的 类名() 这个方法将失效,

  • 如果需要使用到原有默认的构造器 类名() 则需要在中重写 init(){}构造器

  • 格式:

class 类名称 {
    类的属性和方法
}
class Rect {
    var width:Double
    var height:Double
    func show() -> Void{
        print("width = \(width) height = \(height)")
    }
    //类没有逐一构造器, 因此需要手动写构造方法
    init (width : Double, height : Double){
        self.width = width
        self.height = height
    }
    // 写了上面的构造方法之后, 则原有的 类名() 这个方法将失效, 因此需要重写构造器
    init () {
        self.height = 0.0
        self.width = 0.0
    }
}
  • 类没有逐一构造器, 如果想要使用, 必须手动写构造方法
  • 注意: 如果手动重写了构造器, 则原有的 init () {}将失效, 如果要使用, 则也需要重写
    //在该类中添加构造器
    init (width : Double, height : Double){
        self.width = width
        self.height = height
    }
    // 写了上面的构造方法之后, 则原有的 类名() 这个方法将失效, 因此需要重写构造器
    init () {
        self.height = 0.0
        self.width = 0.0
    }

2. 类的使用

  • 使用自定义类创建对象
//该类必须手动写 init (width : Double, height : Double){} 构造器, 如果没有构造器而使用则直接报错
var r1 = Rect(width: 10.0, height: 10.0)
r1.show()
var r2 = r1
r2.show()
//输出结果:
//width = 10.0 height = 10.0
//width = 10.0 height = 10.0
  • 对象给新变量定义时赋值, 是引用类型, 指针引用, 新对象创建出来的对象和之前的对象指向同一个存储空间
//类是引用类型, 类之间的赋值其实是将r2指向了r1的存储空间
//所以他们是两个只想同一块存储空间, 修改其中一个会影响到另外一个
r1.width = 99
r1.show()
r2.show()
//输出结果:
//width = 99.0 height = 10.0
//width = 99.0 height = 10.0
  • 使用恒等运算符判断是否是同一个实例, 也就是判断是否指向同一个存储空间
    • 恒等 ===
    • 不恒等 !==
var r3 = Rect()  
if r1 === r3 { 
    print("指向同一块存储空间")
}
//输出结果:
//指向不同的存储空间

你可能感兴趣的:(Swift基础语法-类基本定义,类的恒等运算)