Class (类)
1.属性:
data member(描述对象状态)
2.方法:
function member 描述对象行为
3.init:
初始化
4.deinit:
释放
5.new:subscript(下标):
get和 set 方法,用数组方式使用
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)")
}
//下标
subscript(index:Int) -> Int{
get {
return datas[index]
}
set(newValue){
datas[index]=newValue
}
}
//析构器
deinit{
print("clear up")
}
}
var myObject = MyClass(x:10,y:20)
myObject.println()
myObject.x += 1
myObject[0]=100
与struct(结构体)的区别
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"
区别
1.类->对象,结构->值
2.类->只是一个引用(栈中的是指针),结构->实例直接位于栈中