Tecnología

Inicio

Las diferencias entre las estructuras y las clases

Las diferencias entre las estructuras y las clases


La mayoría de los programadores saben que un programa de ordenador contiene nada más que los datos e instrucciones para la manipulación de datos. Su objetivo, como un programador, es para representar los datos en la estructura más eficiente y ligero posible. Los dos "clases" y "estructuras" le permiten representar diferentes tipos de datos. Muchos lenguajes cuentan con dos clases y estructuras, incluyendo C ++, C #, Java y Visual Basic. (Algunos idiomas se refieren a una estructura como una "estructura"). Puede crear instancias de ambas clases y estructuras en la forma convencional y acceder a los miembros de ambos usando la notación punto-punto, pero las diferencias entre los dos tipos de datos son mayores que estas pocas similitudes.

Propósito

Las clases son la base de la mayoría de los lenguajes orientados a objetos modernos y permiten la manipulación sin fin. Cuando se utiliza una clase para representar sus datos, usted tiene todo el poder de un lenguaje de programación orientado a objetos a su disposición. Hacer una clase de su tipo de datos predeterminado y utilizarla cuando no está seguro de qué tipo de valor que mejor funciona. Utilice una estructura, por el contrario, sólo cuando sea necesario para manipular un número determinado de valores de tipo no son de referencia como una unidad. Los programadores suelen utilizar estructuras para representar objetos geométricos, puntuaciones de juegos y otros datos relativamente simple.

Tipo subyacente

Una estructura es un tipo de valor, mientras que una clase es un tipo de referencia. Los tipos de valor representan números y texto, y sólo existen en la pila. Esto significa que cuando se copia una estructura, se crea un elemento completamente nuevo en la memoria. Las modificaciones en el nuevo objeto no afectan al objeto original. Tipos de referencia, por el contrario, existen tanto en la pila y el montón. Cuando se copia una clase, que realmente sólo está copiando la dirección de referencia a una posición de memoria en el montón. Así que cuando se modifica una copia de un objeto, también modifica todas las copias en la memoria.

Los destructores

Dependiendo del idioma que está utilizando, a menudo se puede utilizar con los destructores de objetos de clase. En C ++, así como en la programación ADO.Net, destructores permiten asegurar que el procesador destruye objetos que requieren mucha memoria tan pronto como ya no son necesarios. Sin embargo, muchos lenguajes de programación, como C #, no permiten el uso de destructores con una estructura. En su lugar, el objeto recolector de basura dispone de estructuras de forma automática.

Herencia

Como los tipos de referencia, las clases pueden heredar de otras clases. Esto significa que puede crear una clase de "niño" que hereda todos los objetos y propiedades de una clase de "persona". A su vez, la clase de persona puede heredar los miembros de la clase "criatura". Estructuras, por el contrario, no pueden heredar de otras estructuras. En consecuencia, están intrínsecamente sellados.