swift类的属性setter/getter,普通方法,类方法/变量,访问权限等。

1.setter/getter方法

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
 
 var 变量名:变量类型{
     get{
        return self.变量名;
     }
        
     set{
        self.变量名 = newValue;
     }
}

2.类方法和变量使用class修饰的方法或变量

类变量

1
2
3
4
5
6

class var 变量名: 类型 {
  get{
     return  类名.变量名;
  }
}

类方法

1
2
3
class func 方法名->参数{
  return 类名.类变量;
}

3.常方法。使用final修饰的方法 final func 方法名

4.访问权限

  • 类/方法/变量可以由关键字public/internal/private.
  • 系统默认为internal,private可用于隐藏一些实现细节。

public 公有

标记为public的代码块一般用来建立API,这是最开放的权限,使得任何人只要导入这个模块,都可以访问使用。

internal 内部

标记为internal的代码块,在整个应用(App bundle)或者框架(framework)的范围内都是可以访问的。

private 私有

在哪里写的,就在哪里用。无论是类、变量、常量还是函数,一旦被标记为私有的,就只能在定义他们的源文件里使用,不能为别的文件所用。

5.willSet/didSet这两个属性用来监视属性的除初始化之外的属性值变化情况

示例代码如下。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69

class QPerson{

    ///类的全局变量
    class var sharedPersonNumber: UInt {
        // 这里返回一个 UInt 值
        get{
            return  QPerson.sharedPersonNumber;
        }
        
        set{
            QPerson.sharedPersonNumber = newValue;
        }
    }
    
    /**
    类方法
    :returns: 返回人员类的人数
    */
    final class func countPerson()->UInt{
        return QPerson.sharedPersonNumber;
    }
    
    /// 普通成员变量
    var _address:String;
    var _phoneNumber:String;
    
    /// setter/getter
    var name:String{
        get{
            return self.name;
        }
        
        set{
            self.name = newValue;
        }
    }

    
    /// setter/getter
    private var _number:String{
        get{
            return self._number;
        }
        
        set(number){
            self._number = number;
        }
    }
    
    var age: Int {
        willSet(age) {
            NSLog("old age = \(self.age),new age = \(age)")
        }
        didSet(age) {
            NSLog("new age = \(self.age)")
        }
    }

    init(name:String, number:String, address:NSString, phoneNumber:NSString){
        self.age = 0;
        self._address = address;
        self._phoneNumber = phoneNumber;
    }
    
    deinit{
        
    }
}