miércoles, 30 de abril de 2014

Java: HERENCIA

Que tal programadores!!

Hoy nos dimos a la tarea de explicar la herencia, el que comúnmente es temido en las escuelas por el echo de que lo dicen de manera que se ve tan complicada, pero hoooo! Sorpresa es muy sencillo, pero para ello necesitamos los siguientes temas para entenderlo.


La definición de herencia: Como su nombre lo dice, la herencia es una transmisión de datos, hacia alguien que lo necesite. 

Para entender mejor esto, nos dimos la tarea de plantear el siguiente ejercicio en un diagrama.




Como podemos observar la clase PAPA o SUPERCLASE ya tiene atributos que son privados y que las clases que lo heredan pueden tener ese tipo de atributos, para utilizar los SET’s y los GET’s, ahora el código de las clases quedan de la siguiente forma.
Casa clase estará en un archivo diferente y en el mismo package.

Código de la Clase Persona.

public class Persona {
 private String Nombre;
 private String ApPaterno;
 private String ApMaterno;
 private int Edad;
 
 //SET's
 public void setNombre(String nombre){
  Nombre=nombre;
 }
 public void setApPaterno(String paterno){
  ApPaterno=paterno;
 }
 public void setApMaterno(String materno){
  ApMaterno=materno;
 }
 public void setEdad(int edad){
  Edad=edad;
 }
 //GET's
 public String getNombre(){
  return this.Nombre;
 }
 public String getApPaterno(){
  return this.ApPaterno;
 }
 public String getApMaterno(){
  return this.ApMaterno;
 }
 public int getEdad(){
  return this.Edad;
 }
 //Constructor que recibe 4 argumentos
 public Persona(String nom, String paterno, String materno, int edad){
  //se lo mandamos a los set para establecer los valores
  setNombre(nom);
  setApPaterno(paterno);
  setApMaterno(materno);
  setEdad(edad);
 }
 //Funciones o Metodos
 public void MostrarDatos(){
  System.out.println("::: PERSONA :::");
  System.out.println("Nombre: "+Nombre+
    "\nApellido Paterno: "+ApPaterno+
    "\nApellido Materno: "+ApMaterno+
    "\nEdad: "+Edad);
 }
}

Código de la Clase Estudiante.

//CLASE ESTUDIANTE QUE HEREDA DE PERSONA
 class Estudiante extends Persona{
  private String NomEscuela;
  private int numSemestre;
  //SET's
  public void setNombreEscuela(String escuela){
   NomEscuela=escuela;
  }
  public void setNumSemestre(int semestre){
   numSemestre=semestre;
  }
  //GET's
  public String getNombreEscuela(){
   return this.NomEscuela;
  }
  public int getNumSemestre(){
   return this.numSemestre;
  }
  //Constructor que recibe 6 argumentos
  public Estudiante(String nom, String paterno, String materno, int edad, String escuela, int semestre) {
   //Para heredar los atributos de la clase Persona utilizamos la palabra super
   //y dentro del parentesis escogemos las variables que queremos heredar
   super(nom, paterno, materno, edad);
   //Pasamos los datos a los SET que se reciben en el constructor
   setNombreEscuela(escuela);
   setNumSemestre(semestre);
  }
  //Funciones o Metodos
  public void MostrarDatos(){
   System.out.println("\n::: ESTUDIANTE :::");
   System.out.println("Nombre: "+super.getApMaterno()+
     "\nApellido Paterno: "+super.getApPaterno()+
     "\nApellido Materno: "+super.getApMaterno()+
     "\nEdad: "+super.getEdad()+
     "\nEscuela: "+NomEscuela+
     "\nSemestre: "+numSemestre);   
  }
}

Código de la Clase Empleado.

//CLASE EMPLEADO QUE HEREDA DE PERSONA
 class Empleado extends Persona{
  private int numEmpleado;
  private String Puesto;
  //SET's
  public void setNumeroEmpleado(int numero){
   numEmpleado=numero;
  }
  public void setPuesto(String puesto){
   Puesto=puesto;
  }
  //GET's
  public int getNumeroEmpleado(){
   return this.numEmpleado;
  }
  public String getPuesto(){
   return this.Puesto;
  }
  //Constructor que recibe 6 argumentos
  public Empleado(String nom, String paterno, String materno, int edad, int numero, String puesto){
   //Para heredar los atributos de la clase Persona utilizamos la palabra super
   //y dentro del parentesis escogemos las variables que queremos heredar
   super(nom, paterno, materno, edad);
   //Pasamos los datos a los SET que se reciben en el constructor
   setNumeroEmpleado(numero);
   setPuesto(puesto);
  }
  //Funciones o Metodos
  public void MostrarDatos(){
   System.out.println("\n::: EMPLEADO :::");
   System.out.println("Nombre: "+super.getApMaterno()+
     "\nApellido Paterno: "+super.getApPaterno()+
     "\nApellido Materno: "+super.getApMaterno()+
     "\nEdad: "+super.getEdad()+
     "\nEmpleado #: "+numEmpleado+
     "\nPuesto: "+Puesto);   
  }
}

Código de la Clase Principal.

//Creamos la clase principal 
 class Principal {
  public static void main(String [] args){
   //Creamos nuestros objetos y mandamos la informacion en orden
   Persona Jose = new Persona("Jose", "Ramires", "Hernandez", 40);
   Estudiante Pepe = new Estudiante("Luis","Rodriguez","Gomez", 20, "ESCOM",5);
   Empleado Maria = new Empleado("Maria","Iglesias","Jimenez", 35, 123456,"Analista");
   //Mandamos a llamar los datos resultantes de cada clase
   Jose.MostrarDatos();
   Pepe.MostrarDatos();
   Maria.MostrarDatos();
  }
}

Y todo este código o choro de código es para el siguiente resultado:


Como vieron la herencia no es tan complicada en JAVA a comparación de en C++, bueno compañeros esperamos que se haya entendido y si te gusto no olvides compartirlo con tus compañeros y sobre todo seguirnos en nuestras redes Sociales FACEBOOK, TWITTER y ahora por GOOGLE+.

No hay comentarios.:

Publicar un comentario

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *