Topicos Selectos De Programacion
Enviado por FaBhEr09 • 14 de Septiembre de 2011 • 8.541 Palabras (35 Páginas) • 960 Visitas
TIPOS DEFINIDOS POR EL USUARIO
1.1 AGREGACION DE DATOS (STRUCT).
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 al
constructor 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 Persona
{
public String nombre;
public String altura;
}
Lo que ocurre es que, teniendo la potencia de la programación orientada a objetos no
es recomendable 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.
public class Animal
{
private String especie;
private String altura;
public Animal(String especie,String
genero)
{
setespecie(especie);
setgenero(genero);
}
public void setespecie(String especie)
{
If (especie==null)
{
throw new
IllegalArgumentException("la especie
no debe ser nulo");
}
else
this.especie=especie;
}
public String getespecie()
{
return especie:
}
public void setaltura(String altura)
{
If (altura>=0)
throw new
IllegalArgumentException("La altura debe ser
positiva: "+altura);
else
this.altura=altura;
public int getAltura()
{
return altura;
}
}
}
Ingenieria en Sistemas Computacionales Topicos Selectos de Programacion
Pag: 6
Las clases set/get son mejores que los struct
// IDL
struct Date
{
short year;
short month; // 1-12
short day; // 1-31
};
// Java
final public class Date
implements org.omg.CORBA.portable.IDLEntity
{
public short year;
public short month;
public short day;
public Date() {}
public Date(short year, short month,
short day)
{ ... }
}
1.1 UNION DE DATOS.
En JAVA la unión de datos se da cuando una clase a se extiende mediante la herencia
por otra clase. Un ejemplo podría ser el siguiente:
public class alumno
{
Int calificaciones;
Int horario;
}
Y la otra clase hereda la clase anterior por lo tanto asi es como se maneja las uniones
de datos.
Public class datos_alumno extends alumno
{
String direccion;
String nombre;
Int edad;
}
Ingenieria en Sistemas Computacionales Topicos Selectos de Programacion
Pag: 7
1.3 REGISTROS VARIANTES.
Un registro o record es una estructura de datos compuesta de un número fijo de
componentes de diferente tipo. Cada componente o campo de un registro se accede por
el nombre del registro y el nombre de la componente. Puede que un registro contenga
partes de su estructura que puedan variar en función de otras. Para ello se definen los
REGISTROS VARIANTES que son un tipo especial de registros discriminados en los que
la existencia de algunos campos depende del valor del discriminante.
Si el discriminante lleva un valor por defecto entonces el registro es variante durante su
ciclo de vida (es mutable), si no, el valor del discriminante se fija en su declaración y no
varía durante la vida del objeto.
Los registros variantes en cierto modo están sobrepasados por la extensión de los tipos
etiquetados, sin embargo aún son útiles en casos simples como aquellos en los que se
conocen todas las posibilidades y no se desea que alguien añada una derivación a
posteriori.
Los registros variantes son una especie de sentencia “case” dentro de un registro y son
muy útiles cuando tenemos ciertos atributos que sabemos de antemano que sólo
usaremos en ciertas situaciones.
Los registros variantes ahorran memoria, porque como sólo una de las estructuras
definidas dentro de ellos puede usarse a la vez, el compilador sólo necesita reservar
memoria para la mayor de ellas (en vez de tener que hacerlo para
todos los componentes del registro).
1.4 TIPO DE DATOS ENUMERADOS.
Las enumeraciones son eficientes porque permiten que el compilador optimice espacio de
almacenamiento y las operaciones en que se les involucra pueden realizarse
rápidamente.
EJEMPLO:
DiaSemana = (Dom, Lun, Mar, Mie, Jue, Vie, Sab);
Puesto que el compilador sabe con anticipación cuál es el número total de
valores que contendrá la enumeración, puede asignar exactamente la cantidad de bits
que se requiera para representarla, en vez de tener que usar el número total de bits que
requeriría normalmente un entero.
Las enumeraciones son seguras porque el compilador se asegura que los
programadores no puedan efectuar operaciones sin sentido.
En JAVA una enumeración es simplemente un conjunto de constantes que representan
diferentes valores.
Ingenieria en Sistemas Computacionales Topicos Selectos de Programacion
Pag: 8
Un ejemplo antiguo de cómo se utilizaba en JAVA anteriormente podría ser el siguiente:
public final int SPRING = 0;
public final int SUMMER = 1;
public final int FALL = 2;
public final int WINTER = 3;
Eso a lo largo de la evolución de JAVA a través del tiempo se puede optimizar utilizando
el siguiente formato:
enum Season { WINTER, SPRING, SUMMER,FALL }
Un enum es un nuevo tipo de clase, Puedes declarar variables de tipo enumerado y tener
comprobación de tipos en tiempo de compilación.
Cada valor declarado es una instancia de la clase enum, Los Enums son implícitamente
public, static y final y los puedes comparar mediante: equals o ==
Los tipos enums heredan de java.lang.Enum e implementan java.lang.Comparable
Ejemplo:
import
...