Data Classes Flashcards
Cual es el objetivo principal de las data classes? Caracteristicas principales 3
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
Cuando creamos una data classes se … unas funciones que son: equals(), …, componentN(), … , copy
autogeneran, hashcode(), toString()
Verdadero o falso: Las funciones autogeneradas en las dataclasses no se aplican sobre las properties que no se declaren en el constructor primario
Verdadero
Piensa en un ejemplo de copy con dos alumnos de la misma edad y distinto nombre y altura
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)
Si quisiera sacar el destructuring de esta dataclass: val alumno1 = Alumno(“Fer”, 17, 183)
val (nombre, edad, altura) = alumno1
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 )
imprime Persona(nombre=Fer, altura=184, edad=17)
Comenta la utilidad de Hascode() y equals()
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 ==