Swift中init()方法的理解(构造器)

前言

初学者在学习Swift语言时可能对于方法/函数里面的“构造方法”/“构造函数”有困惑。实际上不仅仅是Swift,包括例如Java,C#等OOP语言而言,其都具备构造方法且作用大体相同:都是为一个类赋予初始值。

示例代码

下面两种情形分为在编码时无init方法和具备init方法

1.无init方法

class Student{
    var name: String?
    var age: Int?
}

对于这种情况而言,该类在实例化时,编译器仅为其各个变量提供内存地址,但内存地址而言里面却空空如也,里面什么也没有,而此时若想显示地赋予类变量数值时须修改如下:

class Student{
    var name: String =Bobvar age: Int = 18
}

但这种情况在实际开发时却不被待见:我们想要自由地赋予某个“Model”(数据模型,Java里面称之为JavaBean)而不是写死数据,那么我们就需要一种方法来在我们想要实例化某个“Model”时把该对象里面的属性赋予我们想要赋予的值。

2.具备init方法

class Student{
    var name: String?
    var age: Int?
   
    init(name: String, age: Int){
        self.name = name;
        self.age = age;
    }
}

上面的代码片段里虽然name和age也是有地址且地址里面为空,但具备的init方法里面传入两个参数:name和age(这里的两个参数不要与类变量混淆,这里是成员变量,使用时要用self关键字区分开),这两个参数把值赋予类变量,到此,当我们想要在业务里自由地赋予某个Model就自由地赋予的步骤便完成(系统先调用init方法把参数赋值给类变量等)。

总结

init的中文意思为“初始化”,字面理解就是当这东西出生时就赋予它一些条件,如果没有init方法,那么这个东西后天要修改一些属性就很困难。另外init方法是一种特殊的方法,它无返回值,可以重载,在一些语言里面,它是默认就具备的。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值