/*=========================================================================
  ENCABEZADO DE LA CLASE 
  =========================================================================*/
/**
 * CLASE: Estudiante.java
 * OBJETIVO: Clase que representa a un estudiante con atributos basicos
 * ASIGNATURA: 
 * @version 1.0 21/07/2005
 * @author William Mendoza Rodriguez
 */

public class Estudiante {

    /*=========================================================================
      ATRIBUTOS PRINCIPALES
     =========================================================================*/    
        
    private String nombre;	/** Nombre del Estudiante */
    private long id;		/** Numero de Identificacion del Estudiante */
    private int year;		/** Año de Nacimiento */
    private int month;		/** Numero de Mes en que nacio */
    private int day;		/** Numero de Dia en que nacio */
    private String[] asignaturas = new String[5]; /** Vector de Asignaturas que cursa (cinco)*/

   /*=========================================================================
      METODOS CONSTRUCTORES
     =========================================================================*/    

    /** 
     * Constructor de la Clase Estudiante.<br>
     * Solo de asignacion de memoria
     */
    public Estudiante () {}

    /** 
     * Crea un Estudiante con el parametro nombre para inicializacion de este.<br>
     * @param nombre del estudiante
     */

    public Estudiante (String nombre) {
	this.nombre = nombre; 
    }

    /** 
     * Crea un Estudiante con el nombre y numero de identificacion dados.
     * @param nombre nombre del estudiante
     * @param numeroId n&uacute;mero de estudiante 
     */
    
    public Estudiante (String nombre, int numeroId) {
	this.nombre = nombre; 
	id = numeroId;
    }

    /*=========================================================================
      DEFINICION E IMPLEMENTACION DE LOS METODOS ANALIZADORES Y MODIFICADORES
     =========================================================================*/
    
    /** 
     * Método Analizador para el nombre de este estudiante
     *
     * @return el nombre del estudiante
     */
    public String getNombre() { 
	return nombre; 
    }
    
    /** 
     * Método Modificador Asigna nuevo nombre de este estudiante
     *
     * @param nombre nuevo nombre de este estudiante
     */
    public void setNombre (String nombre) { 
	this.nombre = nombre; 
    }
    
    /** 
     * Método Analizador para la id del estudiante
     *
     * @return id de este estudiante
     */
    public long getId() {
	return id; 
    }
    
    /** 
     * Asigna la id a este estudiante
     *
     * @param id El id de este estudiante
     */
    public void setId (long id) { 
	this.id = id; 
    }
    
    /** 
     * Analizador para el año de nacimiento del estudiante
     *
     * @return año de nacimiento de este estudiante
     */
    public int getYear() {
	return year; 
    }
    
    /** 
     * Analizador para el mes de nacimiento del estudiante
     *
     * @return mes de nacimiento de este estudiante
     */
    public int getMonth() {
	return month; 
    }
    
    /** 
     * Analizador para el dia de nacimiento del estudiante
     *
     * @return dia de nacimiento de este estudiante
     */
    public int getDay() {
	return day; 
    }
    
    /** 
     * Asigna fecha de nacimiento a este estudiante
     *
     * @param dia A&ntilde;o de nacimiento
     * @param mes Mes de nacimiento
     * @param anio D&iacute;a de nacimiento
     */
    public void setFechaNacimiento (int dia, int mes, int anio) { 
	//Aqui realice lo necesario para asignar la fecha de nacimiento
    }
    
    /** 
     * Retorna fecha de nacimiento del estudiante como string.
     *
     * @return dia de nacimiento de este estudiante
     */
    public String getFechaNacimiento () {
	return getYear() + "/" + getMonth() + "/" + getDay(); 
    }
    
    
    /** 
     * Edad del estudiante en años cumplidos.
     *
     * @return Edad de este estudiante en años cumplidos, con referencia a la fecha de hoy.
     */
    public int edad() {
	int dia, mes, anio;
	dia = 21;
	mes = 7;
	anio = 2005;
	//Realice lo necesario para devolver la edad en años, con referencia a la fecha de hoy
	return 0; 
    }
    
    /** 
     * Retorna la informacion de este estudiante como un String
     *
     * @return la informacion de este estudiante
     */
    public String toString() { 
	String s;
	s  = "Nombre: " + nombre + "\n";
	s += "ID    : " + id + "\n";
	s += "\n";
	return s;
    } // fin toString()

}


