2.7 FICHEROS FUENTE

 

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