美文网首页SwiftiOS进阶指南
Swift基础语法-类基本定义,类的恒等运算

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

作者: DwightChan | 来源:发表于2016-08-01 00:15 被阅读17次

    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基础语法-类基本定义,类的恒等运算

        本文链接:https://www.haomeiwen.com/subject/morxsttx.html