Properties Flashcards

1
Q

Que dos tipos de variables hay?

A

var que es mutable y val inmutable

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Diferencia entre getter y setter?(Definicion)

A

Los getter permiten acceder al valor de una property y leerlos

Los setter permiten modificar el valor de una property

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Que son los custom accesores y como estan relacionados con el backing field

A

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"
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Que son top level functions o variables?

A

Son aquellas declaradas dentro de un paquete pero fuera de cualquier clase, objeto o interfaz

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

A que se llama Compile time constants y de que tipo son?

A

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

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?

A

Modificador lateinit var y podemos comprobar si ha sido inicializada con if(foo::bar.isInitialiazed)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly