美文网首页
类和结构体及其属性的介绍

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

作者: Grt婷 | 来源:发表于2016-11-23 08:24 被阅读0次

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

    相关文章

      网友评论

          本文标题:类和结构体及其属性的介绍

          本文链接:https://www.haomeiwen.com/subject/ttgmpttx.html