swift -- 构造/析构函数

 一.构造函数

//当一个类实例化一个对象时候,第一个调用的方法

class Student {

//属性

var name = "ser"

let age : Int

//1.重写构造函数

//2.不带外部名的构造器参数

init(){

print("init")

self.age = 111    //在init中 ,改变常量属性

}

//3.构造函数参数的内部名称和外部名称

init(name : String){

print(name)

}

//默认的外部参数名

init(name : String , age : Int){

print(name , age)

}

//指定的外部参数名 及内部参数名

init(name1 a : String , age1 b : Int){

print(a,b)

}

//忽略外部参数名(下划线)

init(_ a :String , _ b :Int){

print(a,b)

}

}

var stu1 = Student.init()

var stu2 = Student.init(name : "xiaoming")

var stu3 = Student.init(name: "aa", age: 100)

var stu4 = Student.init(name1: "bb", age1: 200)

var stu5 = Student.init("cc", 300)

//4.构造过程中 常量属性 的修改

//只能在init方法中修改 常量属性

//5.默认构造器

//6.结构体的成员逐一构造器

struct Point {

var width : Int = 0

}

var point1 = Point.init()

var point2 = Point.init(width: 10)

//7.构造器的继承和重写

class XiaoHong : Student {

override init() {

super.init()    //8.构造器的自动继承

print("xiaohong")

}

 //析构函数

deinit{

print("deinit")

}

}

var xiaohong = XiaoHong.init()   //初始化实例变量时,调用构造函数

//析构函数: 当对象为nil 时候,会调用析构函数

var xiao2 : XiaoHong? = XiaoHong.init()

xiao2 = nil  //为空时,此时会调用析构函数

上一篇:Pandas 基础(17) - to_datetime


下一篇:BZOJ1001: [BeiJing2006]狼抓兔子【最短路+对偶图】