vault backup: 2022-09-30 11:54:08

Affected files:
03. Programming/Kotlin/class.md
This commit is contained in:
2022-09-30 11:54:08 +08:00
parent 944e0bb17e
commit 1bdc3bcd8c

View File

@@ -1,21 +1,22 @@
Kotlin中的class由class關鍵字開始一個簡單class如下: ## 最簡單 class 定義
Kotlin 中的 class 由 `class` 關鍵字開始一個簡單的class如下
```kotlin ```kotlin
class VerySimple { class VerySimple {
} }
``` ```
如果需要constructor的話則在class名稱之後加入所需的參數如下 如果需要 constructor 的話,則在 class 名稱之後加入所需的參數,如下:
```kotlin ```kotlin
class VerySimple(val para1: Int, val para2: String ) { class VerySimple(val para1: Int, val para2: String ) {
} }
``` ```
加在constructor中的參數會自動變成class的「成員變數」如果在參數前面加上private則會成「私有成員變數」也就是無法被外部所存取。 加在 constructor 中的參數會自動變成 class 的「成員變數」,如果在參數前面加上 `private`,則會成「私有成員變數」,也就是無法被外部所存取。
## 多個 constructor ## 多個 constructor
前面所的constructor是建立classkotlin也允許建立其他constructor但是這些「次要constructor」都必須呼叫「主要constructor」來進行初始化如下 前面所的 constructor 是建立class 的「主要constructor」kotlin 也允許建立其他 constructor但是這些「次要constructor」都必須呼叫「主要constructor」來進行初始化如下
```kotlin ```kotlin
class VerySimple(val para1: Int, val para2: String ) { class VerySimple(val para1: Int, val para2: String ) {
constructor(val para1: Int): this(para1, para2="someText") // 第一個「次要constructor」 constructor(val para1: Int): this(para1, para2="someText") // 第一個「次要constructor」
@@ -58,4 +59,4 @@ class VerySimple(val para1: Int, val para2: String ) {
} }
``` ```
`init`區塊會在初始化之 `init`區塊會在初始化之前進行檢查,如果不符合條件,則會丟出`IllegalArgumentException`異常。