martes, 25 de diciembre de 2012

Primera clase en Java: ClasePersona

En un nuevo proyecto de NetBeans agregar dos paquetes uno con el nombre: entidades, y el otro con nombre: pruebas.
creando e implementado la clase: ClasePersona
Persona.java
  1 /*
  2  * To change this template, choose Tools | Templates
  3  * and open the template in the editor.
  4  */
  5 package entidades;
  6 
  7 import java.util.Calendar;
  8 import java.util.GregorianCalendar;
  9 
 10 /**
 11  *
 12  * @author iAlexander
 13  * Clase Persona
 14  */
 15 public class Persona {
 16     /*
 17      * Atributos de la clase Persona los 3 de alcance privado, quiere decir
 18      * que solo son visibles a nivel de clase, dos de tipo String(cadena de
 19      * caracteres) uno para dni, y otro para nombre, no estan inicializados.
 20      * el tercer atributo es te tipo GregorianCalendar.
 21      * GregorianCalendar es una clase de java que pertenece al paquete
 22      * java.util, todo objeto creado a partir de esta clase contiene
 23      * información de una determinada fecha, ejemplo dia, mes, año, hora,
 24      * minutos, zonaHoraria, ... ect;
 25      *
 26      */
 27     private String dni;
 28     private String nombre;
 29     private GregorianCalendar fechaNacimiento;
 30     
 31     /*
 32      * Casi todas las clases tienen un método constructor, ¿Qué es y para que
 33      * sirve?. Un constructor permite inicializar a los atriburos, dándole un 
 34      * valor predefinido por nosotros
 35      */
 36     
 37     /**
 38      * Constructor por defecto de la clase persona, inicializa un objeto
 39      * de la clase persona con los valores por defecto
 40      */
 41     public Persona(){
 42         /*
 43          * Se están inicializando los atributos de la clase persona, los de
 44          * tipo String se inicializarán con una cadena entre comillas, los
 45          * de tipo referenciado, en este caso fechaNacimiento es inicializado
 46          * por la llamada al constructor por defecto de la clase 
 47          * GregorianCalendar
 48          * en otro punto más adelante hablaremos de los constructores
 49          */
 50         dni = "Undefined";
 51         nombre = "Undefined";
 52         fechaNacimiento = new GregorianCalendar();
 53     }
 54 
 55     /**
 56      * Método: asignarDni
 57      * Asigna el dni a un objeto de tipo Persona
 58      * @param nuevoDni,  DNI de una persona
 59      */
 60     public void asignarDni(String nuevoDni){
 61         this.dni = nuevoDni;
 62     }
 63     
 64     /**
 65      * Método: asignarNombre
 66      * Asigna el nombre a un objeto de tipo Persona
 67      * @param nuevoNombre, nombre de la persona
 68      */
 69     public void asignarNombre(String nuevoNombre){
 70         this.nombre = nuevoNombre;
 71     }
 72     
 73     /**
 74      * Método: asignarFechaNacimiento
 75      * Asigna la fecha de nacimiento a un objeto de tipo Persona
 76      * @param nuevaFechaNacimiento 
 77      */
 78     public void asignarFechaNacimiento(GregorianCalendar nuevaFechaNacimiento){
 79         this.fechaNacimiento = nuevaFechaNacimiento;
 80     }
 81     
 82     /**
 83      * Método imprimirFechaNacimiento, devuelve la fecha de nacimiento
 84      * en formato dd/mm/aa
 85      * @return devuelve la fecha de nacimiento en formato dd/mm/aa
 86      */
 87     public String imprimirFechaNacimiento(){
 88         int dia, mes, año;
 89         dia = fechaNacimiento.get(Calendar.DAY_OF_MONTH);
 90         mes = fechaNacimiento.get(Calendar.MONTH) + 1;
 91         año = fechaNacimiento.get(Calendar.YEAR);
 92         return dia + "/" + mes + "/" + año;
 93     }
 94     
 95     /**
 96      * Método calcularEdad
 97      * @return la edad de una persona con respecto a su fecha
 98      * de nacimiento
 99      */
100     public int calcularEdad(){
101         int diaN, mesN, añoN;
102         int diaA, mesA, añoA;
103         int edad;
104         GregorianCalendar fechaActual = new GregorianCalendar();
105         diaN = fechaNacimiento.get(Calendar.DAY_OF_MONTH);
106         mesN = fechaNacimiento.get(Calendar.MONTH) + 1;
107         añoN = fechaNacimiento.get(Calendar.YEAR);
108         
109         diaA = fechaActual.get(Calendar.DAY_OF_MONTH);
110         mesA = fechaActual.get(Calendar.MONTH) + 1;
111         añoA = fechaActual.get(Calendar.YEAR);
112         
113         edad = añoA - añoN;
114         
115         if(mesA < mesN)
116             edad --;
117         else if(mesA == mesN)
118             if(diaA < diaN)
119                 edad --;
120         
121         return edad;
122     }
123     
124     /**
125      * Método: toString
126      * @return la información contenida en un objeto de tipo Persona
127      */
128     @Override
129     public String toString(){
130         return "\nPersona"
131                 + "\t\nNombre: "  + nombre                
132                 + "\t\nFecha de Nacimiento: "  + imprimirFechaNacimiento()
133                 + "\t\nEdad: "  + calcularEdad();
134     }
135 }
136 
creando e implementado la clase: PruebaClasePersona
PruebaPersona.java
 1 /*
 2  * To change this template, choose Tools | Templates
 3  * and open the template in the editor.
 4  */
 5 package pruebas;
 6 
 7 import entidades.Persona;
 8 import java.util.GregorianCalendar;
 9 
10 /**
11  *
12  * @author iAlexander
13  */
14 public class PruebaPersona {
15     public static void main(String[] args) {
16         /*
17          * Se instancian 3 objetos de tipo persona 
18          */
19         Persona empleado= new Persona();
20         Persona estudiante = new Persona();
21         Persona medico = new Persona();
22         
23         /*
24          * Asignando información al objeto estudiante
25          */
26         estudiante.asignarDni("46914430");
27         estudiante.asignarNombre("Igor Alexander");
28         estudiante.asignarFechaNacimiento(new GregorianCalendar(1990, 11, 4));
29         
30         /*
31          * Imprimiendo información de los objetos
32          */
33         System.out.println(empleado.toString());
34         System.out.println(estudiante.toString());
35         System.out.println(medico.toString());
36     }
37     
38 }
39 
Resultado...

run:

 

Persona     

Nombre: Undefined  

Fecha de Nacimiento: 28/7/2014   

Edad: 0

 

Persona     

Nombre: Igor Alexander    

Fecha de Nacimiento: 4/12/1990   

Edad: 23

 

Persona     

Nombre: Undefined  

Fecha de Nacimiento: 28/7/2014   

Edad: 0

BUILD SUCCESSFUL (total time: 1 second)

Descargar: S_Proyecto4

No hay comentarios:

Publicar un comentario