引入:不给存储属性赋值,报错
定义类属性不报错,结构体的实例时必须为所有的存储属性设置一个合适的初始值
不报错,3种方式:
1 可选型
2 直接定义的时候初始化,直接=
3 构造函数中初始化
知识点一:构造函数的作用
1、构造函数用于初始化一个类的实例(创建对象)
2、默认情况下载创建一个类时,必然会调用一个构造函数
3、即便是没有编写任何构造函数,编译器也会提供一个默认的构造函数
知识点二:默认构造函数
1、使用 init 关键字来写,
2、构造函数没有func修饰
3、构造函数默认完成调用 不能手动调用
4、构造函数就像一个没有形式参数的实例方法,
知识点三:自定义构造函数
1、可以自定义构造函数
2、自定义构造函数和默认构造函数可以同时存在
class Person{
var name:String
var age:Int
var sex:String
//默认构造函数
init() {
print("init被调用")
self.name = "张三"
self.age = 10
self.sex = "男"
}
//自定义构造函数
init(name:String,age:Int,sex:String){
self.name = name
self.age = age
self.sex = sex
}
}
var p = Person()
p.name
p.age
var p2 = Person(name: "lisi", age: 18, sex: "女")