1、Swift 中访问控制的关键字
public (公共) / internal / private(私有)
2、各个控制关键字的意义
1、public 的意义
公共类、方法和属性可供App 中的任意部分访问
2、internal 的意义
内部数据只能在定义这些数据的模块内部访问。模块是一个应用程序、库或框架。internal是默认的访问控制级别,即如果不指定访问控制级别,那就认为是internal
3、private 的意义
私有数据只能供声明它的文件访问
4、注意
注意:被定义为private的类是一个例外,如果没有为一个成员声明访问控制级别,它会被定为 private ,而不是 internal
3、访问控制关键字的举例
1、简单例子
class Car {
public var priceValue:Int?
internal var weight:Int?
private var height:Int?
}
2、private 定义属性为只读属性
class Car {
public var priceValue:Int?
internal var weight:Int?
private var height:Int?
/**
我们可以将一个属性的setter 声明为私有的,从而使这个属性是只读的。
*/
private(set) var price:Int = 1000
}
3、举例使用
/* 创建一个Car对象*/
let MyCar = Car()
MyCar.priceValue = 12000
MyCar.weight = 1200
let value = MyCar.price
print(value)
/* Car 的height 的对象无法被调用 */
4、泛型
1、什么是泛型
泛型是程序设计语言的一种特性。允许程序员在强类型程序设计语言中编写代码时定义一些可变部分,那些部分在使用前必须作出指明。
2、泛型的定义?
1.在程序编码中一些包含类型参数的类型,也就是说泛型的参数只可以代表类,不能代表个别对象。(这是当今较常见的定义)
2.在程序编码中一些包含参数的类。其参数可以代表类或对象等等。(人们大多把这称作模板)不论使用哪个定义,泛型的参数在真正使用泛型时都必须作出指明。
3、泛型的举例
/* 泛型的举例*/
class NetWork <T> {
/*定义一个泛型的变量*/
var Kvalue :T?
/* 便捷初始化*/
convenience init(value:T){
self.init()
self.Kvalue = value
}
/* 添加一个数*/
func addNumber(value:T) -> NetWork<T> {
let NewNetWork = NetWork<T>(value:value)
return NewNetWork
}
}
5、泛型的使用
/* 整数型*/
let interTree = NetWork<Int>(value:100)
let interTree1 = interTree.addNumber(value: 200)
print(interTree1.Kvalue!)
/* 字符串 */
let stringTree = NetWork<String>(value:"xiao")
let stringTree1 = stringTree.addNumber(value: "NetWork小贱")
print(stringTree1.Kvalue!)