对照Java学习Swift--构造过程(Initialization)
来源:互联网 发布:淘宝一心店铺出售 编辑:程序博客网 时间:2024/05/17 02:47
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 }}
先就学这么多,还没必要构造器等,到要用的时候在学吧,东西太多了。
0 0
- 对照Java学习Swift--构造过程(Initialization)
- Swift 构造过程(Initialization)
- Swift-构造过程(Initialization)(十二)
- 14.Swift-构造过程Initialization
- 对照Java学习Swift--析构过程(Deinitialization)
- 构造过程(Initialization)
- 对照Java学习Swift--函数(Functions)
- 对照Java学习Swift--枚举(Enumerations)
- 对照Java学习Swift--方法(Methods)
- 对照Java学习Swift--下标(Subscripts)
- 对照Java学习Swift--继承(Inheritance)
- 对照Java学习Swift--扩展(Extensions)
- 对照Java学习Swift--协议(Protocols)
- 对照Java学习Swift--泛型(Generics)
- Swift 的类、结构体、枚举等的构造过程Initialization(上)
- Swift 的类、结构体、枚举等的构造过程Initialization(下)
- Swift学习之构造过程
- Swift学习:2.14 构造过程
- 【Android Native Code开发系列】六 一个Native Service的完整示例
- MySQL分区表
- Web前端性能优化(五)网站样式和脚本
- 【Talk is cheap. Show me the code! - Linus Torvalds】
- Linux驱动开发之 五 (那些必须要了解的硬件知识 之 I2C)
- 对照Java学习Swift--构造过程(Initialization)
- Windows驱动开发(7) - DEVICE_OBJECT结构体
- 最长子序列问题(时间复杂度O(nlog(n))
- Linux下用户组、文件权限详解
- Class Methods & Variables
- HTML/CSS实现下拉菜单
- matlab图像保存
- 代码训练营——TreeSet
- 虚拟机提示:无法打开内核设备“\\.\Global\vmx86”: 系统找不到指定的文件