初識 Kotlin (六) ---- Kotlin 中的主構造方法和從構造方法

Kotlin的構造函數分爲主構造器(primary constructor)和次級構造器(secondary constructor)。下面我們來看看他們的寫法

1. Primary Constructor

1.1 寫法規則

class 類名 constructor(形參1, 形參2, 形參3){}
class Person constructor(username: String, age: Int){
	private val username: String
	private var age: Int

	init{
		this.username = username
		this.age = age
	}
}
  • 關鍵字 constructor:在Java中,構造方法名須和類名相同;而在 Kotlin 中,是通過 constructor關鍵字來標明的,且對於 Primary Constructor 而言,它的位置是在類的首部(class header)而不是在類體中(class body)

  • 關鍵字initinit{} 它被稱作是初始化代碼塊(Initializer Block),它的作用是爲了 Primary Constructor服務的,由於 Primary Constructor 是放置在類的首部,是不能包含任何初始化執行語句的,這是語法規定的,那麼這個時候就有了 init的用武之地,我們可以把初始化執行語句放置在此處,爲屬性進行賦值

1.2 可以簡化代碼的情形

constructor 關鍵字沒有註解和可見性修飾符作用於它時,constructor 關鍵字可以省略(當然,如果有這些修飾時,是不能夠省略的,並且 constructor 關鍵字位於修飾符後面)。那麼上面的代碼就變成:

class Person (username: String, age: Int){
    private val username: String
    private var age: Int

    init{
	this.username = username
	this.age = age
    }
}

初始化執行語句不是必須放置在 init 塊中,我們可以在定義屬性時直接將主構造器中的形參賦值給它:

class Person(username: String, age: Int){
    private val username: String = username
    private var age: Int = age
}

如果類不包含其他操作函數,那麼連花括號也可以省略

class Person(private val username: String, private var age: Int)

參考鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章