Swift
发布时间:2022-03-31 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了【Swift初见】Swift构造过程,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
概述
所谓构造过程是指在创建某个实例而进行的一系列准备过程。比如为实例中的属性设置初始值和执行其他初始化工作。 构造过程是通过构造器来实现的,其实每个构造器就可以看作是一个函数,只是这个函数是为了执行初始化的。 1、存储属性的初始赋值 以类和结构体的实例创建为例,在创建类和结构体实例的时候,需要给类和街头题的属性设置一个默认值,
有两种方法: 1⃣️在定义属性的时候设置默认值;2⃣️在构造器中赋初值 无论
所谓构造过程是指在创建某个实例而进行的一系列准备过程。比如为实例中的
属性设置初始值和执行其他初始化工作。
构造过程是通过构造器来实现的,其实每个构造器就可以看作是
一个函数,只是这个
函数是为了执行初始化的。
1、存储
属性的初始赋值
以类和结构体的实例创建为例,在创建类和结构体实例的时候,需要给类和街头题的
属性设置
一个默认值,有两种
方法:
1⃣️在定义
属性的时候设置
默认值;2⃣️在构造器中赋初值
无论是哪一种
方法,他们的值都是被直接设置的,不会触发任何的
属性观察器。
那么什么是构造器呢?其实在上面的类的继承中我们已经见过,就是以关键字init命名的实例
方法:
struct Rect {
var width : Double
init(){
width = 10.0
}
}
2、定制化构造过程
刚刚我们使用的是
默认构造
函数,如果我们需要在创建实例的时候用到一些自己输入的参数什么的,这个时候我们就
需要用到定制化构造过程。
其实定制化的构造过程无非就是将刚刚的无参构造
函数变成含参构造
函数,其他的不变。
比如看下面的例子:
struct Rect {
var width : Double
var height : Double = 10.0
init(Square square : DoublE){
width = square
}
init(Rectangle rectangle : DoublE){
width = rectangle
}
func description (){
println("width is \(width)")
}
}
var graph : Rect = Rect(Square: 10)
var graph2 = Rect(Rectangle: 20)
graph.description()
graph2.description()
这个例子中我们提供了2个构造
函数,
一个用来创建正方形,
一个用来创建长方形,呵呵,显得有些多余。。。。
我们在创建实例的时候就可以
调用不同的构造
函数来完成不同的操作。
3、
默认构造器
swift将为所有
属性已提供
默认
值的且自身没有定义任何构造器的结构体或基类,提供
一个默认的构造器,这个
默认构造器将简单的创建
一个所有
属性值都设置为
默认
值的实例。
比
如下面:
struct Rect {
var width : Double = 10.0
var height : Double = 10.0
}
var graph : Rect = Rect()
这个Rect就没有构造器,系统会提供
一个默认构造器。
除了上面提到的
默认构造器,系统还可以用逐一成员构造器来初始化新实例里成员
属性的快捷
方法。请参
考结构体部分。
4、构造器代理
所谓构造器代理就是构造器可以通过
调用其他构造器来完成实例的部分构造过程,能够减少多个构造器之
间的代码重复。
由于值类型(结构体和枚举)
不支持继承,所以构造器代理的过程相对简单,因为他们只能代理任务给自身提供的其他构造器。类则不一样,它可以继承自其他类,这就是说类哟保证其他所有继承的
属性在构造时能正确的初始化。
struct Rect {
var width : Double = 10.0
var height : Double = 10.0
init (){
}
init (h : DoublE){
self.height = h
println("h is \(h)")
}
init (printH : DoublE){
self.init(h : printH)
}
}
var graph : Rect = Rect(printH: 3.2)
var graph2 = Rect(h: 4.3)
该结构体提供了3个构造
函数,
一个是空的init,不执行任何操作,
一个是传入h,打印出h的值,
一个是传入pirintH,然后
调用init (h : Doubl
E)这个构造
函数,打印出我输入的值。
5、类的继承和构造过程
类中的所有
属性包括继承自
父类的
属性,都必须在构造过程中设置初始值。
类中的构造器有两种,
一个是指定构造器,
一个是
便利构造器,他们都能确保所有
类实例中存储
属性都能获得初始值。
指定构造器是类中的最主要的构造器,
一个指定构造器将初始化类中提供的所有
属性,并根据
父类链往上
调用父类的构造器来实现
父类的初始化。每个类都必须拥有
一个指定构造器。
便利构造器是辅助构造器,我们可以定义一个便利构造器来调用同一个类中的指定构造器,并为其提供参数和默认值。
下次继续。
大佬总结
以上是大佬教程为你收集整理的【Swift初见】Swift构造过程全部内容,希望文章能够帮你解决【Swift初见】Swift构造过程所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。