miércoles, 9 de abril de 2014

Explicación Interface, override, implements....

Ejemplo de deportista implementando comparable para en un Array mostrar los elementos ordenados, también sobrescribimos el método equals que es empleado por el método contains de los ArraysList para decirnos si un objeto está o no incluido en el mismo.:

package interfaces;


public class Deportista implements Comparable {
    int anhos;
    String nombre;

    public Deportista(int anhos, String nombre) {
        this.anhos = anhos;
        this.nombre = nombre;
       
       
    }

    @Override
 

   public String toString() {
        return (nombre+": "+anhos);
    }

   @Override
    public int compareTo(Object o) {
        int retorno;
       
        if (o==null) retorno=-1;
        else
            if (o instanceof Deportista)
            {
                Deportista a = (Deportista) o;
                if (a.anhos==this.anhos) retorno=0;
                else if (a.anhos> this.anhos) retorno = 1;
                else retorno=-1;
            }
            else retorno=-1;
       
        return retorno;
    }

    @Override
    public boolean equals(Object obj) {
       
        super.equals(obj);
       
        if (obj==null) return false;
        if (!(obj instanceof Deportista)) return false;
        Deportista otro = (Deportista) obj;
        if (otro.nombre.equalsIgnoreCase(this.nombre) && otro.anhos==this.anhos) return true;
        else return false;
       
    }
   
   
}



package interfaces;
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;
/**
*
* @author juan
*/
public class Interfaces {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Deportista a = new Deportista(23,"Maradona");
        Deportista b = new Deportista(15,"Figo");
        Deportista c = new Deportista(15,"Figo");
        Deportista array [] = new Deportista [3];
   
        array[0]=a;
        array[1]=b;
        array[2] = new Deportista(2,"Bebé");
        ArrayList<Deportista> miEquipo = new ArrayList<>();
        miEquipo.add(a);
        miEquipo.add(b);
        miEquipo.add(array[2]);
        for (Deportista deportista : miEquipo) {
            System.out.println(deportista);
        }
       if (miEquipo.contains(c)) System.out.println("Figo ya está en el equipo");
       else System.out.println("Fichando a Figo: Figo NO está en mi equipo");
  }
}