类和结构体及其属性的介绍
2016-11-23 本文已影响0人
Grt婷
1.重写父类,析构函数
class Student : NSObject {
var name : String?
var age : Int?
var gender : Bool?
//override 重写父类
override init(){//初始化方法
print("创建了一个学生对象")
}
init(age : Int,gender : Bool,name : String){
super.init()
self.age = age
self.gender = gender
self.name = name
}
deinit {//析构函数
print("对象释放")
}
}
var st:Student = Student(age: 123, gender: false, name: "123")
print("st.name = \(st.name!) st.gender = \(st.gender!) st.age= \(st.age!)")
2.存储属性、计算属性、lazy属性、函数、类函数、类属性
class Person : NSObject{
var name:String?//存储属性
var age:Int?
//计算属性
var fatherAge : Int {
set {// newValue是默认值
self.age = newValue - 20
}
get {
return self.age! + 20
}
}
//lazy属性
lazy var st : Student = Student()
//函数
func eat(){
print("吃饭")
}
//类函数
class func happy(){
print("happy")
}
static func study() {
print("学习")
}
//类属性
static var fatherName : String?
}
3.结构体
//结构体 //1.结构体不能继承 //2.结构体是值类型,类是引用类型
struct Dog {
var name : String?
}
//p是上一个程序的对象
var p:Person = Person()
p.name="zhangsan"
var dog:Dog=Dog()
dog.name="大黄"
var p1 = p
var dog1 = dog
p1.name="wangwu"
dog1.name="wangcai"
print("p.name=\(p.name) dog.name=\(dog.name)")
print(p.st)
p.eat()