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. java 读取excel poi 和cell 方法

    http://poi.apache.org/spreadsheet/quick-guide.html http://www.aspose.com/docs/display/cellsjava/Eval ...

  2. HTML5 Web Storage

    Web Storage是HTML5 API提供一个新的重要的特性: 最新的Web Storage草案中提到,在web客户端可用html5 API,以Key-Value形式来进行数据持久存储: 目前主要 ...

  3. 服务器保持与Mysql的连接

    服务器程序经常要访问数据库,并且服务器程序是长时间保持运行的,mysql有一个特点,当连接上数据库后不做任何操作,默认8小时候会自动关闭休 眠的连接!一般情况下很难预料什么时候程序会执行数据库操作,如 ...

  4. Objective-C语言Foundation框架

    Mac OS X开发会使用Cocoa框架,它是一种支持应用程序提供丰富用户体验的框架,它实际上由:Foundation和Application Kit(AppKit)框架组成.iOS开发,会使用Coc ...

  5. 三个 DAL 相关的Java代码小工具

    最近在做 DAL (Data Access Layer 数据访问层) 的服务化,发现有不少地方是人工编写比较繁琐的,因此写了几个小工具来完成. 1.  从 DAO 类自动生成 CoreService ...

  6. android音乐播放器(Service+ContentProvider+Broadcast+Activity四大组件完成)

    1.获取音乐 1-1:获取手机中的音乐(用ContentProvider内容提供者来完成): package com.firefly.util; import java.util.ArrayList; ...

  7. 如何从github上面拷贝源码

    有好奇心的朋友们一定都想看一看很多开源项目的源码,那么github就不用说啦,太多的开源项目都把源码放到上面. 博主最近为了学习angularjs也不得不去github上面弄源码,下面将会介绍如何做: ...

  8. 仿souhu页面设计

    仿搜狐页面设计 Html页面设计代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> ...

  9. Android 获取全部应用

      package com.lvshandian.menshen.download;import android.content.Context;import android.content.Inte ...

  10. Bootstrap_分页

    一.带页码的分页导航 <ul class="pagination"> <li><a href="#">«</a> ...