Programación genérica en Java

/* Se muestra un par de ejemplos sencillos de programación genérica: una clase con 1 parámetro de tipo y otra clase con 2 parámetros de tipo. Se muestra su uso en el método principal */

package genericos;

// CLASE GENÉRICA CON 1 PARÁMETRO DE TIPO
public class Generica<T> 
{
    private T obj;
    
    //Constructor
    Generica(T x)
    {
        obj = x;
    }
    
    // Métodos
    public T getValue()
    {
        return obj;
    }
    
    public void changeValue(T y)
    {
        obj = y;
    }
    
    public void showType()
    {
        System.out.println("Tipo de T es: " + obj.getClass().getName());
    }
    
}


// CLASE GENÉRICA CON 2 PARÁMETRO DE TIPO
public class Genericaa<T,V> 
{
    private T obt;
    private V obv;
    
    //Constructor
    Genericaa(T x, V y)
    {
        obt = x;
        obv = y;
    }
    
    // Métodos
    public T getValue1()
    {
        return obt;
    }
    
    public V getValue2()
    {
        return obv;
    }
    
    public void changeValue1(T y)
    {
        obt = y;
    }
    
    public void changeValue2(V y)
    {
        obv = y;
    }
    
    public void showTypes()
    {
        System.out.println("Tipo de T es: " + obt.getClass().getName());
        System.out.println("Tipo de V es: " + obv.getClass().getName());
    }
    
}

****** MÉTODO PRINCIPAL ************

public class Genericos 
{
    
    /*
     * @author RLR
     */
    public static void main(String[] args) 
    {                

        System.out.println("GENERICOS: \n ");        
        
        // GENERICA PARA INTEGER
        System.out.println("Con Integer: ");   
        Generica<Integer> genx;  //referencia
        
        genx = new Generica<>(50);
        
        // Mostrar tipo
        genx.showType();        
        
        // Mostrar valor
        int x = genx.getValue();
        System.out.println("Valor: " + x);
        
        // Cambiar valor
        genx.changeValue(75);
        x = genx.getValue();
        System.out.println("NewValor: " + x);
        
        System.out.println();
        
        // GENERICA PARA STRING
        System.out.println("Con String: ");   
        Generica<String> gens;  //referencia
        
        gens = new Generica<>("HOLA");
        
        // Mostrar tipo
        gens.showType();        
        
        // Mostrar valor
        String y = gens.getValue();
        System.out.println("Valor: " + y);
        
        // Cambiar valor
        gens.changeValue("ADIOS");
        y = gens.getValue();
        System.out.println("NewValor: " + y);
        
        System.out.println();
        
         // GENERICA DOBLE PARA INTEGER Y STRING
        System.out.println("Con Integer + String: ");   
        Genericaa<Integer,String> genxs;  //referencia
        
        genxs = new Genericaa<>(50,"HOLA");
        
        // Mostrar tipo
        genxs.showTypes();        
        
        // Mostrar valores
        x = genxs.getValue1();
        System.out.println("Valor INT: " + x);
        y = genxs.getValue2();
        System.out.println("Valor STRING: " + y);
        
        // Cambiar valores
        genxs.changeValue1(90);
        x = genxs.getValue1();
        System.out.println("NewValor INT: " + x);
        genxs.changeValue2("HASTA LUEGO");
        y = genxs.getValue2();
        System.out.println("NewValor STRING: " + y);
        

        System.out.println("\n\nFIN-FIN");
              
    }
}

Esta entrada fue publicada en Ciencia y programación. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s