Swift面向对象基础(中)——Swift中的方法

简介:

1、定义方法需要在类型(枚举,结构体,类)里定义,不能独立定义,独立定义的是函数

2、方法要么属于该类型本身,要么是该类型的一个实例

3、不能独立执行方法,执行方法必须使用类型或实例作为调用者

注意:枚举、结构体中方法使用static修饰,类中用class修饰,都属于类型方法,否则的话属于实例方法

复制代码
 1 import Foundation
 2  3 class SomeClass{
 4  func test(){
 5 println("====test 方法 ======")
 6  }
 7 class func bar(#msg:String){
 8 println("====bar 方法 ======,传入的参数为:\(msg)")
 9  }
10 }
11 //创建实例 12 var sc = SomeClass()
13 //将sc的test方法分离成函数,前面类型用()->()表示函数类型,后面的取方法不能带上() 14 var f1:()->() = sc.test//如果带上括号就是调用实例的方法
15 //将sc的bar方法分离成函数 16 var f2:(String)->Void = SomeClass.bar
17 18 //然后使用f1()就相当于调用的就是sc.test() 19 f1()
20 //然后使用f2()就相当于调用的就是SomeClass.bar(msg:) 21 f2("hello")
22 23 24 //************方法的外部形参名*************//
25 class Person{
26  var name:String
27  init(name:String){
28 self.name = name
29  }
30  func eat(food:String, _ drink:String ,cigarette:String){
31 println("\(self.name)吃着\(food)喝着\(drink)抽着\(cigarette)")
32  }
33 }
34 var p = Person(name: "Tom")
35 p.eat("烤鸭", "啤酒", cigarette: "雪茄")
36 /*Swift默认为除第一个参数外部添加了外部参数名,与局部参数名一样,如果不需要的话,则用_下划线的方式去掉,添加了外部参数名,不是添加了#号*/ 37 38 /************值类型的可变方法*************/ 39 struct JKRect {
40  var x:Int
41  var y:Int
42  var width:Int
43  var height:Int
44  mutating func moveByX(x:Int,y:Int){
45 self.x += x
46 self.y += y
47  }
48 }
49 var rect = JKRect(x: 20, y: 12, width: 200, height: 300)
50 rect.moveByX(100, y: 90)
51 println("矩形的左上角的x坐标为:\(rect.x),y坐标为\(rect.y)")
52 /*注意:常量类型的结构体,枚举时不可变的*/
复制代码

运行结果是:


相关文章
|
6月前
|
存储 编译器 Swift
27 Swift面向对象概述
Swift面向对象概述
26 0
|
Swift 开发者
Swift - swift3.0中代理方法的使用
Swift - swift3.0中代理方法的使用
52 0
|
Swift 索引
Swift - 字典排序方法
Swift - 字典排序方法
129 0
|
Swift
OC 和 swift 创建单例方法
OC 和 swift 创建单例方法
289 0
|
前端开发 Swift
Swift实用小册10:实例方法和类型方法的使用
Swift实用小册10:实例方法和类型方法的使用
183 0
Swift实用小册10:实例方法和类型方法的使用
|
存储 编译器 Swift
Swift5.0 - day4-闭包、属性、方法、下标
Swift5.0 - day4-闭包、属性、方法、下标
287 0
Swift5.0 - day4-闭包、属性、方法、下标
|
存储 Swift iOS开发
Swift5.1—类型方法
Swift5.1—类型方法
103 0
|
Swift 编译器
Swift - 实例对象调用协议方法优先级分析/ witness_methos witness_table分析
本文主要探究: 当一个类遵循了协议,且协议和类都有方法实现时,实例对象调用方法的优先顺序
Swift - 实例对象调用协议方法优先级分析/ witness_methos witness_table分析
|
Swift 开发者 iOS开发
Swift讲解专题十二——方法
Swift讲解专题十二——方法
162 0
|
编译器 Swift iOS开发
Swift解读专题三——基础运算符
Swift解读专题三——基础运算符
105 0