swift学习笔记(4)--结构体和类
2015-10-12 17:38
435 查看
//类和结构体 //相同点 //1.类和结构体都可以定义属性和方法(这是和c oc中的结构体的最大区别) //2.类和结构体中都能定义构造器方法 //不同点 //1.类可以在析构体deinit中释放资源,结构体不可以 //2.类可以继承.结构体是不能被继承 //3.类是一个引用类型,一个实例可以有多个引用,操作的是实例的本身;结构体是值类型,将内容拷贝到新的内存中,操作的是一块新的内存
1.结构体
//结构体 struct length{ var stat = 0.0 var end = 0.0 init(stat : Double , end : Double) { self.stat = stat self.end = end } func calculateLength() -> Double { return self.end - self.stat } } var len = length(stat: 30, end: 100) len.calculateLength()
2.类
//类 class Car{ var carName = String?() var len : length! init(name : String){ self.carName = name } //析构器 , 当类的实例释放的时候可以释放资源 deinit { } }
3.值类型(结构体)与引用类型(类)
var car = Car(name:"BYD") car.len = length(stat:20 , end:700) car.len.stat //值类型,操作的是拷贝的内容 var leng = car.len leng.stat = 100 car.len.stat car.carName //引用类型,操作的实例本身 var car1 = car car1.carName = "aoTuo" car.carName
4.属性
(1).存储属性,将常量或者变量作为实例的一部分使用
struct Point{ var x = 0.0 var y = 0.0 } struct Size{ var width = 0.0 var height = 0.0 }
(2).计算属性,提供一个get方法来获取值,也可以提供一个可选的set方法来设置值
struct Rect { var oraigon = Point() var size = Size() var center : Point{ get{ let centerX = size.width/2 + oraigon.x let centerY = size.height/2 + oraigon.y return Point(x: centerX, y: centerY) } set(newCenter){ oraigon.x = newCenter.x - size.width/2 oraigon.y = newCenter.y - size.height/2 } } } var rect = Rect() rect.oraigon.x = 10 rect.oraigon.y = 10 rect.size.width = 100 rect.size.height = 100 rect.center.x rect.center.y rect.center = Point(x: 100, y: 100) rect.oraigon.x
(3).类型属性
class Stu{ class var age : Int{ return 29 } var name : String! var type : String! init(name : String , type : String){ self.name = name self.type = type } func printName() -> String{ return self.name } //类的类型和方法,用class关键字声明 class func printAge() -> Int{ return self.age } } Stu.printAge() var stu = Stu(name: "hanlei", type: "213") stu.printName() Stu.age
5.类的继承
class St : Stu{ //重写父类方法,方法前加override关键字 override func printName() -> String{ return self.name } override init(name: String, type: String) { super.init(name: name, type: type) } }
相关文章推荐
- 让你震惊的swift语言
- swift tablevieCell自适应高度
- swift学习-类型转换(十九)
- swift 中的数组
- Swift 元组
- swift学习-错误处理(十八)
- Swift2.1 语法指南——继承
- Swift得知——使用和分类功能(四)
- 在 Swift 中测试 UIAlertController的方法
- NSString和SwiftString的区别和使用场景
- swift—4
- swift-2
- swift-1
- Swift 元组高级用法和最佳实践
- Swift2.1 语法指南——下标
- swift学习笔记(六)析关闭过程和使用分配给属性的默认值
- 74个Swift标准库函数
- Swift2.1 语法指南——方法
- 《从零开始学Swift》学习笔记(Day 21)——函数返回值
- 《从零开始学Swift》学习笔记(Day 21)——函数返回值