Seguidores

MIS WEBS



domingo, 31 de diciembre de 2017

CREAR NUESTRA INTERFAZ


¿Para qué lo hacemos?


Cuando realicemos un programa crearemos una clase padre y luego una serie de subclases a raíz de ella. Cuando en una de las clases deseemos que cualquiera que trabaje con ella la cree con una serie de métodos que nosotros consideremos indispensable realizaremos una interface. Es una forma determinada de trabajar con nuestra clase implementando como mínimo una serie de métodos predefinidos por nosotros.

SINTAXIS:

public interface MiInterface {
//obligamos a cualquiera que utilice nuestra interface a implementar en su clase el método 1,2 y3.
     public abstract String Metodo1();
public abstract String Metodo2();
public abstract String Metodo3();    
}

Ejercicio

//creamos la interface para que se implimente el método incremento_sueldo los años de trabajo y el incremento por años.
public interface MiInterface {
public abstract double incremento_sueldo(double incremento_sueldo_por_año,double años);}
public class CLASES_ABSTRACTAS {
_______________________________________________________
     public static void main(String[] args) {
         OPERARIOS operario[]= new OPERARIOS[3];
//tenemos 2 tipos de operarios unos que son médicos y otros administrativos cada uno de ellos tendrá un tipo de incremento sueldo    
operario[0]= new medicos("tra","lalala","e5558","cardio",20);
operario[1]= new administrativos("paco","perez lopez","w3334","cont",50);
operario[2]=new medicos("Pedro","perez Casa","q8888888","pediatra",60);

// com instamceof confirmamos que pertenece a la clase medicos
if (operario[0] instanceof medicos) {
System.out.println(operario[0].get_regresadatos()+ "\n");}
if (operario[1] instanceof Comparable) {
System.out.println("utiliza Comparable que si no deja de funcionar");}

//imprimimos en ventana de inmediato el método incremento_sueldo
System.out.println(operario[0].incremento_sueldo(100, 10));
System.out.println(operario[1].incremento_sueldo(50, 15));
System.out.println(operario[2].incremento_sueldo(100, 30));
        
         Arrays.sort(operario);
         for (OPERARIOS i:operario) {
         System.out.println(i.get_regresadatos()+" ");}
     }
}
______________________________________________________________
//clase abstracta // clase padre// implementamos la interfaze Comparable y nuestra interfaze MiInterfaze
_______________________________________________________
abstract class OPERARIOS implements Comparable,MiInterface{
    
     //CONSTRUCTOR
     public OPERARIOS(String nom,String apellidos, String Dni,int numero) {
         nombre=nom; this.apellidos=apellidos; this.Dni=Dni;this.numero=numero;
     }
    
     public final String nombre,apellidos, Dni;
     public final int numero;
    
     public abstract String get_regresadatos();
//utilizamos el método incremento_sueldo de nuestra interface Miinterface
     public double incremento_sueldo
     (double incremento_sueldo_por_año,double años) {
     double incremento=incremento_sueldo_por_año;  
     double años_trabajados= años;
         return   incremento*años_trabajados;
             
     }
     //utilizamos el método compareto de Comparable
     public int compareTo(Object Bob) {
         OPERARIOS op=(OPERARIOS) Bob;
         if (this.numero < op.numero) {return -1;}
         if (this.numero>op.numero) {return 1;}
         return 0;    
     }              }
class medicos extends OPERARIOS{
     public medicos(String nom,String Apellidos,String Dni, String departamento, int nuemro) {
         super(nom,Apellidos,Dni,nuemro);
     dep=departamento;
        
     }
     public final String dep;
     public String get_regresadatos()
                   {return      numero+ "     "+
                                 Dni"   " +
                                 nombre+"   " 
                                 +apellidos+"   " +
                                 dep ;}
}

class administrativos extends OPERARIOS{
    
     public administrativos(String nom,String Apellidos,String Dni, String departamento, int numero)
     { super(nom,Apellidos,Dni,numero);
     dep=departamento;
        
     }
     public final String dep;
     public String get_regresadatos()
                   {return numero + "     "+
                            Dni"   " +
                            nombre+"   " 
                            +apellidos+"   " +
                            dep ;}

}

No hay comentarios:

Publicar un comentario

Buscar este blog

Sandisk y Western Digital