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 .
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)