Class (類)
1.屬性:
data member(描述對象狀態(tài))
2.方法:
function member 描述對象行為
3.init:
初始化
4.deinit:
釋放
5.new:subscript(下標(biāo)):
get和 set 方法,用數(shù)組方式使用
class MyClass {
//屬性
var x:Int
var y:Int
var datas:[Int] = [1,2,3]
//初始化
init(x:Int,y:Int){
self.x = x
self.y = y
}
//方法
func println() {
print("\(x),\(y),\(datas)")
}
//下標(biāo)
subscript(index:Int) -> Int{
get {
return datas[index]
}
set(newValue){
datas[index]=newValue
}
}
//析構(gòu)器
deinit{
print("clear up")
}
}
var myObject = MyClass(x:10,y:20)
myObject.println()
myObject.x += 1
myObject[0]=100
與struct(結(jié)構(gòu)體)的區(qū)別
class RPoint {
var x:Int
var y:Int
init(x:Int,y:Int){
self.x=x
self.y=y
}
}
struct SPoint {
var x:Int
var y:Int
init(x:Int,y:Int){
self.x=x
self.y=y
}
}
var rp = RPoint(x:10,y:20)
var sp = SPoint(x:10,y:20)
print(sizeofValue(rp))// "8/n"
print(sizeofValue(sp))// "16/n"
區(qū)別
1.類->對象,結(jié)構(gòu)->值
2.類->只是一個引用(棧中的是指針),結(jié)構(gòu)->實例直接位于棧中