俄罗斯贵宾会-俄罗斯贵宾会官网
做最好的网站

类方法

        print("name = (name) age = (age)")

    {

 

 类方法中不存在self

}

    }

// 实例方法和函数的区别在于, 实例方法会自动将除第一个参数以外的其他参数既当做为外部参数又当做内部参数, 而函数需要我们自己指定才会有外部参数, 默认没有

        case .ON:

//        _name = name

 

    }

        self.name = name

 方法分为类方法和实例方法, 对应OC中的+ - 方法

p3.show()

    

    }

struct Person4 {

    

var p4 = Person4()

    mutating func next()

 mutating方法

    print("on")

 值类型(结构体和枚举)默认方法是不可以修改属性的, 如果需要修改属性, 需要在方法前加上mutating关键字, 让该方法变为一个改变方法

 和类属性一样通过类名来调用, 类方法通过static关键字(结构体/枚举), class(类)

 隶属于每一个类或结构体的函数称之为方法:

    static var card: String = "1234567"

struct Person3 {

    var age: Int = 24

    //如果不希望某个参数作为外部参数使用, 可以在参数前面加上 _ , 忽略外部参数

    var _name: String = "HaRi"

    func show()

 */

// 由于第一个参数可以通过方法名称指定, 所以默认第一个参数不作为外部参数

}

        print("name = (_name) age = (_age)")

class Person2 {

    func show()

{

    var name: String = "hjq"

    func setName(name: String, age: Int)

    func show()

        }

//func setName(name:String,myAge age:Int){

    {

enum LightSwitch {

    static func staticShow()

p3.setName(name: "han", age: 100)

p.setName(name: "hjq", 88)  //正确姿势

    {

        _name = name

        print("name = (name) age = (age)")

    {

    //当参数名称和属性名称一模一样时, 无法区分哪个是参数哪个是属性, 这个时候可以通过self明确的来区分参数和属性

setName(name: "han", age: 30)

}

    //注意: 类不需要, 因为类的实例方法默认就可以修改

}

ls.next()

    {

if ls == LightSwitch.ON

 

}

/*

        self.age = age

func setName(name: String, age: Int) {

 */

p4.show()

  

        switch self {

/*

    var name: String = "HanJunqiang"

var ls:LightSwitch = .OFF

    }

 实例方法:实例方法一定是通过对象来调用的, 实例方法隶属于某一个类

 

            self = .ON

//func setName(name:String, age:Int){

if ls == LightSwitch.OFF

        _age = age

 

        //类方法中没有self

        print("name = (name) card = (Person4.card)")

 */

    }

//p.setName(name:"xiaoHan", age:100)    Error!

 

 

 

}

/*

    var age: Int = 25

    var name: String = "hjq"

//        _age = age

var p = Person()

        //静态方法对应OC中的+号方法, 和OC一样在类方法中不能访问非静态属性

/*

p.show()

p.show()

    mutating func setName(name: String, age: Int)

    }

    var _age: Int = 26

Person4.staticShow()

    {

class Person  {

 

    func show()

        self.name = name

        self.age = age

    print("off")

        print("card = (Person4.card)")

}

 

var p3 = Person3()

    {

}

{

 self关键字, Swift中的self和OC中的self基本一样; self指当前对象, self在对象方法中代表当前对象, 但是在类方法中没有self

    //值类型(结构体和枚举)默认方法是不可以修改属性的, 如果需要修改属性, 需要在方法前加上mutating关键字, 让该方法变为一个改变方法

 */

    case OFF, ON

 类方法:

    //实例方法一定是通过对象来调用的, 实例方法隶属于某一个类

        //默认情况下, _name和_age前面默认有一个self关键字, 因为所有变量都需要先定义再使用, 而setName方法中并没有定义过_name和_age, 而是在属性中定义的, 所以setName中访问的其实是属性, 编译器默认帮我们在前面加了一个self

 

    {

    }

    {

    func setName(name: String, _ age: Int)

    }

    }

        case .OFF:

            self = .OFF

本文由俄罗斯贵宾会发布于编程,转载请注明出处:类方法

您可能还会对下面的文章感兴趣: