Swift语言方法实例方法Swift语言入门很简单大学霸
Swift语言方法实例方法Swift语言入门很简单大学霸
8.3 方法方法其实就是函数,只不过它被定义在了类中。在Swift中,根据被使用的方式不同,方法分为了实例方法和类型方法两种。这两种方法的定义也和Objective-C是不同的。本节依次讲解这两种方法Swift语言方法实例方法Swift语言入门很简单大学霸。
8.3.1 实例方法Swift语言方法实例方法Swift语言入门很简单大学霸
实例方法被定义在类中,但是由类的实例调用。所以,这类方法被称为实例方法。实例方法和函数一样,分为了不带参数和带参数两种。以下依次讲解这两种方法的使用Swift语言方法实例方法Swift语言入门很简单大学霸。
1.不带参数的实例方法
不带参数的实例方法定义和函数的是一样的,其语法形式如下:
func 方法名()->返回值类型{
…
}
但它的调用形式和函数的有所不同,其调用形式如下:
对象名.方法名()
其中,对象名必须代表的是方法所属类的实例。
【示例8-13】以下将使用方法输出字符串”Hello”。代码如下:
import Foundation
class NewClass{
var str=”Hello”
//方法Swift语言方法实例方法Swift语言入门很简单大学霸
func printHello(){
println(str)
}
}
let newClass=NewClass()
newClass.printHello()
运行结果如下所示:
Hello
Program ended with exit code: 0
2.具有参数的实例方法
具有参数的实例方法就是在方法名后面的括号中添加了参数列表。它的定义也和函数一样,定义形式如下:
func 方法名(参数1:数据类型,参数2:数据类型,…)->返回值类型{
…
}
它的调用形式如下Swift语言方法实例方法Swift语言入门很简单大学霸:
对象名.方法名(参数1,参数2,…)
下面依次讲解分别具有一个参数和具有多个参数实例方法的使用方式。
(1)具有一个参数的实例方法
具有一个参数的实例方法是指在参数列表中只有一个参数以及类型。
【示例8-14】下面定义一个类Counter。其中包含了increment()、incrementBy()、reset()方法。代码如下Swift语言方法实例方法Swift语言入门很简单大学霸:
import Foundation
class Counter {
var count = 0
//让count加1
func increment() {
count++
println(count)
}
//让count加一个指定的数值
func incrementBy(amount: Int) {
count += amount
println(count)
}
//将count设置为0
func reset() {
count = 0
println(count)
}
}
let counter = Counter()
//加1
counter.increment()
counter.increment()
counter.increment()
//加指定的值
counter.incrementBy(10)
//设置为0
counter.reset()
其中,increment()方法的功能是自动加1,在每调用一次此方法时,都会在原来值的基础上增加1;incrementBy()方法是将当前的值和指定的数相加。运行结果如下所示:
//Swift语言方法实例方法Swift语言入门很简单大学霸加1的结果
1
2
3
//加10的结果
13
//重新进行设置后的结果
0
Program ended with exit code: 0
(2)具有多个参数的实例方法
当实例方法的参数列表中包含多个参数时,参数和参数之间需要使用“,”逗号分隔。
【示例8-15】以下将实现两个数和的计算。代码如下:
import Foundation
class AddClass {
var count:Int=0
//计算两个数的和
func add(amount1:Int,amount2:Int){
count=amount1+amount2
println(count)
}
}
let counter = AddClass()
counter.add(5,amount2: 10)
其中,方法add()包含两个参数amount1和amount2。调用的时候,分别赋值为5和10。运行结果如下所示Swift语言方法实例方法Swift语言入门很简单大学霸:
15
Program ended with exit code: 0
注意:1.当方法具有两个或者两个以上的参数时,Swift默认仅给方法的第一个参数名称一个局部参数名称;默认同时给第二个和后续的参数名称一个局部参数名称和外部参数名称,其中局部参数名称和外部参数名称的名称都是一样的。如果在调用时,第二个参数以及后续的参数不使用外部参数名,程序就会出现错误。如下,
import Foundation
Swift语言方法实例方法Swift语言入门很简单大学霸
class AddClass {
var count:Int=0
//计算两个数的和
func add(amount1:Int,amount2:Int){
count=amount1+amount2
println(count)
}
}
let counter = AddClass()
counter.add(5,10)
在此代码中,实例方法在调用时第二个参数没有使用外部参数名,导致程序出现如下的错误:
Missing argument label ‘amount2:’ in call
2.如果开发者不想为方法的第二个及后续的参数提供外部名称,可以通过使用“_” 下划线作为该参数的显式外部名称,这样做将覆盖默认行为。
【示例8-16】以下将实现两个数相乘的结果。代码如下:
import Foundation
class MultiplyClass {
var count:Int=0
func multiply(amount1:Int, _ amount2:Int){
count=amount1*amount2
println(count)
}
}
let counter = MultiplyClass()
counter.multiply(5, 10)
在定义时,第二个参数前加上了“_”下划线。所以调用的时候,第二个参数可以省略外部参数名。运行结果如下所示:
50
Program ended with exit code: 0
3.对于实例方法的对象,都必须是通过实例去调用的,它不可以和函数的调用方法一样去调用,如以下的代码,此代码实现的功能是在类中定义一个输出字符串的方法,然后去调用,代码如下:
import Foundation
class NewClass {
func printHello(){
println(“Hello”)
}
}
printHello()
错误信息如下:
Use of unresolved identifier ‘printHello’
Comments are closed.