viernes, 24 de septiembre de 2010
lunes, 6 de septiembre de 2010
viernes, 3 de septiembre de 2010
registros variantes
en contrado aqui
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 algunos lenguajes 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 que pudiese 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 una instancia 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 de capturarlo para poder mostrar el valor de sus diversas variables o campos.
Ejemplo en java
import 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 void main(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 valor de 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;
default:JOptionPane.showMessageDialog(null,"Ese numero no esta en la lista");
}
}
return variable;
}
}
En este código de Java, se muestra que existe una incertidumbre de qué tipo de figura escogerá el usuario, mas sin embargo, la variable resultado puede capturar cualquier tipo de objeto para así después poder acceder a sus variables.
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 algunos lenguajes 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 que pudiese 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 una instancia 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 de capturarlo para poder mostrar el valor de sus diversas variables o campos.
Ejemplo en java
import 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 void main(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 valor de 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;
default:JOptionPane.showMessageDialog(null,"Ese numero no esta en la lista");
}
}
return variable;
}
}
En este código de Java, se muestra que existe una incertidumbre de qué tipo de figura escogerá el usuario, mas sin embargo, la variable resultado puede capturar cualquier tipo de objeto para así después poder acceder a sus variables.
Suscribirse a:
Entradas (Atom)