<ul><li>HERENCIA </li></ul>TEMA
CAPACIDADES      Conocer  la propiedad de la orientación a objetos: Herencia.      Especificar jerarquía de clases.  ...
Herencia. Definición La Herencia es la relación que existe entre dos clases, en la que una clase derivada se crea a partir...
Herencia. Definición La relación de herencia se establece entre una nueva clase (referida aquí con el nombre  Nueva ) y un...
Herencia. Definición <ul><li>La relación de herencia se establece entre una clase  Nueva   y una clase  Existente . </li><...
Herencia. Definición public class  Nueva  extends  Existente  { ..... }  
Tipos de Herencia.    <ul><li>HERENCIA SIMPLE </li></ul><ul><li>es un tipo de herencia en la que una clase hereda el estad...
Tipos de Herencia.    <ul><li>HERENCIA MULTIPLE </li></ul><ul><li>E s un tipo de herencia en la que una clase hereda el es...
Ejemplo Herencia Múltiple
Herencia. Implementación Java Public class Empleado{ protected String codigo;  protected String apell, nomb, cargo; protec...
Herencia. Implementación Java. public void aumentasueldo(double porcentaje) { sueldo+=sueldo*porcentaje*100; }   public St...
Herencia. Implementación Java. public class Ejecutivo extends Empleado { double presupuesto; public Ejecutivo(String ncod,...
Herencia. Implementación Java ........ Ejecutivo jef=new Ejecutivo(“Juan”, “Perez”, “jefe logística”, 2000, 30000); jef.au...
Categoría protected: El especificador de acceso  protected  es equivalente al especificador private con el agregado de que...
 
Herencia y Constructores <ul><li>Los constructores de la clase base se invocan antes del constructor de la clase derivada....
Jerarquía de Clases
La clase Object Object es la raiz de la jerarquía de herencia (de implementación) en Java   Object define un conjunto de m...
Métodos de la clase clase Object <ul><li>   public boolean equals(Object o) :  Permite definir el criterio de igualdad uti...
Métodos de la clase clase Object <ul><li>  public final Class getClass(): clase que representa el tipo del objeto. </li></...
Ejemplo. Métodos clase Object class Punto implements Cloneable { private int x,y; public Punto(int a, int b) { x=a; y=b; }...
Ejemplo. Métodos clase Object public Object clone() { Object obj=null; try   { obj=super.clone();   } catch(CloneNotSuppor...
Ejemplo. Métodos clase Object public String toString() { String texto=&quot;origen: (&quot;+x+&quot;, &quot;+y+&quot;)&quo...
Ejemplo. Métodos clase Object public class TestP { public static void main(String[]args)throws IOException { int wa, wb; S...
Ejemplo. Métodos clase Object sal.println(&quot;Ingrese valor y: &quot;); temp=br.readLine(); wb=Integer.parseInt(temp); P...
Ejemplo. Métodos clase Object sal.println(&quot;segundo objeto2&quot;); Punto p2= (Punto) p1.clone();  temp=p2.toString();...
Ejemplo. Métodos clase Object   p1=null; p2=null; // Ejecutar el recolector de basura Runtime runtime = Runtime.getRuntime...
Java - Herencia APLICACIÓN DESARROLLADA
Enunciado aplicación Herencia Elabore una aplicación java que implemente herencia de figuras geométricas (cuadrado, triáng...
Pasos 1. Diseñe la interfaz visual.
Pasos
Pasos
2. Escribir atributos y métodos de la clase Figura public class Figura {  protected String nombre; protected double area; ...
3. Escribir atributos y métodos de la clase Poligono public class Poligono extends Figura {  protected double largo,ancho;...
4. Escribir atributos y métodos de la clase Circulo public class Circulo extends Figura { private double radio; public Cir...
5. Escribir atributos y métodos de la clase Cuadrado public  class Cuadrado extends Poligono { public Cuadrado(double m) {...
6. Escribir atributos y métodos de la clase Triangulo public class Triangulo extends Poligono { public Triangulo(double p,...
7. Definición de Objetos En la clase Frame1 definir los siguientes objetos: Cuadrado c1; Triangulo t1; Circulo cir;
8. Codificar botones void jButton1_actionPerformed(ActionEvent e) { double xa; Graphics g=getGraphics(); xa=Double.valueOf...
8. Codificar botones void jButton2_actionPerformed(ActionEvent e)  { txtlado.setText(&quot;&quot;); salida.setText(&quot;&...
8. Codificar botones void jButton4_actionPerformed(ActionEvent e) { txtbase.setText(&quot;&quot;); txtaltura.setText(&quot...
Ejecución
Ejecución
Ejecución
GRACIAS POR SU ATENCION
Upcoming SlideShare
Loading in …5
×

Tema2

3,558 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,558
On SlideShare
0
From Embeds
0
Number of Embeds
53
Actions
Shares
0
Downloads
134
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Tema2

  1. 1. <ul><li>HERENCIA </li></ul>TEMA
  2. 2. CAPACIDADES      Conocer la propiedad de la orientación a objetos: Herencia.      Especificar jerarquía de clases.     Determinar las diferencias entre Herencia Simple y Herencia Múltiple     Desarrollar aplicaciones en Java de problemas con orientación a objetos: Uso de Herencia.
  3. 3. Herencia. Definición La Herencia es la relación que existe entre dos clases, en la que una clase derivada se crea a partir de otra ya existente, denominada clase base Es un Mecanismo exclusivo y fundamental de la Programación Orientada a Objetos. Es el principal mecanismo que ayuda a fomentar y facilitar la reutilización del software
  4. 4. Herencia. Definición La relación de herencia se establece entre una nueva clase (referida aquí con el nombre Nueva ) y una clase ya existente (referida aquí con el nombre Existente ).
  5. 5. Herencia. Definición <ul><li>La relación de herencia se establece entre una clase Nueva y una clase Existente . </li></ul><ul><li>Sobre la clase que hereda de la existente: </li></ul><ul><li>Nueva hereda todas las características de Existente . </li></ul><ul><li>Nueva puede definir características adicionales. </li></ul><ul><li>Nueva puede redefinir características heredadas de Existente . </li></ul><ul><li>El proceso de herencia no afecta de ninguna forma a la superclase Existente . </li></ul><ul><li>Para que una nueva clase sea subclase de otra existente basta con añadir extends existente a continuación del nombre de la nueva: </li></ul>
  6. 6. Herencia. Definición public class Nueva extends Existente { ..... }  
  7. 7. Tipos de Herencia.   <ul><li>HERENCIA SIMPLE </li></ul><ul><li>es un tipo de herencia en la que una clase hereda el estado (estructura) y el comportamiento de una sola clase base. Es decir hay herencia múltiple cuando una clase hereda de una sola clase base. </li></ul>
  8. 8. Tipos de Herencia.   <ul><li>HERENCIA MULTIPLE </li></ul><ul><li>E s un tipo de herencia en la que una clase hereda el estado (estructura) y el comportamiento de más de una clase base. </li></ul><ul><li>Java no ha desarrollado la herencia múltiple, sólo permite la herencia de una sola clase base. En casos especiales es posible simular herencia múltiple con las interfaces. </li></ul>
  9. 9. Ejemplo Herencia Múltiple
  10. 10. Herencia. Implementación Java Public class Empleado{ protected String codigo; protected String apell, nomb, cargo; protected double sueldo; public Empleado(String ncod, String nape, String nnom, String ncar, double nsuel) { codigo=ncod; apell=nape; nomb=nnom; cargo=ncar; sueldo=nsuel; }  
  11. 11. Herencia. Implementación Java. public void aumentasueldo(double porcentaje) { sueldo+=sueldo*porcentaje*100; }   public Strint toString() { return apell+nomb; } }
  12. 12. Herencia. Implementación Java. public class Ejecutivo extends Empleado { double presupuesto; public Ejecutivo(String ncod, String nap, String nno, String ncar, double nsuel, double npres) { super(ncod, nap, nno, ncar, nsuel, npres); this.presupuesto=npres; }   public void asignapres(double p) { presupuesto=p; } }
  13. 13. Herencia. Implementación Java ........ Ejecutivo jef=new Ejecutivo(“Juan”, “Perez”, “jefe logística”, 2000, 30000); jef.aumentasueldo(); ........ .......
  14. 14. Categoría protected: El especificador de acceso protected es equivalente al especificador private con el agregado de que los atributos protegidos de una clase base son accesibles para los miembros de cualquier clase derivada de esa clase.
  15. 16. Herencia y Constructores <ul><li>Los constructores de la clase base se invocan antes del constructor de la clase derivada. </li></ul><ul><li>Si una clase base, es a su vez una clase derivada, sin constructores se invocan también en secuencia: constructor base, constructor derivada. </li></ul><ul><li>Los constructores no se heredan aunque los constructores por defecto se generan si se requiere. </li></ul>
  16. 17. Jerarquía de Clases
  17. 18. La clase Object Object es la raiz de la jerarquía de herencia (de implementación) en Java Object define un conjunto de métodos útiles, que pueden ser redefinidos en cada clase
  18. 19. Métodos de la clase clase Object <ul><li>  public boolean equals(Object o) : Permite definir el criterio de igualdad utilizado para los objetos de una determinada clase (el operador == únicamente chequea la igualdad de referencias). </li></ul><ul><li>public String toString() : Permite decidir la representación externa de un objeto. Por defecto es el valor de su referencia, etiquetada con el nombre de la clase. </li></ul><ul><li>protected Object clone() throws CloneNotSupportedException : devuelve una copia del objeto si la clase implementa la interfaz Cloneable. </li></ul>
  19. 20. Métodos de la clase clase Object <ul><li>  public final Class getClass(): clase que representa el tipo del objeto. </li></ul><ul><li>protected void finalize() throws Thorowable: (relacionado con liberar memoria)  </li></ul>
  20. 21. Ejemplo. Métodos clase Object class Punto implements Cloneable { private int x,y; public Punto(int a, int b) { x=a; y=b; } public Punto() { x=0; y=0; }
  21. 22. Ejemplo. Métodos clase Object public Object clone() { Object obj=null; try { obj=super.clone(); } catch(CloneNotSupportedException ex) { System.out.println(&quot;no se puede duplicar..&quot;); } return obj; } public void trasladar (int dx, int dy) { x=x+dx; y=y+dy; }
  22. 23. Ejemplo. Métodos clase Object public String toString() { String texto=&quot;origen: (&quot;+x+&quot;, &quot;+y+&quot;)&quot;; return texto; } protected void finalize() throws Throwable { System.out.println(&quot;Finalizando objetos...&quot;); } }
  23. 24. Ejemplo. Métodos clase Object public class TestP { public static void main(String[]args)throws IOException { int wa, wb; String temp; BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); PrintStream sal=System.out; sal.println(&quot;Ingrese valor x:&quot;); temp=br.readLine(); wa=Integer.parseInt(temp);
  24. 25. Ejemplo. Métodos clase Object sal.println(&quot;Ingrese valor y: &quot;); temp=br.readLine(); wb=Integer.parseInt(temp); Punto p1=new Punto(wa,wb); temp=p1.toString(); sal.println(temp); p1.trasladar(5,5); temp=p1.toString(); sal.println(temp);
  25. 26. Ejemplo. Métodos clase Object sal.println(&quot;segundo objeto2&quot;); Punto p2= (Punto) p1.clone(); temp=p2.toString(); sal.println(temp); if (p1.equals(p2)) { sal.println(&quot;Objetos iguales..&quot;); } else { sal.println(&quot;Objetos Diferentes.....&quot;); }
  26. 27. Ejemplo. Métodos clase Object p1=null; p2=null; // Ejecutar el recolector de basura Runtime runtime = Runtime.getRuntime(); runtime.gc(); runtime.runFinalization(); } }
  27. 28. Java - Herencia APLICACIÓN DESARROLLADA
  28. 29. Enunciado aplicación Herencia Elabore una aplicación java que implemente herencia de figuras geométricas (cuadrado, triángulo y círculo). Implementar métodos y botones para calcular el área y dibujar el objeto correspondiente.
  29. 30. Pasos 1. Diseñe la interfaz visual.
  30. 31. Pasos
  31. 32. Pasos
  32. 33. 2. Escribir atributos y métodos de la clase Figura public class Figura { protected String nombre; protected double area; public Figura(String xno) { nombre=xno; } public String getnonbre() { return &quot;Soy un &quot;+nombre; }   public double getarea() { return area; } }
  33. 34. 3. Escribir atributos y métodos de la clase Poligono public class Poligono extends Figura { protected double largo,ancho; public Poligono(String xn, double a, double b) { super(xn); largo=a; ancho=b; } public double getlar() { return largo; } public double getan() { return ancho; } }
  34. 35. 4. Escribir atributos y métodos de la clase Circulo public class Circulo extends Figura { private double radio; public Circulo(double ra) { super(&quot;circulo&quot;); radio=ra; }   public void areacir() { area=3.1415*radio*radio; }   public void dibujacir(Graphics g) { int xl, xa; int tx=(int)radio; int ty=(int)radio; g.drawOval(300,200,tx,tx); } }
  35. 36. 5. Escribir atributos y métodos de la clase Cuadrado public class Cuadrado extends Poligono { public Cuadrado(double m) { super(&quot;cuadrado&quot;,m,m); }   public void areacuad() { area=largo*ancho; } public void dibujacuad(Graphics g) { int xl, xa; xl=(int)largo; g.drawLine(300,200,300+xl,200); g.drawLine(300+xl,200,300+xl,200+xl); g.drawLine(300+xl,200+xl,300,200+xl); g.drawLine(300,200+xl,300,200); } }
  36. 37. 6. Escribir atributos y métodos de la clase Triangulo public class Triangulo extends Poligono { public Triangulo(double p, double q) { super(&quot;triangulo&quot;,p,q); } public void areatrian() { area=0.5*largo*ancho; }   public void dibujatrian(Graphics g) { int xl, xa; xl=(int)largo; xa=(int)ancho; g.drawLine(300,200,300+xl,200); g.drawLine(300+xl,200,300+xl,200+xl); g.drawLine(300+xl,200+xl,300,200); } }
  37. 38. 7. Definición de Objetos En la clase Frame1 definir los siguientes objetos: Cuadrado c1; Triangulo t1; Circulo cir;
  38. 39. 8. Codificar botones void jButton1_actionPerformed(ActionEvent e) { double xa; Graphics g=getGraphics(); xa=Double.valueOf(txtlado.getText()).doubleValue(); c1=new Cuadrado(xa); salida.append(&quot;&quot;+c1.getnonbre()); c1.areacuad(); salida.append(&quot; Area Cuadrado: &quot;+c1.getarea()); c1.dibujacuad(g); }
  39. 40. 8. Codificar botones void jButton2_actionPerformed(ActionEvent e) { txtlado.setText(&quot;&quot;); salida.setText(&quot;&quot;); }   void jButton3_actionPerformed(ActionEvent e) { double xa,xb; Graphics g=getGraphics(); xa=Double.valueOf(txtbase.getText()).doubleValue(); xb=Double.valueOf(txtaltura.getText()).doubleValue(); t1=new Triangulo(xa,xb); salida1.append(&quot;&quot;+t1.getnonbre()); t1.areatrian(); salida1.append(&quot; Area Triangulo: &quot;+t1.getarea()); t1.dibujatrian(g); }
  40. 41. 8. Codificar botones void jButton4_actionPerformed(ActionEvent e) { txtbase.setText(&quot;&quot;); txtaltura.setText(&quot;&quot;); salida1.setText(&quot;&quot;); }   void jButton5_actionPerformed(ActionEvent e) { double xra; Graphics g=getGraphics(); xra=Double.valueOf(txtradio.getText()).doubleValue(); cir=new Circulo(xra); salida2.append(&quot;&quot;+cir.getnonbre()); cir.areacir(); salida2.append(&quot; Area Circulo: &quot;+cir.getarea()); cir.dibujacir(g); }
  41. 42. Ejecución
  42. 43. Ejecución
  43. 44. Ejecución
  44. 45. GRACIAS POR SU ATENCION

×