Utilizzare i costruttori in Kotlin
Come anche in altri linguaggi, anche Kotlin permette di creare e usare più costruttori.
Questo un esempio di costruttore primario:
class Person constructor(var name: String, var email: String?)
Se non ci sono altri metodi / costruttori, è anche possibile omettere le parentesi graffe.
Diversamente da Java, il costruttore usa una parola apposita (constructor), e non si chiama come la classe a cui appartiene.
Quind, se volessimo usarne un altro:
class Person constructor(var name: String, var email: String?) {
var age: Int = 0;
constructor(name: String, email: String, age: Int) : this(name, email) {
this.age = age
}
fun maggiorenne(): Boolean {
return age >= 18
}
}
Come vedete, c'è differenza tra il parametro email del costruttore primario e secondario.
Il primario accetta valori null, il secondo no.
Che è un pò come dire "se impostate l'età, dovete mettere anche l'email in modo obbligatorio"; ovviamente è un esempio banale.
Adesso, nel nostro main, potremmo avere una cosa del genere:
fun main(args: Array) {
var p1 = Person("matteo", null)
println(p1.name)
if (p1.maggiorenne()) {
println(p1.age)
}
println("-------------------")
var p2 = Person("marco", "mr@email.com", 23)
println(p2.name)
if (p2.maggiorenne()) {
println(p2.age)
}
}
Fate qualche prova!
Enjoy!
kotlin constructor
Commentami!