类和结构体及其属性的介绍

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()

上一篇下一篇

猜你喜欢

热点阅读