Topicos selectos prog.

Solo disponible en BuenasTareas
  • Páginas : 10 (2448 palabras )
  • Descarga(s) : 0
  • Publicado : 14 de marzo de 2011
Leer documento completo
Vista previa del texto
Unidad I Tipos de Datos Definidos por el usuario
(struct struct). 1.1 Agregación de datos (struct). Se trata de la forma más versátil de trabajar con fichas de información. Veamos como se definen y posteriormente comentaremos todos los aspectos relevantes de ellas. struct [Nombre_de_la_estructura] { tipo1 campo1; tipo2 campo2; . . tipoN campoN; } [variable]; La palabra clave struct define unaestructura. Por tratarse de un tipo de datos puede utilizarse directamente para definir una variable. La variable aparece entre corchetes puesto que puede ser omitida. Si se especifica una variable, estaremos definiendo una variable cuyo tipo será la estructura que la precede. Si la variable no es indicada definimos un nuevo tipo de datos (struct Nombre_de_la_estructura), que podremos utilizarposteriormente. Si es el nombre de la estructura lo que se omite, tendremos que especificar obligatoriamente una variable que tendrá esa estructura y no podremos definir otras variables con esa estructura sin tener que volver a especificar todos los campos. Lo que se encuentra dentro de las llaves es una definición típica de variables con su tipo y su identificador. Todo esto puede parecer un pococonfuso pero lo aclararemos con unos ejemplos. struct punto { float x; float y; int color; } punto_de_fuga; Aquí estamos definiendo una variable llamada punto_de_fuga cuyo tipo es una estructura de datos formada por tres campos y a la que hemos llamado punto. Dos de ellos son de tipo float y representan las coordenadas del punto, el tercer valor es un entero que indica el color de ese punto. En estecaso hemos definido una variable y una estructura. Al disponer de un identificador para esta última podemos definir nuevas variables de esta estructura. struct punto origen1; struct punto final1; Donde origen1 y final1 son variables de tipo struct punto que hemos definido anteriormente. Si en la definición de punto_de_fuga no se

hubiese incluído un identificador para la estructura (en este casoel identificador es punto), no podríamos definir nuevas variables con esa estructura ya que no estaría identificada por ningún nombre. También podríamos haber excluído el nombre de la variable (punto_de_fuga). En este caso lo que definiríamos sería una estructura llamada punto que pasaría a ser un nuevo tipo disponible por el usuario. Así los tipos de variables de que dispondríamos ahora serían:int float double char struct punto Por tanto podríamos definir cualquier variable con estos tipos o incluso definir matriz de estos tipos. struct punto matriz_de_puntos[30]; Así estaríamos definiendo una matriz de 30 elementos en la que cada elemento es una struct punto con sus tres campos. Lo que ahora nos interesa es saber como referenciar esos campos y acceder o modificar, por tanto lainformación que contienen. Esto se consigue separando el identificador del campo de la variable mediante un punto. Struct se puede considerar como una clase ligera. Puede contener constructores, constantes, campos, métodos, propiedades, indicadores, operadores y tipos anidados todo lo que una clase puede contener. En el ejemplo siguiente, se inicializa struct con la palabra clave new, se llama alconstructor predeterminado sin parámetros y, a continuación, se establecen los miembros de la instancia. Si quieres simular un struct en Java, simplemente lo que tienes que hacer es definir una clase pública con todas las propiedades públicas: public class Animal { public String especie; public string genero; } Lo que ocurre es que, teniendo la potencia de la programación orientada a objetos no esrecomendable definir clases así, pues las hace más sensibles a los cambios y el acoplamiento entre clases es mayor, lo cual es algo a evitar. Es mejor definir métodos set/get, que permiten modificar luego la estructura interna de la

clase sin que cambie la interfaz, además de garantizar que las propiedades toman valores adecuados. Hay algo gracioso con java por que puedes hacer un struct pero es...
tracking img