swift构造方法之带参数的构造方法(二)

上一遍主要讲述了缺省值的构造方法,这一篇主要讲述带有参数的构造方法

class Point{

var x: Int 

var y:Int 

init(x: Int, y: Int){

self.x = x

self.y = y

}

var p0 = Point(x:1, y:1)

如果此时你调用 let p1 = Point(),此时会报错,因为你自定义了 init(x: Int, y: Int)这个构造方法,即系统的init()隐私构造方法无效了。故此方法会无效。另外对于带参数的构造方法,这个参数,默认即是外部参数,也是内部参数。 这也是与普通函数不同的地方,类似于:

init(#x: Int, #y: Int){

...

}


如果你不希望他作为外部参数,只作为内部参数,可以:

init(_ x: Int, _y: Int){

...

}

注意:类中参数的顺序于属性的定义顺序无关,只需要保持他调用完之后有值即可。

2.常量存储属性与构造方法

class Person{

let name = "xiaoming"

var age :Int

init(name: String, age: Int){

self.name = name

self.age = 18

}

let ak = Person(name: "zcs", age: 18 )

注意二:常量存储属性只能在构造方法中修改,其他任何时候都不可以修改。

3.可选属性与构造方法

class Cat{

let age: Int

let sport: String?

init(age:Int){

self.age = age

}

}

注意3: 如果类中包含可选项属性,则可以在构造方法中不对可选项属性进行初始化,该属性默认为nil,当然也可以在构造方法中对其初始化,但一般不会这样做,这样就失去它作为可选项的意义了。

你可能感兴趣的:(swift构造方法之带参数的构造方法(二))