Kotlin - Costruttori

In questo capitolo, impareremo a conoscere i costruttori in Kotlin. Kotlin ha due tipi di costruttore: uno è ilprimary constructor e l'altro è il file secondary constructor. Una classe Kotlin può avere un costruttore principale e uno o più costruttori secondari. Il costruttore Java inizializza le variabili membro, tuttavia, in Kotlin il costruttore principale inizializza la classe, mentre il costruttore secondario aiuta a includere una logica extra durante l'inizializzazione della stessa. Il costruttore principale può essere dichiarato a livello di intestazione di classe come mostrato nell'esempio seguente.

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

Nell'esempio sopra, abbiamo dichiarato il costruttore principale tra parentesi. Tra i due campi, il nome è di sola lettura in quanto viene dichiarato “val”, mentre è possibile modificare l'età del campo. Nel seguente esempio, useremo il costruttore principale.

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

La parte di codice precedente inizializzerà automaticamente le due variabili e fornirà il seguente output nel browser.

First Name = TutorialsPoint.com
Age = 15

Come accennato in precedenza, Kotlin consente di creare uno o più costruttori secondari per la tua classe. Questo costruttore secondario viene creato utilizzando la parola chiave "costruttore". È richiesto ogni volta che si desidera creare più di un costruttore in Kotlin o ogni volta che si desidera includere più logica nel costruttore principale e non è possibile farlo perché il costruttore principale può essere chiamato da qualche altra classe. Dai un'occhiata al seguente esempio, dove abbiamo creato un costruttore secondario e stiamo usando l'esempio sopra per implementarlo.

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 - È possibile creare un numero qualsiasi di costruttori secondari, tuttavia, tutti questi costruttori devono chiamare il costruttore principale direttamente o indirettamente.

La parte di codice precedente produrrà il seguente output nel browser.

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