Kotlin - Người xây dựng

Trong chương này, chúng ta sẽ tìm hiểu về các hàm tạo trong Kotlin. Kotlin có hai loại phương thức khởi tạo - một làprimary constructor và cái kia là secondary constructor. Một lớp Kotlin có thể có một hàm tạo chính và một hoặc nhiều hàm tạo phụ. Hàm tạo Java khởi tạo các biến thành viên, tuy nhiên, trong Kotlin, hàm tạo chính khởi tạo lớp, trong khi hàm tạo thứ cấp giúp bao gồm một số logic bổ sung trong khi khởi tạo giống nhau. Hàm tạo chính có thể được khai báo ở mức tiêu đề lớp như trong ví dụ sau.

class Person(val firstName: String, var age: Int) {
   // class body
}

Trong ví dụ trên, chúng ta đã khai báo hàm tạo chính bên trong dấu ngoặc. Trong số hai trường, tên ở chế độ chỉ đọc vì nó được khai báo là “val”, trong khi tuổi trường có thể được chỉnh sửa. Trong ví dụ sau, chúng ta sẽ sử dụng hàm tạo chính.

fun main(args: Array<String>) {
   val person1 = Person("TutorialsPoint.com", 15)
   println("First Name = ${person1.firstName}")
   println("Age = ${person1.age}")
}
class Person(val firstName: String, var age: Int) {
}

Đoạn mã trên sẽ tự động khởi tạo hai biến và cung cấp kết quả sau trong trình duyệt.

First Name = TutorialsPoint.com
Age = 15

Như đã đề cập trước đó, Kotlin cho phép tạo một hoặc nhiều hàm tạo phụ cho lớp của bạn. Hàm tạo phụ này được tạo bằng cách sử dụng từ khóa "hàm tạo". Nó được yêu cầu bất cứ khi nào bạn muốn tạo nhiều hơn một hàm tạo trong Kotlin hoặc bất cứ khi nào bạn muốn bao gồm nhiều logic hơn trong hàm tạo chính và bạn không thể làm điều đó vì hàm tạo chính có thể được gọi bởi một số lớp khác. Hãy xem ví dụ sau, nơi chúng ta đã tạo một hàm tạo thứ cấp và đang sử dụng ví dụ trên để triển khai tương tự.

fun main(args: Array<String>) {
   val HUman = HUman("TutorialsPoint.com", 25)
   print("${HUman.message}"+"${HUman.firstName}"+
      "Welcome to the example of Secondary  constructor, Your Age is-${HUman.age}")
}
class HUman(val firstName: String, var age: Int) {
   val message:String  = "Hey!!!"
	constructor(name : String , age :Int ,message :String):this(name,age) {
   }
}

Note - Có thể tạo bất kỳ số lượng hàm tạo thứ cấp nào, tuy nhiên, tất cả các hàm tạo đó phải gọi hàm tạo chính một cách trực tiếp hoặc gián tiếp.

Đoạn mã trên sẽ mang lại kết quả sau trong trình duyệt.

Hey!!! TutorialsPoint.comWelcome to the example of Secondary  constructor, Your Age is- 25