1.方法
a).方法的命名规则和函数不太一样:
方法如果没有指定外部函数名,那么它的外部函数名和内部函数名是一样的,而函数需要使用“#”修饰后,才能将内部函数名作为外部函数名使用;
方法需要有主体(实例或对象),而函数不需要;
方法实在类、结构体、枚举中定义的;
b).结构体和枚举的方法,在默认的情况下不能修改属性,但是变异方法可以修改,变异方法是使用“mutating”来修饰的方法(在“func”前边);
c).静态方法:与静态属性类似,结构体和枚举使用“static”修改,类使用“class”修饰;
2.构造器
a).默认的构造器:init(){};
b).存储属性必须在声明时赋值、或者在构造器中初始化;
c).构造器与其他函数一样,有外部参数名,可重载;
d).构造器代理:其实就是一个构造器调用其他的构造器,引用类型的构造器分为“横向代理(调用本类的init)”和“纵向代理(调用父类的init)”;
e).convenience init(...),convenience表示便利构造器(横向代理);
e).有构造就有析构,当实例或对象被赋值为nil时,析构器就被调用了。
注意四个名词:横向代理--》便利构造器、向上代理--》指定构造器。