Data Classes Flashcards

1
Q

Cual es el objetivo principal de las data classes? Caracteristicas principales 3

A

Almacenar data de manera ordenada.

  • Constructor primario debe tener como minimo un parametro
  • Todos los parametros deben ir marcados por val o var
  • Las data classes no pueden ser abstractas
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Cuando creamos una data classes se … unas funciones que son: equals(), …, componentN(), … , copy

A

autogeneran, hashcode(), toString()

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

Verdadero o falso: Las funciones autogeneradas en las dataclasses no se aplican sobre las properties que no se declaren en el constructor primario

A

Verdadero

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

Piensa en un ejemplo de copy con dos alumnos de la misma edad y distinto nombre y altura

A

class Alumno(val nombre:String, val edad: Int, val altura: Int)

val alumno1 = Alumno(“Fer”, 17, 183)
val alumno2 = alumno1.copy(nombre = “Juan”, altura = 175)

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

Si quisiera sacar el destructuring de esta dataclass: val alumno1 = Alumno(“Fer”, 17, 183)

A

val (nombre, edad, altura) = alumno1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q
Que imprime este codigo?
fun main() {
val Fer = Persona("Fer", 184, 17)
println(Fer.toString())   }
data class Persona(
        val nombre : String,
        val altura : Int,
        val edad : Int
)
A

imprime Persona(nombre=Fer, altura=184, edad=17)

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

Comenta la utilidad de Hascode() y equals()

A

hashcode() imprime un codigo entero, denominado hash, que sirve para identificar los objetos, es decir son unicos. Por otro lado, equals(),devuelve un boolean, se utiliza para comparar si dos objetos son iguales, es decir si tienen el mismo hash code. Si creamos dos variables pertenecientes a una data class con los mismos datos ambos apuntaran al mismo objeto y tendran mismo hasch code. Ademas el metodo equals tb se puede escribir con ==

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