import UIKit
/**
本节主要内容
1.类的访问权限
*/
//controller里面
let app = App(name: "Clarence")
app.show()
app.switchMode()
app.show()
app.switchMode()
app.show()
//UI.swift
import Foundation
import UIKit
// internal
enum Theme {
case DayMode
case NightMode
}
// public: 模块外可见(Contents.swift可见)
// internal是默认的权限设置, 可以省略
// internal
class UI {
// 声明私有属性(App类不可见)
// fontColor一定有值
private var fontColor: UIColor!
private var backgroundColor: UIColor!
var themeMode: Theme = .DayMode {
didSet {
// 赋值成功, 调用私有方法, 切换主题
self.changeTheme(themeMode: themeMode)
}
}
// 对App可见
init() {
self.themeMode = .DayMode
self.changeTheme(themeMode: self.themeMode)
}
// App类不可见
private func changeTheme(themeMode: Theme) {
switch themeMode {
case .DayMode:
fontColor = UIColor.black
backgroundColor = UIColor.white
case .NightMode:
fontColor = UIColor.white
backgroundColor = UIColor.black
}
}
// public/internal
func show() {
print("The font color is \(fontColor == UIColor.white ? "White" : "Black")")
print("The background color is \(backgroundColor == UIColor.white ? "White" : "Black")")
}
}
//app.swift
import Foundation
// 很多个类型: 类/结构体/枚举
public class App {
// 声明私有属性
private let ui = UI()
public var name: String
// 构造方法
public init(name: String) {
self.name = name
}
// 切换模式方法(Content.swift文件可见)
public func switchMode() {
switch ui.themeMode {
case .DayMode :
ui.themeMode = .NightMode
case .NightMode:
ui.themeMode = .DayMode
}
}
// show方法
public func show() {
print("The app name is \(name)")
ui.show()
}
}
Swift 系统学习 28 类的访问权限
猜你喜欢
转载自blog.csdn.net/clarence20170301/article/details/59108959
今日推荐
周排行