Properties Flashcards
Que dos tipos de variables hay?
var que es mutable y val inmutable
Diferencia entre getter y setter?(Definicion)
Los getter permiten acceder al valor de una property y leerlos
Los setter permiten modificar el valor de una property
Que son los custom accesores y como estan relacionados con el backing field
Los custom accesores son aquellos en los que añadimos lineas de codigo extra en bloques dentro de los setters y getter. Es necesario usar junto a estos el backing field. Este lo crea kotlin de manera automatica para evitar desbordamiento de pila. El desbordamiento de pila surge debido a que cuando llamamos a set(value) y {property=value} estamos haciendo una llamada redundante y por ello se debe sustituir por {property=field
}.
Ademas los setters deben usar retun field
cuando usamos custom accesores y los setters property = field
open class Coche {
var color = "rojo" get() { println("El coche es $field") return field } set(value) { println("El coche ahora es $value") field = value } } fun main() { val coche = Coche() coche.color coche.color = "azul" }
Que son top level functions o variables?
Son aquellas declaradas dentro de un paquete pero fuera de cualquier clase, objeto o interfaz
A que se llama Compile time constants y de que tipo son?
Son aquellas constantes que se conocen en tiempo de compilacion y debes ser declaradas e inicializadas con el modificador cont val
.
- Solo pueden ser de tipo primitivo.
- No pueden tener custom getter
- Deben perteneces a top level, companion object o object declaration
Cual es el modificador que permite declarar una variable y que esta sea incializada en tiempo de ejecucion? Como podemos chequear si una variable ha sido inicializada?
Modificador lateinit var y podemos comprobar si ha sido inicializada con if(foo::bar.isInitialiazed)