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