iOS开发Swift篇—(十)方法

一、简单说明

跟其他面向对象语言一样,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 + num2
4  }
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 + num2
4  }
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 + num2
4  }
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 + num2
4  }
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

时间: 2024-11-10 13:59:22

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

iOS开发Swift篇(01) 变量&常量&元组

说明: 1)终于要写一写swift了.其实早在14年就已经写了swift的部分博客,无奈时过境迁,此时早已不同往昔了.另外,对于14年部分iOS开发Swift篇专题的博文也不再做任何的校正和更新,特此说明. 2)该博文对应代码可以在https://github.com/HanGangAndHanMeimei/Code获得. 一.变量和常量 01 变量和常量的定义 在swift中变量使用var来修饰,常量使用let来修饰,变量可以修改而常量不能被修改. 变量:var 常量:let 格式:修饰符(v

iOS开发Swift篇—简单介绍

一.简介 Swift是苹果于2014年WWDC(苹果开发者大会)发布的全新编程语言 Swift在天朝译为"雨燕",是它的LOGO 是一只燕子,跟Objective-C一样,可以用于开发iOS.Mac应用程序 苹果从2010年7月开始设计Swift语言,耗时4年打造 Swift的语法特点 从它的语法中能看到Objective-C.JavaScript.Python等语言的影子 语法简单.代码简洁.使用方便 可与Objective-C混合使用(相互调用) 为什么要设计Swift语言? 让应

iOS开发Swift篇—(二)变量和常量

一.语言的性能 (1)根据WWDC的展示 在进行复杂对象排序时Objective-C的性能是Python的2.8倍,Swift的性能是Python的3.9倍 在实现 RC4加密算法时Objective-C的的性能是Python的127倍,Swift的性能是Python的220倍 有持怀疑态度的国外程序员,也对Objective-C和Swift的性能进行了测试 http://www.splasmata.com/?p=2798 (2)说明 目前的性能不是开发者最需要担心的问题 苹果已经全盘掌握了这个

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

一 说明 1)关于多线程部分的理论知识和OC实现,在之前的博文中已经写明,所以这里不再说明. 2)该文仅仅简单讲解NSThread在swift语境中的一些使用和注意点,别他. 3)本文涉及代码可以从https://github.com/HanGangAndHanMeimei/Code地址获得. 二 NSThread的基本使用和创建 1)基本用法(主线程|当前线程) 1 //1.获得执行该方法的当前线程 2 let currentThread = NSThread.currentThread()

iOS开发Swift篇—(九)属性

一.类的定义 Swift与Objective-C定义类的区别 Objective-C:一般需要2个文件,1个.h声明文件和1个.m实现文件 Swift:只需要1个.swift文件 Swift中类的定义格式 1 class 类名 { 2 // ... 属性和方法 3 } 二.属性 1.什么是属性 Swift中的属性(Properties),就类似于其他面向对象语言中的成员变量 2.属性的分类 按照官方文档的说明,属性可以分为以下几种 (1)存储属性(Stored Properties) (2)计算

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

一.函数类型 函数类型也是数据类型的一种,它由形参类型和返回值类型组成,格式是 (形参类型列表) -> 返回值类型 1 func sum(num1: Int, num2: Int) -> Int { 2 return num1 + num2 3 } sum函数的函数类型是(Int, Int) -> Int 1 func printLine() 2 { 3 println("-----------") 4 } printLine函数的函数类型有4种表示方法 (1)Voi

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

一.运算符 1.Swift所支持的部分运算符有以下一些 赋值运算符:= 复合赋值运算符:+=.-= 算术运算符:+.-.*./ 求余运算符:% 自增.自减运算符:++.-- 比较运算符:==.!=.>.<.>=.<= 逻辑运算符:&&.||.! 三目运算符:? : 范围运算符:..< .... 溢出运算符:&+.&-.&*.&/.&% 2.赋值运算符 (1)1对1赋值 var a = 5 let b = 20 (2)N对

iOS开发Swift篇—(七)函数(1)

一.函数的定义 (1)函数的定义格式 1 func 函数名(形参列表) -> 返回值类型 { 2 // 函数体... 3 4 } (2)形参列表的格式 形参名1: 形参类型1, 形参名2: 形参类型2, - (3)举例:计算2个整数的和 1 func sum(num1: Int, num2: Int) -> Int { 2 return num1 + num2 3 } (4)没有返回值的函数 如果函数没有返回值,有3种写法 1 func 函数名(形参列表) -> Void { 2 //

iOS开发Swift篇—(三)字符串和数据类型

一.字符串 字符串是String类型的数据,用双引号""包住文字内容 let website = "http://www.wendingding.com" 1.字符串的常见操作 (1)用加号 + 做字符串拼接 let scheme = "http://" let path = "www.wendingding.com" let website = scheme + path // website的内容是"http:/