sábado, 22 de junio de 2013

Programando en Java ... no. 2


Uso de clases abstractas e interfaces
  • Clase principal: Ejemplos
  • Interface: Servicio
  • Clase asbtracta: Persona
  • Clase "hija": Obrero
El programa obtiene 6 parámetros: nombre, apellido paterno, apellido materno, edad, tasa y horas

Calcula el salario neto y el salario bruto de una persona.


public class Ejemplos{
    public static void main(String[] args)throws Exception {
       if(args.length!=0){
Persona obrero=new Obrero(args[0],args[1],args[2],Integer.parseInt(args[3]), Double.parseDouble(args[4]),Integer.parseInt(args[4]));
        obrero.ver();
        }else{
            System.out.println("No hay argumentos:\n"+uso());
        }
    }
    static String uso(){
        return "java Ejemplos <nombre> <apellidoPaterno> <apellidoMaterno> <edad> <tasa> <horas>";
    }
}

interface Servicio{
    public abstract void ver();
}
abstract class Persona implements Servicio{
    protected String nombre;
    protected String apellidoPaterno;
    protected String apellidoMaterno;
    protected int edad;
    public abstract String obtenerDatos();
    public abstract double obtenerSalarioNeto();
    public abstract double obtenerSalarioBruto();

    public Persona(){}

    public Persona(String nombre,String apellidoPaterno,String apellidoMaterno, int edad){
        this.nombre=nombre;
        this.apellidoPaterno=apellidoPaterno;
        this.apellidoMaterno=apellidoMaterno;
        this.edad=edad;
    }

    public String getNombre(){
        return nombre;
    }
    public String getApellidoPaterno(){
        return apellidoPaterno;
    }

    public String getApellidoMaterno(){
        return apellidoMaterno;
    }

    public int getEdad(){
        return edad;
    }

}

class Obrero extends Persona{
    public double tasa;
    public int horas;


    public static final double VALOR1=1.5;
    public static final double VALOR2=0.9;

    public Obrero(){
    }

    public Obrero(String nombre,String apellidoPaterno,String apellidoMaterno,int edad,double tasa,int horas){
        super(nombre,apellidoPaterno,apellidoMaterno,edad);
        this.tasa=tasa;
        this.horas=horas;
    }

    @Override
    public double obtenerSalarioBruto(){
        double salarioB=0.0;
        int extras=0;
        if(horas<=38){
            extras=0;
        }else{
            extras=horas-38;
            horas=38;
        }
        salarioB=horas*tasa+extras*tasa*VALOR1;
        return salarioB;
    }

    @Override
    public double obtenerSalarioNeto(){
        double salarioN=0.0;
        if(obtenerSalarioBruto()<=300){
            salarioN=obtenerSalarioBruto();
        }else{
            salarioN=obtenerSalarioBruto()*VALOR2;
        }
        return salarioN;
    }

    @Override
    public void ver(){
        System.out.println(obtenerDatos());
    }

    @Override
    public String obtenerDatos(){
        return "Obrero(nombre: "+nombre+" , apellido paterno: "+apellidoPaterno+" , apellido materno: "+apellidoMaterno+" , edad: "+edad+" , tasa: "+tasa+" , horas: "+horas+" , salario bruto: "+obtenerSalarioBruto()+" , salario neto: "+obtenerSalarioNeto();
    }
}


No hay comentarios:

Publicar un comentario