Vamos a realizar otro ejemplo pero en lugar
de tener el método main en un archivo
y la creación de la clase, propiedades y métodos en otra, lo vamos a hacer todo
en un mismo archivo. Va a consistir en la creación de una clase que va a tener las
siguientes propiedades:
·
Nombre
·
Sueldo
·
Fecha alta
·
Subir sueldo
Mediante un método Getter haremos que el sueldo suba un
porcentaje, lo vamos a ver paso a paso, por lo pronto nos creamos una clase a
la que vamos a llamar Uso_empleado
con el método main:
package poo;
public class Uso_empleado {
public static void main(String[] args) {
}
}
A continuación, vamos a hacer algo diferente
al ejemplo anterior del Coche y vamos a crear la clase Empleado y el método
constructor le vamos a pasar las propiedades por parámetro:
package poo;
public class Uso_empleado {
public static void main(String[] args) {
}
class Empleado {
public Empleado(String nom, double sue, int agno, int mes, int dia) {
}
}
Posteriormente creamos las propiedades
o variables:
package poo;
import java.util.Date;
public class Uso_empleado {
public static void main(String[] args) {
}
class Empleado {
public Empleado(String nom, double sue, int agno, int mes, int dia) {
}
private String nombre;
private double sueldo;
private Date altacontrato;
}
La variable altacontrato la hemos declarado como tipo Date porque es una fecha. Para conocer más acerca de Date se
recomienda ir a la Api de Java para saber su funcionamiento para
utilizarla hemos tenido que importar el paquete import.java.util.Date. Inicializamos las variables dentro del
constructor:
public Empleado(String nom, double sue, int agno, int mes, int dia) {
nombre = nom;
sueldo = sue;
GregorianCalendar calendario = new GregorianCalendar(agno, mes-1, dia);
altacontrato = calendario.getTime();
}
GregorianCalendar es una
implementación del calendario gregoriano que es usado en casi todo el mundo (es
el que conocemos). La clase Calendar
es una clase abstracta base para convertir entre un objeto de tipo Date. El método getTime() devuelve el número de milisegundos desde el 1 de enero de 1970 a las
00:00:00 GTM, que se representa mediante el objeto Date.
Creamos los métodos
Getter:
public String dameNombre() {
return nombre;
}
public double dameSue() {
return sueldo;
}
public Date dameFechaAlta() {
return altacontrato;
}
}
El método Getter que va a subir el sueldo:
public void subeSueldo(double porcentaje) {
double aumento = sueldo * porcentaje/100;
sueldo+=aumento;
El porcentaje se lo
pasaremos por parámetro.
En el método main
creamos tres objetos de tipo empleado y llamamos al método para subir el
sueldo:
public static void main(String[] args) {
Empleado empleado1 = new Empleado("Patricia Martinez", 85000, 2000, 03, 03);
Empleado empleado2 = new Empleado("Paco Rodriguez", 45000, 2001, 05, 07);
Empleado empleado3 = new Empleado("Antonio Morales", 42000, 2002, 12, 22);
empleado1.subeSueldo(5);
empleado2.subeSueldo(5);
empleado3.subeSueldo(5);
}
Para que nos salga
la información en consola creamos un System.out:
System.out.println("Nombre: "+empleado1.dameNombre()+" Sueldo: "+empleado1.dameSue()+
" Fecha contrato: "+empleado1.dameFechaAlta());
System.out.println("Nombre: "+empleado2.dameNombre()+" Sueldo: "+empleado2.dameSue()+
" Fecha contrato: "+empleado2.dameFechaAlta());
System.out.println("Nombre: "+empleado3.dameNombre()+" Sueldo: "+empleado3.dameSue()+
" Fecha contrato: "+empleado3.dameFechaAlta());
Probamos:
Podemos reducir
líneas de código creando un array
para insertar los diferentes empleados y recorrerlos mediante un array:
Empleado[] misEmpleados = new Empleado[3];
misEmpleados[0] = new Empleado("Patricia Martinez", 85000, 2000, 03, 03);
misEmpleados[1] = new Empleado("Paco Rodriguez", 45000, 2001, 05, 07);
misEmpleados[2] = new Empleado("Antonio Morales", 42000, 2002, 12, 22);
for(int i=0; i<3; i++) {
misEmpleados[i].subeSueldo(5);
}
for(int i=0; i<3; i++) {
System.out.println("Nombre: "+misEmpleados[i].dameNombre()+" Sueldo: "+misEmpleados[i].dameSue()+
" Fecha contrato: "+misEmpleados[i].dameFechaAlta());
}
}
El resultado en
consola sería el mismo. Aún se puede reducir más si en lugar de for utilizamos el for simplificado foreach:
for(Empleado e: misEmpleados) {
e.subeSueldo(5);
}
for(Empleado e: misEmpleados) {
System.out.println("Nombre: "+e.dameNombre()+" Sueldo: "+e.dameSue()+
" Fecha contrato: "+e.dameFechaAlta());
}
}
Esta es otra forma de crear nuestras
aplicaciones en Java, no está mal pero no estaríamos utilizando uno de los
conceptos más importantes de la POO que es la modularización, como hemos hecho con el ejemplo del Coche, que
estaba dividido en dos archivos.
Podéis ver el código de este ejemplo
haciendo clic aquí Uso_empleados.java
2.6 CONSTRUCCIÓN DE OBJETOS << >> 2.8 CONSTANTES USO FINAL
No hay comentarios:
Publicar un comentario