您的位置:首页 > 移动开发 > Swift

对照Java学习Swift--构造过程(Initialization)

2016-05-07 21:01 363 查看
Swift和Java的构造器的功能差不多,但是在语法层面有些不同,都是为了实现实例的创建。

Swift构造方法是用init关键字来实现,Java使用跟类名一样的方法来实现,都没有返回值,但是Swift的可失败构造方法如果构建失败返回nil是个例外。

Swift的构造方法:

init() {
// 在此处执行构造过程
}


Java中的构造方法:

public Person(){
// 在此处执行构造过程
}


Swift和Java都有默认的构造函数,Swift的结构体还有逐一构造函数。

Swift包括指定构造器和便利构造器,默认的是指定构造函数,在前面加个convenience是便利构造函数,Java中则没有便利构造函数。

指定构造器将初始化类中提供的所有属性,并根据父类链往上调用父类的构造器来实现父类的初始化。

定构造器将初始化类中提供的所有属性,并根据父类链往上调用父类的构造器来实现父类的初始化。

便利构造器是类中比较次要的、辅助型的构造器。你可以定义便利构造器来调用同一个类中的指定构造器,并为其参数提供默认值。你也可以定义便利构造器来创建一个特殊用途或特定输入值的实例。

类的构造器代理规则

为了简化指定构造器和便利构造器之间的调用关系,Swift 采用以下三条规则来限制构造器之间的代理调用:

规则 1

指定构造器必须调用其直接父类的的指定构造器。

规则 2

便利构造器必须调用同一类中定义的其它构造器。

规则 3

便利构造器必须最终导致一个指定构造器被调用。

可失败构造器

在init关键字后面添加问号(init?)。

可失败构造器会创建一个类型为自身类型的可选类型的对象。你通过return nil语句来表明可失败构造器在何种情况下应该“失败”。

struct Animal {
let species: String
init?(species: String) {
if species.isEmpty { return nil }
self.species = species
}
}


先就学这么多,还没必要构造器等,到要用的时候在学吧,东西太多了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: