Variantes

Solo disponible en BuenasTareas
  • Páginas : 3 (726 palabras )
  • Descarga(s) : 0
  • Publicado : 23 de noviembre de 2011
Leer documento completo
Vista previa del texto
Registros Variantes
Los registros variantes son registros(campos de memoria) tales que en un momento dado sólo uno de sus campos, o colecciones de campos, es válida en un momento dado. En algunoslenguajes de programación es tomada como un tipo de unión, ya que, como veremos a continuación en nuestro ejemplo, se utiliza una misma localidad de memoria para almacenar distintos campos quepudiese tener cualquier tipo de objeto, ya sea el objeto de una clase o el de una estructura, o una unión misma.

En Java y en C#, se utiliza el tipo de dato Object, que al ser inicializado como unainstancia de una clase, estructura o unión, toma el valor de ese objeto, el uso de este tipo de dato es muy útil cuando no se sabe qué tipo de objeto se va a capturar, mas sin embargo necesitamos decapturarlo para poder mostrar el valor de sus diversas variables o campos.

mport javax.swing.JOptionPane;

class Cuadrado
{
public int lado;
Cuadrado(int x)
{
lado=x;
}
}
class Triangulo
{public int base,altura;
Triangulo(int b,int h)
{
base=b;
altura=h;
}
}
class Circulo
{
public int radio;
Circulo(int r)
{
radio=r;
}
}

public class Main
{

public static voidmain(String[] args)
{

Object resultado=Figura(Integer.parseInt(JOptionPane.showInputDialog("Teclea:\n1. cuadrado/n2. triangulo\n3. ciruclo")));
}

public static Object Figura(int opcion)
{Object variable=null;
boolean flag=true;
while(flag)
{
switch(opcion)
{
case 1:variable=new Cuadrado(Integer.parseInt(JOptionPane.showInputDialog("Teclea el valor del lado del cuadrado")));flag=false;
break;
case 2:variable=new Triangulo(Integer.parseInt(JOptionPane.showInputDialog("Teclea el valor de la base del triangulo")),Integer.parseInt(JOptionPane.showInputDialog("Teclea el valorde la altura del cuadrado")));
flag=false;
break;
case 3:variable=new Circulo(Integer.parseInt(JOptionPane.showInputDialog("Teclea el valor del lado del cuadrado")));
flag=false;
break;...
tracking img