类
类属性
//
// SomeClass.swift
// SwiftClass
//
// Created by 张杰 on 15/6/17.
// Copyright © 2015年 张杰. All rights reserved.
//
import Foundation
class 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 Foundation
var someClass = SomeClass()
//测试存储属性
print("测试存储属性")
print(someClass.value1)
print(someClass.value2)
//测试计算属性
print("测试计算属性")
print(someClass.cal)
someClass.cal = 20
print(someClass.cal)
//测试类属性
print("测试类属性")
print(SomeClass.newValue)
//测试属性监控器
print("测试属性监控器")
someClass.teachers = 3
测试存储属性
1
2
测试计算属性
2
20
测试类属性
29
测试属性监控器
老师变化了3 位
与原来相比增加了3 位老师
Program ended with exit code: 0
方法
//
// ClassMethod.swift
// SwiftClass
//
// Created by 张杰 on 15/6/17.
// Copyright © 2015年 张杰. All rights reserved.
//
import Foundation
class 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 Foundation
var 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 Foundation
class Experience {
var age:[Int] = Array(count: 5, repeatedValue: 0)
//下标脚本
subscript(index:Int) -> Int {
//可读
get{
return age[index]
}
//可写
set{
age[index] = newValue
}
}
}
import Foundation
var ex = Experience()
ex[0] = 5
ex[1] = 6
print(ex[0])
print(ex[1])
5
6
Program ended with exit code: 0