跳转至

2.3: 类方法

类的方法分类

区分术语函数方法:

在全局空间中使用func关键字定义一连串指令集称为函数(functions)

在类中定义一个函数,使得该函数与特定的类相关联,此函数我们称为方法(Methods).

  • 实例方法(Instance Methods)
  • 类方法(Type Methods)
  • 方法中的self属性

实例方法

实例方法是指通过类实例可以调用的方法。

class student {
    var name:String
    var age:Int
    init(name:String, age: Int) {
        self.name = name
        self.age = age
    }

    func printInfo () {
        print("name: \(self.name)")
        print("age: \(self.age)")
    }
}

var stu = student(name: "tom", age: 18)
stu.printInfo()   // 通过实例调用内部方法

类方法

类方法只能通过定义的来直接访问,不能通过类实例来访问。

定义类方法需要使用static关键字。

class student {
    var name:String
    var age:Int
    init(name:String, age: Int) {
        self.name = name
        self.age = age
    }
   // 实例方法
    func printInfo () {
        print("name: \(self.name)")
        print("age: \(self.age)")
    }

   //类方法
   //使用static 关键字
   static func printWelcome() {
       print("Welcome query system");
   }

}
student.printWelcome() //通过类来调用,不能通过实例调用

方法中的self属性

类的方法包含一个隐式的self属性。该属性用于指示目前的类实例。

class point {
    let x: Int
    let y: Int
    init (x: Int, y:Int) {
        self.x = x
        self.y = y
    }
}

var p = point(x:20, y:30)
print("x:\(p.x)")
print("y:\(p.y)")