博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发Swift篇—(十)方法
阅读量:7080 次
发布时间:2019-06-28

本文共 2004 字,大约阅读时间需要 6 分钟。

一、简单说明

跟其他面向对象语言一样,Swift中的方法可以分为2大类:

(1)实例方法(Instance Methods)

  在OC中,实例方法以减号(-)开头

(2)类型方法(Type Methods)

  在OC中,类型方法以加号(+)开头

二、实例方法

1.什么是实例方法?

实例方法:就是只能用对象实例调用的方法,也可以称为“对象方法”

实例方法的语法跟函数基本一样

2.代码示例:

复制代码
1 class Dog {2  func run() {3 println("Dog--->run")4  }5 }6 var d = Dog()7 d.run()
复制代码

说明:

第2行定义了一个run方法

第7行调用run方法:调用方法也跟调用函数很像,格式是“对象名.方法名(参数)”

三、方法的参数

(1)方法和函数的参数有点区别,默认情况下

方法的第1个参数名仅仅是局部参数名

方法的其他参数名(除第1个参数名以外)既是局部参数名,又是外部参数名

复制代码
1 class Calculator {2 func sum(num1: Int, num2: Int) -> Int {3 return num1 + num24  }5 }6 var c = Calculator()7 c.sum(10, num2: 20)
复制代码

说明:

num1仅仅是局部参数名,num2既是局部参数名,又是外部参数名

相当于func sum(num1: Int, #num2: Int) -> Int

(2)可以在参数名前面加个下划线 _,去掉默认的外部参数名

复制代码
1 class Calculator {2 func sum(num1: Int, _ num2: Int) -> Int {3 return num1 + num24  }5 }6 var c = Calculator()7 c.sum(10, 20)
复制代码

说明:num1、num2都仅仅是局部参数名,不是外部参数名

(3)也可以给第1个参数增加外部参数名

复制代码
1 class Calculator {2 func sum(#num1: Int, num2: Int) -> Int {3 return num1 + num24  }5 }6 var c = Calculator()7 c.sum(num1: 10, num2: 20)
复制代码

说明:num1、num2既是局部参数名,又是外部参数名

四、类型方法

1.什么是类型方法?

  被关键字class修饰的方法,也可以称为“类方法”

1 class Calculator {2 class func sum(num1: Int, num2: Int) -> Int {3 return num1 + num24  }5 }6 Calculator.sum(10, num2: 20)

说明:

第2行定义了一个类型方法

类型方法的特点:直接用类调用类型方法,不能用对象调用类型方法

第6行调用类型方法,格式是“类名.方法名(参数)”

注意:类型方法和实例方法的方法名可以一样

复制代码
1 class Calculator { 2 class func sum(num1: Int, num2: Int) -> Int { 3 return num1 + num2 4  } 5 func sum(num1: Int, num2: Int) -> Int { 6 return num1 + num2 7  } 8 } 9 Calculator.sum(10, num2: 20)10 var c = Calculator()11 c.sum(10, num2: 20)
复制代码

说明:

第2行定义的类型方法和第5行定义的实例方法:方法名一样

第9行使用类调用类型方法

第11行使用对象调用实例方法

五、self

1.简单说明

在每个方法内部,都有个隐含的属性self,它的作用跟Objective-C中self的用法基本一致

self代表的是什么?谁调用这个方法,self就代表谁

(1)在实例方法中:self代表调用方法的某个对象

(2)在类型方法中:self代表调用方法的某个类

2.代码示例

复制代码
1 class Person { 2 class func run() { 3 println("class func run") 4  } 5  func run() { 6 println("func run") 7  } 8 class func test() { 9  self.run();10  }11  func test() {12  self.run();13  }14 }15 var p = Person()16 p.test()17 Person.test()
复制代码

程序的输出结果是:

func run

class func run

转载地址:http://ptjml.baihongyu.com/

你可能感兴趣的文章
AngularJs+bootstrap搭载前台框架——准备工作
查看>>
Linux Redis安装,Linux如何安装Redis,Linux Redis自动启动,Redis开机启动
查看>>
剑指offer61 按之字形顺序打印二叉树
查看>>
尝试 Markdown 写测试用例
查看>>
大型网站架构系列:缓存在分布式系统中的应用(二)
查看>>
Hdu 2018 母牛的故事
查看>>
C language 模拟 win的经典游戏——扫雷
查看>>
Codeforces Round #297 (Div. 2) 525D Arthur and Walls(dfs)
查看>>
Intent启动系统组件(activity,service,BroadReceiver)-android学习之旅(四十九)
查看>>
MVC-MODEL
查看>>
shiro-5基于url的权限管理
查看>>
MyMVC配置
查看>>
读懂JVM垃圾收集日志
查看>>
CentOS 开机启动
查看>>
ASP.NET Core的身份认证框架IdentityServer4(5)- 包和构建
查看>>
查看本机的ip地址
查看>>
select点击option获取文本输入框的焦点事件
查看>>
setup 命令中防火墙配置选项无法打开
查看>>
kaptcha验证码
查看>>
Centos6下编译LEDE/OpenWrt
查看>>