Curso de Kotlin: Definición de Clases
En esta sección del curso de Kotlin, revisaremos los siguientes puntos:
- Creación de una clase
- Uso de constructores
- Uso de init
- Uso de los métodos get y set
Creación de una clase con Kotlin
Kotlin al igual que Java es un lenguaje orientado a Objetos, más en Kotlin, el declarar una clase, es tan simple como:
1 | class Customer |
Tal como otra clase, en este capítulo del curso de Kotlin, se observa que una clase requiere propiedades, para definir una propiedad en Kotlin, se realiza de la siguiente forma:
1 2 3 4 | class Customer{class Customer{ var id = 0 var name:String = "" } |
Al declarar una propiedad, se utiliza la misma sentencia que al declarar una clase, utilizando la palabra reservada var. En Kotlin, también se pueden tener propiedades inmutables utilizando la palabra reservada val.
1 2 3 4 5 | class Customer{class Customer{ var id = 0 var name:String = "" val yearOfBirth:Int = 2000 } |
Para crear una instancia de la clase en Kotlin, se realiza mediante la siguiente línea de código:
1 2 3 | fun main(args: Array<String>){ val customer = Customer() } |
A diferencia de Java, no requiere la palabra reservada new.
Para acceder a las propiedades se hace en forma directa:
1 2 3 4 5 | fun main(args: Array<String>){ val customer = Customer() customer.id = 10 customer.name = "Juan" } |
Constructores de una clase
Una clase en Kotlin puede ser inicializada de diferentes maneras. Una forma es hacer una paso de los valores de las propiedades:
1 2 3 4 | class Customer(initId : Int, initName: String){ var id: Int = initId var name: String = initName } |
Otra forma de inicializar las variables es asignarle las propiedades en el constructor:
1 | class Customer(var id:Int, var name: String) |
Al agregar la palabra reservada var, se convierte en una propiedad, sin esta palabra deja de ser una propiedad. Se debe considerar que se pueden tener valores por defecto al igual que las funciones default.
Uso del init
Si se requiere realizar algo especial al crear una nueva instancia del objeto, se utiliza el método init:
1 2 3 4 5 | class Customer(va id : Int, var name: String=""){ init{ name = name.toUpperCase() } } |
De esta forma, luego de pasar el valor a las variables, se realiza el método init, con lo cual la variable queda con mayúsculas.
Uso del método get y set
Al programar en Kotlin, también se pueden trabajar con los métodos get y set, y se realiza de la siguiente forma:
1 2 3 4 | class Customer(val id:Int, var name:String , val yearOfBirth: Int){ val age:Int get() = Calendar.getInstance().get(Calendar.YEAR) - yearOfBirth } |
Para utilizar la función set, tenemos:
1 2 3 4 5 6 7 8 9 10 11 12 | class Customer(val id:Int, var name:String , val yearOfBirth: Int){ val age:Int get() = Calendar.getInstance().get(Calendar.YEAR) - yearOfBirth var socialSecurityNumber : String = "" set(value){ if(!value.startsWith("SN") ){ throw IllegalArgumentExcpetion("El numero social debe empezar con SN") } field = value // Field es una palabra reservada en Kotlin y hace referencia a la propiedad } } |
Se recomienda utilizar los métodos get y set cuando se requiera de una lógica particular.
Ir al curso Programación con Kotlin.