iOS开发Swift篇—(十)方法

一、简单说明

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

(1)实例方法(Instance Methods)

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

(2)类型方法(Type Methods)

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

二、实例方法

1.什么是实例方法?

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

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

2.代码示例:

 class Dog {
func run() {
println("Dog--->run")
}
}
var d = Dog()
d.run()

说明:

第2行定义了一个run方法

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

三、方法的参数

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

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

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

 class Calculator {
func sum(num1: Int, num2: Int) -> Int {
return num1 + num2
}
}
var c = Calculator()
c.sum(, num2: )

说明:

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

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

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

 class Calculator {
func sum(num1: Int, _ num2: Int) -> Int {
return num1 + num2
}
}
var c = Calculator()
c.sum(, )

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

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

 class Calculator {
func sum(#num1: Int, num2: Int) -> Int {
return num1 + num2
}
}
var c = Calculator()
c.sum(num1: , num2: )

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

四、类型方法

1.什么是类型方法?

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

 class Calculator {
class func sum(num1: Int, num2: Int) -> Int {
return num1 + num2
}
}
Calculator.sum(, num2: )

说明:

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

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

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

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

 class Calculator {
class func sum(num1: Int, num2: Int) -> Int {
return num1 + num2
}
func sum(num1: Int, num2: Int) -> Int {
return num1 + num2
}
}
Calculator.sum(, num2: )
var c = Calculator()
c.sum(, num2: )

说明:

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

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

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

五、self

1.简单说明

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

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

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

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

2.代码示例

 class Person {
class func run() {
println("class func run")
}
func run() {
println("func run")
}
class func test() {
self.run();
}
func test() {
self.run();
}
}
var p = Person()
p.test()
Person.test()

程序的输出结果是:

func run

class func run

iOS开发Swift篇—(十)方法的更多相关文章

  1. 李洪强iOS开发Swift篇—10_方法

    李洪强iOS开发Swift篇—10_方法 一.简单说明 跟其他面向对象语言一样,Swift中的方法可以分为2大类: (1)实例方法(Instance Methods) 在OC中,实例方法以减号(-)开 ...

  2. iOS开发Swift篇—(四)运算符

    iOS开发Swift篇—(四)运算符 一.运算符 1.Swift所支持的部分运算符有以下一些 赋值运算符:= 复合赋值运算符:+=.-= 算术运算符:+.-.*./ 求余运算符:% 自增.自减运算符: ...

  3. iOS开发Swift篇—(八)函数(2)

    iOS开发Swift篇—(八)函数(2) 一.函数类型 函数类型也是数据类型的一种,它由形参类型和返回值类型组成,格式是 (形参类型列表) -> 返回值类型 func sum(num1: Int ...

  4. iOS开发Swift篇—(九)属性

    iOS开发Swift篇—(九)属性 一.类的定义 Swift与Objective-C定义类的区别 Objective-C:一般需要2个文件,1个.h声明文件和1个.m实现文件 Swift:只需要1个. ...

  5. iOS开发Swift篇(02) NSThread线程相关简单说明

    iOS开发Swift篇(02) NSThread线程相关简单说明 一 说明 1)关于多线程部分的理论知识和OC实现,在之前的博文中已经写明,所以这里不再说明. 2)该文仅仅简单讲解NSThread在s ...

  6. 李洪强iOS开发Swift篇---12_NSThread线程相关简单说明

    李洪强iOS开发Swift篇---12_NSThread线程相关简单说明 一 说明 1)关于多线程部分的理论知识和OC实现,在之前的博文中已经写明,所以这里不再说明. 2)该文仅仅简单讲解NSThre ...

  7. 李洪强iOS开发Swift篇—09_属性

    李洪强iOS开发Swift篇—09_属性 一.类的定义 Swift与Objective-C定义类的区别 Objective-C:一般需要2个文件,1个.h声明文件和1个.m实现文件 Swift:只需要 ...

  8. 李洪强iOS开发Swift篇—08_函数(2)

    李洪强iOS开发Swift篇—08_函数(2) 一.函数类型 函数类型也是数据类型的一种,它由形参类型和返回值类型组成,格式是 (形参类型列表) -> 返回值类型 1 func sum(num1 ...

  9. 李洪强iOS开发Swift篇—04_运算符

    李洪强iOS开发Swift篇—04_运算符 一.运算符 1.Swift所支持的部分运算符有以下一些 赋值运算符:= 复合赋值运算符:+=.-= 算术运算符:+.-.*./ 求余运算符:% 自增.自减运 ...

随机推荐

  1. 同事的游戏项目--Robocode-学习链接

    Robocode机器人库学习链接:http://www.pudn.com/search_db.asp?keyword=Robocode 官网 :http://robocode.sourceforge. ...

  2. System.arraycopy

    ref : http://blog.csdn.net/jaycee110905/article/details/45228249

  3. 十四、Java基础---------String、StringBuffer、StringBuilder基本应用

    在前面的博客中曾提及Java的数据类型分为基本数据类型,和引用数据类型,而String便是最常见的应用数据类型,本文将着重介绍这一引用数据类型的用法. String 字符串     String类是对 ...

  4. 关于easyUI 的tabs 在子页面增加显示tabs的一个问题

    在父页面点个链接能动态看到子页面的情况太简单,请看easyUI官网:http://www.jeasyui.com/tutorial/layout/tabs2.php现在说的是在子页面点个按钮也能触发增 ...

  5. CI框架多个表前缀,如何使用框架语句querybuilder

    最近用CI框架遇到一个问题.2个前提条件: 1.数据库设计不规范,有的有表前缀(如:ck_table1),有的没有(如:table2)或者表前缀不一样: 2.数据库操作又想使用数据库操作语句query ...

  6. Spine批量导出Command line Export

    1.准备工作及介绍 时间有点紧张,写的不是很详细,请见谅. 当前版本是2.2以上,购买版的.试用版的无法试用Command line Both Spine and the Spine launcher ...

  7. easyui DataGrid 工具类之 Utils class

    import java.lang.reflect.InvocationTargetException;import java.text.ParseException;import java.text. ...

  8. jQuery 添加元素

    jQuery 添加元素 1.append 在被选元素的结尾插入内容 $(document).ready(function(){ $("button").click(function ...

  9. Java中Object类

    Object类是所有类的父类,如果一个类没有使用extends关键字明确标识继承另一个类,那么这个类默认继承Object类. Object类中的方法,适合所有子类. Object中的几个重要方法: 1 ...

  10. Java 中的 static 使用之静态变量

    大家都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立.然而在某些时候,我们更希望该类所有的对象共享同一个成员.此时就是 static 大显身手的时候了!! Java 中 ...