-
关联元组查看全部
-
关联值对于枚举中的对象不是必须的,可以有的有,有的没有查看全部
-
可以不解析关联值查看全部
-
关联值1查看全部
-
调用g GameManager.defaultGameManager永远只调用一个实例化的GameManager static类型变量,可以通过GameManager类来调用类型属性defaultGameManager let存储了类自己初始化的实例defaultmanager,因此这个实例只能被初始化一次查看全部
-
如果父类的方法或者属性用final修饰,则子类不能重写该方法或者属性 1、只能重写计算型属性,不能重写存储型属性 2、final可以修饰类,类型方法,类型属性,实例方法,属性,下标 3、类型方法可以用class或static修饰,static修饰的方法子类不能重写,final class修饰的类型也不能重写,二者等价查看全部
-
重写父类的属性要用关键字override 计算型属性赋值的话必须要用set方法,其中set(计算性属性的返回值类型的参数)查看全部
-
只能给user下的所有子类治疗查看全部
-
子类的对象可以当做父类的对象使用查看全部
-
多态性就是实例化一个类的对象后,这个对象不止是这个类的对象,还是这个类的父类的对象也是父类的父类的对像查看全部
-
延迟属性:声明属性的时候,计算属性不会进行计算,直到第一次调用才会进行第一次计算,并且会记住计算结果,只需要计算这一次就可以了 声明方式:lazy关键字 属性名:属性类型 = {}()这是调用闭包,注意闭包的捕获外部属性必须用self调用 lazy属性必须显示的声明返回值类型,必须声明成var类型 延迟属性的使用,想用的时候才计算查看全部
-
lazy 懒加载使用场景 1.如果初始化类对象的时候就对这个属性进行初始化,那么可能会浪费一些资源; 2.作为计算型属性,每次调用都不需要重新计算,同样造成浪费; lazy属性,只在使用时调用一次,且调用后结果被保存。 类似于 getter some { if some retuen some some = ... }查看全部
-
属性观察器的willSet和didset不会在初始化的时候被调用,init和直接赋初始值这个属性的时候不会调用属性观察器查看全部
-
属性初始化的时候不赋初始值的话可以显示的声明类型以后加!或者加?,这两个都表示可选型,但是!表示属性的值可以暂时为nil,但是使用的时候必须有值,而?暂时为nil,使用的时候可以是nil可以有值查看全部
-
willSet(),默认参数是newValue,didSet()默认参数是oldValue,给属性赋值的时候,执行顺序是willSet, set, didSet,监控的作用 计算型属性 get方法必须返回一个值显示声明这个属性的类型的值,set()方法默认的参数是newValue,在函数体中可以进行任何操作,偏执行作用 willSet将要赋值还没赋值,didSet已经赋值完成查看全部
举报
0/150
提交
取消