Swift2.0 类基础知识

来源:互联网 发布:mac pretty boy限量 编辑:程序博客网 时间:2024/06/02 20:41

类属性


////  SomeClass.swift//  SwiftClass////  Created by 张杰 on 15/6/17.//  Copyright © 2015年 张杰. All rights reserved.//import Foundationclass SomeClass{    //存储属性    var value1 = 1;    var value2:Int = 2;    //计算属性    var cal:Int{        get{            return value2        }        set(newValue){            value2 = newValue        }    }    //类属性,只能通过类访问,不能通过对象访问    class var newValue:Int{        return 29;    }        var teachers:Int = 0 {        //属性监控器        willSet(newTeachers){            print("老师变化了\(newTeachers) 位")        }        didSet(old) {            if teachers > old {                print("与原来相比增加了\(teachers - old) 位老师")            } else {                print("与原来相比减少了\(old - teachers) 位老师")            }        }    }}


////  main.swift//  SwiftClass////  Created by 张杰 on 15/6/17.//  Copyright © 2015年 张杰. All rights reserved.//import Foundationvar someClass = SomeClass()//测试存储属性print("测试存储属性")print(someClass.value1)print(someClass.value2)//测试计算属性print("测试计算属性")print(someClass.cal)someClass.cal = 20print(someClass.cal)//测试类属性print("测试类属性")print(SomeClass.newValue)//测试属性监控器print("测试属性监控器")someClass.teachers = 3

测试存储属性12测试计算属性220测试类属性29测试属性监控器老师变化了3 位与原来相比增加了3 位老师Program ended with exit code: 0


方法

////  ClassMethod.swift//  SwiftClass////  Created by 张杰 on 15/6/17.//  Copyright © 2015年 张杰. All rights reserved.//import Foundationclass ClassMethod {    var score = 0    //实例方法    //不带参数的函数    func additive(){        score++        print("\(score)\n")    }        //带参数的函数    func subtraction(amount: Int){        score -= amount        print("\(score)\n")    }        //类方法    class func betterScore() {        print("你获得有史以来最好的成绩\n")    }        //局部变量好存储变量同名的解决方法    func printScore() {        let score: Int = 50        print("局部变量:\(score)")        print("全局变量:\(self.score) \n")    }}class NewClassMethod: ClassMethod {        override class func betterScore() {        print("子类,重写了类方法\n")    }        override func additive() {        score += 3        print("子类,重新了实例方法\n")    }}

////  main.swift//  SwiftClass////  Created by 张杰 on 15/6/17.//  Copyright © 2015年 张杰. All rights reserved.//import Foundationvar classMethod = ClassMethod()//测试实例方法//测试无参方法print("测试无参方法")classMethod.additive()//测试带参方法print("测试带参方法")classMethod.subtraction(10)//测试类方法print("测试类方法")ClassMethod.betterScore()//局部变量好存储变量同名的解决方法print("局部变量好存储变量同名的解决方法")classMethod.printScore()//测试重写父类方法var newClassMethod = NewClassMethod()//测试调用父类方法print("测试调用父类方法")newClassMethod.subtraction(20)//测试重新父类实例方法print("测试重新父类实例方法")newClassMethod.additive()//测试重新父类方法print("测试重新父类方法")NewClassMethod.betterScore()

测试无参方法1测试带参方法-9测试类方法你获得有史以来最好的成绩局部变量好存储变量同名的解决方法局部变量:50全局变量:-9 测试调用父类方法-20测试重新父类实例方法子类,重新了实例方法测试重新父类方法子类,重写了类方法Program ended with exit code: 0

下标脚本

////  ClassSubScript.swift//  SwiftClass////  Created by 张杰 on 15/6/18.//  Copyright © 2015年 张杰. All rights reserved.//import Foundationclass Experience {        var age:[Int] = Array(count: 5, repeatedValue: 0)    //下标脚本    subscript(index:Int) -> Int {        //可读        get{            return age[index]        }        //可写        set{            age[index] = newValue        }    }        }

import Foundationvar ex = Experience()ex[0] = 5ex[1] = 6print(ex[0])print(ex[1])

56Program ended with exit code: 0



0 0
原创粉丝点击