Estructuras — RexDac Academy

RexDac AcademyNotas técnicas · Ayuda tener algunos conocimientos previos
0%Notas publicadas leídas · en este dispositivo

Nivel 4 — Clases

Estructuras

Notas originales de SunDiaL · Ver fuente en inglés

Una estructura es idéntica a una clase, salvo que es un tipo de valor. El 95 % de las veces utilizarás una clase, así que aquí se muestra únicamente cómo definir una estructura y una tabla con sus diferencias.

Definir una estructura

struct ThisIsMyStructNameForRealz
{

}

Diferencias entre clase y estructura

Característica Estructuras Clases
Tipo Tipos de valor, almacenados en la pila Tipos de referencia, almacenados en el montículo con una referencia en la pila
Asignación de memoria Reserva y liberación más rápidas para estructuras de datos pequeñas Tienen un coste adicional, pero ofrecen más flexibilidad para objetos complejos
Herencia No pueden heredar de otras estructuras ni clases; solo pueden implementar interfaces Admiten herencia, lo que permite jerarquías de clases
Comportamiento en la asignación Crean una copia de todos los datos al asignarse a una nueva variable Solo copian la referencia; ambas variables apuntan al mismo objeto
Constructores predeterminados Tienen constructores implícitos sin parámetros que inicializan los campos con sus valores predeterminados Requieren constructores explícitos sin parámetros si se necesitan
Cuándo conviene utilizarlas Para crear estructuras de datos pequeñas y sencillasEl objeto tiene una vida cortaEl objeto no se modificará tras su creaciónSe desea semántica de valor: copia al asignarLa eficiencia de memoria es crítica Para crear objetos complejos con comportamientosSe necesita herenciaEl objeto necesita semántica de referenciaEl objeto se modificará tras su creaciónEl objeto podría ser null
Ejemplos Coordenadas de puntos, fechas, colores, pequeños objetos matemáticos Entidades de negocio, servicios, controladores, componentes de interfaz de usuario