Clases Persona y Empleado en Java: Encapsulamiento, Herencia y Cálculo de Edad
Clases Persona y Empleado en Java
public class Persona
{
protected String nombres;
protected String apellidos;
protected String direccion;
protected int rut;
protected String sexo;
protected String fechaNacimiento;
public Persona(String nombres, String apellidos, String direccion, int rut, String sexo, String fechaNacimiento)
{
this.nombres = nombres;
this.apellidos = apellidos;
this.direccion = direccion;
this.rut = rut;
this.sexo = sexo;
this.fechaNacimiento = fechaNacimiento;
}
public String getNombres()
{
return nombres;
}
public void setNombres(String nombres)
{
this.nombres = nombres;
}
public String getDireccion()
{
return direccion;
}
public void setDireccion(String direccion)
{
this.direccion = direccion;
}
public String getApellidos()
{
return apellidos;
}
public int getRut()
{
return rut;
}
public String getSexo()
{
return sexo;
}
public String getFechaNacimiento()
{
return fechaNacimiento;
}
public int calculaEdad(String fechaActual)
{
int edad = 0;
if (fechaActual != null)
{
// Formato dd-mm-aaaa
int dia1 = Integer.parseInt(fechaActual.substring(0, 2));
int mes1 = Integer.parseInt(fechaActual.substring(3, 5));
int anio1 = Integer.parseInt(fechaActual.substring(fechaActual.length() - 4, fechaActual.length()));
int dia2 = Integer.parseInt(fechaNacimiento.substring(0, 2));
int mes2 = Integer.parseInt(fechaNacimiento.substring(3, 5));
int anio2 = Integer.parseInt(fechaNacimiento.substring(fechaNacimiento.length() - 4, fechaNacimiento.length()));
if (anio1 > anio2 && mes1 > mes2)
edad += anio1 - anio2;
else if (anio1 > anio2 && mes1 == mes2 && dia1 > dia2)
edad += anio1 - anio2;
}
return edad;
}
}
Clase Empleado (herencia de Persona)
public class Empleado extends Persona
{
private final String profesion;
private int sueldo;
private String tipoTrabajo;
public Empleado(String nombres, String apellidos, String direccion, int rut, String sexo, String fechaNacimiento, String profesion, int sueldo, String tipoTrabajo)
{
super(nombres, apellidos, direccion, rut, sexo, fechaNacimiento);
this.profesion = profesion;
this.sueldo = sueldo;
this.tipoTrabajo = tipoTrabajo;
}
public int getSueldo()
{
return sueldo;
}
public void setSueldo(int sueldo)
{
this.sueldo = sueldo;
}
public String getTipoTrabajo()
{
return tipoTrabajo;
}
public void setTipoTrabajo(String tipoTrabajo)
{
this.tipoTrabajo = tipoTrabajo;
}
public String getProfesion()
{
return profesion;
}
public void reajustarSueldo(double reajuste)
{
sueldo = (int)(sueldo * (1 + reajuste / 100));
}
public void reajustarSueldo(String actividad)
{
if (actividad != null)
{
if (actividad.equalsIgnoreCase"ingenier"))
sueldo = 850000;
else if (actividad.equalsIgnoreCase"técnic"))
sueldo = 450000;
else if (actividad.equalsIgnoreCase"educación medi"))
sueldo = 250000;
}
}
}
Clase Item3: desglose de dinero y cálculo de distancia
public class Item3
{
private int desglose[] = new int[11];
private final int monedas[] = {20000, 10000, 5000, 2000, 1000, 500, 100, 50, 10, 5, 1};
public void desgloseDinero(int dinero)
{
if (dinero > 0)
{
int posicionDesglose = 0;
while (dinero > 0)
{
desglose[posicionDesglose] = (int)(dinero / monedas[posicionDesglose]);
dinero = dinero % monedas[posicionDesglose++];
}
}
}
public double distancia(double x1, double y1, double x2, double y2)
{
return Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));
}
}