Kotlin - İnşaatçılar

Bu bölümde, Kotlin'deki inşaatçılar hakkında bilgi edineceğiz. Kotlin'in iki tür kurucusu vardır - biriprimary constructor ve diğeri secondary constructor. Bir Kotlin sınıfı, bir birincil oluşturucuya ve bir veya daha fazla ikincil oluşturucuya sahip olabilir. Java yapıcısı üye değişkenleri başlatır, ancak, Kotlin'de birincil kurucu sınıfı başlatırken, ikincil kurucu aynı şeyi başlatırken bazı ekstra mantık eklemeye yardımcı olur. Birincil yapıcı, aşağıdaki örnekte gösterildiği gibi sınıf başlığı düzeyinde bildirilebilir.

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

Yukarıdaki örnekte, birincil kurucuyu parantez içinde ilan ettik. İki alan arasında, alan yaşı düzenlenebilirken, "val" olarak bildirildiği için ad salt okunurdur. Aşağıdaki örnekte birincil kurucuyu kullanacağız.

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) {
}

Yukarıdaki kod parçası, iki değişkeni otomatik olarak başlatacak ve tarayıcıda aşağıdaki çıktıyı sağlayacaktır.

First Name = TutorialsPoint.com
Age = 15

Daha önce belirtildiği gibi Kotlin, sınıfınız için bir veya daha fazla ikincil kurucu oluşturmanıza izin verir. Bu ikincil kurucu, "yapıcı" anahtar sözcüğü kullanılarak oluşturulur. Kotlin'de birden fazla kurucu oluşturmak istediğinizde veya birincil kurucuya daha fazla mantık eklemek istediğinizde gereklidir ve bunu yapamazsınız çünkü birincil kurucu başka bir sınıf tarafından çağrılabilir. İkincil bir kurucu oluşturduğumuz ve aynısını uygulamak için yukarıdaki örneği kullandığımız aşağıdaki örneğe bir göz atın.

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 - Herhangi bir sayıda ikincil oluşturucu oluşturulabilir, ancak bu kurucuların tümü birincil kurucuyu doğrudan veya dolaylı olarak çağırmalıdır.

Yukarıdaki kod parçası tarayıcıda aşağıdaki çıktıyı verecektir.

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