作者:Loving_iOS
轉載請標明出處:http://blog.csdn.net/loving_ios/article/details/49406865本次開發環境爲Xcode7.0.1 創建playground文件 進行的代碼編寫。
//**********************枚舉**************************
//enum 枚舉名:類型 {
//
// case 分支1 = 賦值1
// case 分支2 = 賦值2
//
//}
enum PersonIndetity:String {
case Teacher = "Teacher_id"
case Student = "Student_id"
}
// 類
class Person {
var indeitity:PersonIndetity
var name:String
var age:String
// 類的構造器
init(name:String, age:String, idd:PersonIndetity) {
self.indeitity = idd
self.name = name
self.age = age
}
func hello() {
print("hello")
}
// 類方法
class func hello2() {
}
}
// 枚舉 枚舉名.類型 其中枚舉名可以省略
var person = Person(name: "Tom", age: "30", idd: PersonIndetity.Student)
// 枚舉值得獲取
// 獲取當前分支
person.indeitity.hashValue
// 獲得分區的值
person.indeitity.rawValue
// 繼承 類名:父類名
class Student:Person {
// 子類的屬性
var classNumber:Int = 23
init(name: String, age: String, idd: PersonIndetity, classNumber:Int) {
// 如果屬性僅指定類型 需要在super.init之前進行賦值操作
super.init(name: name, age: age, idd: idd)
self.classNumber = classNumber
}
// 重寫父類方法 需要使用override關鍵字
override func hello() {
}
override class func hello2() {
}
}
// 協議
protocol OneProtocol {
func typeFunc()
static func typeFunc2()
mutating func typeFunc3()
}
// 類和結構體實現協議方法的時候 需要根據本身的語法規則做出調整
class newStudent:OneProtocol {
func typeFunc() {
}
class func typeFunc2() {
}
func typeFunc3() {
}
}
struct VideoNew:OneProtocol {
func typeFunc() {
}
static func typeFunc2() {
}
mutating func typeFunc3() {
}
}
// 類同時繼承父類和協議的時候 父類必須寫在前面
//class StudentNew:Person, OneProtocol {
//
//}
@objc protocol SecondProtocol {
optional func hello()
}
// 注意:當協議中方法使用optional 聲明可選方法時 協議必須聲明成@objc 此時的協議爲類協議 不能被結構體繼承
// 擴展
var value:String = ""
extension Person {
func helloworld() {
}
// 如果想擴展屬性 只能是計算屬性
var stu:String {
get{
return value
}
set {
value = newValue
}
}
// 擴展構造器需要使用convenience
convenience init(name:String, age:String, idd:PersonIndetity, stu:String) {
self.init(name:name, age:age, idd:idd)
self.stu = stu
}
}
var person_one = Person(name: "Tom", age: "20", idd: PersonIndetity.Student, stu: "帥哥")
person_one.stu
person_one.stu = "靚妹"
person_one.stu