Swift學習——類的定義,使用,繼承,構造等(五)
類的使用說明
1 使用class和類名來創建一個類名,例如: class student
2 類中屬性的聲明和常量和變量一樣,唯一的區別就是他們的上下文是類
3 方法和函數聲明也一樣
// 1 ---- 簡單的類介紹
class Student{
//變量學號初始化爲0
var num = 0;
//成員函數
func GetNum()->Int{
return num
}
}
//創建類的實例對象
var student = Student()
//訪問類的成員變量
student.num = 1
//訪問類的成員函數
var Num = student.GetNum()
//打印出類的變量和成員函數
println("student1 num is \(student.num)")
println("student2 num is \(Num)")
// 2 ---- 類中的構造函數和析構函數
/*
構造函數 init
析構函數 deinit
*/
class StudentLow{
var numberlow:Int = 0
var namelow:String
//構造函數,構造器來賦值
init(namelow:String){
/*
self被用來區別實例變量,當你創建實例的時候,像傳入函數參數一樣給類
傳入構造函數的參數。每個屬性都需要賦值-無論是通過聲明(numberlow)
還是通過構造函數(就像namelow)
*/
self.namelow = namelow
}
func simpleDescription()->String{
return "I am is low studnet"
}
}
//注意我的構造函數有參數,這裏我創建實例對象時,要加上參數才正確
var studentlow1 = StudentLow(namelow:"Jhon")
studentlow1.numberlow = 2
println("studentlow1 num is \(studentlow1.numberlow)")
println("studentlow1 name is \(studentlow1.namelow)")
println("studentlow1 information is \(studentlow1.simpleDescription())")
// 3 ---- 繼承類,創建StudentLow的子類StudentHight
/*
繼承說明:
子類的定義方法是在它們的類名後面加上父類的名字,用冒號分割。
創建類的時候並不需要 一個標準的根類,所以你可以忽略父類。
*/
class StudentHight:StudentLow{
var grade:Double
init(grade:Double,name:String){
self.grade = grade
//注意namelow:name參數傳遞
super.init(namelow:name)
numberlow = 3
}
func Grade()->Double{
return grade*0.9
}
//子類如果要重寫父類的方法的話,需要用 override 標記——如果沒有添加 override 就重寫 父類方法的話編譯器會報錯。
//編譯器同樣會檢測 override 標記的方法是否確實在父類中。
override func simpleDescription()->String{
return "I am a hight student"
}
}
//創建實例對象
let studenthight1 = StudentHight(grade:98,name:"lucy")
println("studenthight1 num is \(studenthight1.numberlow)")
println("studenthight1 name is \(studenthight1.namelow)")
//調用函數
println("Greades is \(studenthight1.Grade())")
println("studenthight1 grade is \(studenthight1.grade)")
//調用函數
println("studenthight1 information is \(studenthight1.simpleDescription())");