類別
類別body
body又稱為主體,包含屬性、方法、建構子、內部類別。
class 類別名 {
// 類別body
}
Student類別。
1
2
3
4
class Student {
// 屬性
var name = "Alice"
}
建立物件
建立物件,並把物件指派給變數。
var 變數 = 類別名()
val 變數 = 類別名()
建立物件,並把物件指派給student變數。
1
2
3
4
5
6
7
class Student {
var name = "Alice"
}
fun main() {
// 建立物件
var student = Student()
}
val物件變數
此處的val並不是不能修改物件的屬性,而是不能再把val物件變數指向其它物件。
1
2
3
4
5
6
7
8
9
class Student {
var name = "Alice"
}
fun main() {
// val物件變數
val student2 = Student()
// 以下會出錯 因為Val cannot be reassigned
student2 = Student()
}
val物件變數,可以修改物件的屬性,以下程式碼把name指派新的值。
1
2
3
4
5
6
7
8
class Student {
var name = "Alice"
}
fun main() {
val student2 = Student()
student2.name = "Doris"
println(student2.name)
}
Doris
方法
方法為類別的行為、動作。
在類別中,宣告一個方法用fun開頭。
1
2
3
4
5
6
7
8
class Student {
fun goToSchool() {
}
fun takeClass() {
}
}
方法互相呼叫。
1
2
3
4
5
6
7
8
class Student {
fun goToSchool() {
takeClass()
}
fun takeClass() {
}
}
物件呼叫方法。
1
2
val student = Student()
student.takeClass()