P. 1
webgrafia

webgrafia

4.67

|Views: 12.486|Likes:
Publicado porapi-3704165

More info:

Published by: api-3704165 on Oct 14, 2008
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

03/18/2014

pdf

text

original

Universidad De Panamá Centro Regional Universitario De Veraguas Licenciatura En Informática Para La Gestión Educativa Y Empresarial Programación IV Laboratorio #3 Jerarquía

y Herencia PROFESOR Diego Santimateo

Estudiante Mendoza, Maritza 6-708-600 Fecha de entrega 30/11/2006

1

Índice

Introducción.......................................................................................................................3 Webgrafía.......................................................................................................................4 Ejemplificación de los conceptos..................................................................................7 1- Herencia:...............................................................................................................7 2- Sobrecarga:............................................................................................................8 3- Polimorfismo:........................................................................................................9 4- Clase abstracta:....................................................................................................10 Aplicación ejecutable enfocada a la realidad..............................................................11 Código.........................................................................................................................12 Glosario...........................................................................................................................18 Conclusión.......................................................................................................................20

2

Introducción

El tema que se presenta en este trabajo, Jerarquía y Herencia, es lo suficientemente interesante y considero que temas de esta calidad se deben investigar muy bien para aclarar bien las dudas que se tengan. En esta investigación se presentan una serie de fuentes de información con su comentario, es relevante mencionar que hay muchos sitios en los que se puede encontrar este tipo de información, pero las que se presentan aquí, fueron a mi concepto las mejores o mejor dicho las que cumplieron con mis expectativas. Cualquiera de estas referencias que visite, dejan notar la sencillez para definir los conceptos, de manera que, para mi fue más sencillo comprenderlos, ya que no se usa un lenguaje muy técnico. Luego de esta previa investigación se presentan unos ejemplos sobre herencia, clase abstracta, polimorfismo y sobrecarga, seguido de una breve explicación. Para terminar se presenta también una aplicación enfocada a la realidad donde se utilizan todos los conceptos antes mencionados.

3

Webgrafía 1)- Antonio Bel Puchol. Apuntes lenguaje java. Ultima actualización - 17-Junio-2001. abelp@arrakis.es. Fecha de acceso[7/11/2006]. Disponible en Internet desde: http://www.arrakis.es/~abelp/ApuntesJava/Herencia.htm. Comentario: En esta pagina se presenta un contenido muy elemental para iniciarse en java, en esta página se puede comprender el contenido fácilmente, de manera en que captes lo más importante, si la visitas podrás observar como tienes un índice bien elaborado, en que te inician diciéndote que es java, luego te explican un poco sobre tipos de variables, métodos, clases, constructores etc, y lo más importante también se habla sobre la herencia y las clases abstractas tema de mi preferencia ahora mismo, es relevante mencionar que en esta página se dice que una herencia es una extensión de otra, esto quiere decir que es igual que otra clase pero además tiene una característica especial que la define o la hace ser un tanto diferente. También se definió que un método abstracto es un método declarado en una clase para el cual esa clase no proporciona la implementación (el código) y que una clase abstracta es una clase que tiene al menos un método abstracto. 2)- M. Carmen Fernández Panadero, Julio Villena Román Jose María Rubio Manso Jorge Ruiz Magaña. Herencia en Java. E-mail: secre@it.uc3m.es. Fecha de acceso[7/11/2006]. Disponible en Internet desde: http://www.it.uc3m.es/tsirda/practicas/P13/enunciado.html Comentario: Esta es una página de la universidad Carlos III de Madrid, se encuentran varios temas entre los que pude leer la herencia en Java, ellos muestran muy buenos ejemplos con figuras que dejan ver como se hace la herencia, estos ejemplos son bastante matemáticos pero se pueden entender, ellos muestran primero la figura y luego un código. 3)- Agustín Froufe. Web sip. Tutorial de Java. 1996-1999. Ultima Actualización: lunes, 17 de Mayo de 1999. E-mail: froufe@arrakis.es. Fecha de acceso[8/11/2006]. Disponible en Internet desde: http://www.itapizaco.edu.mx/paginas/JavaTut/froufe/introduccion/indice.html. Comentario: Cuenta con un buen índice donde encuentras desde que es java, una introducción a este lenguaje, hablan también del JDK, mencionan aquí también que es la OOP, presentan ejemplos sobre clases, objetos, subclases, superclases, this, subclases, además de dar a conocer su concepto. 4)- Angel Franco García.Programación en lenguaje Java. Última actualización - Enero de 2000. -Procedimientos Numéricos en Lenguaje Java: Diciembre de 2001. Fecha de acceso[8/11/2006]: Disponible en Internet: http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/herencia/herencia.htm Comentario: Esta página es lo bastante completa, se puede leer en ella algo sobre clases y objeto, la herencia y polimorfismo, aquí definen que herencia es la propiedad que permite la creación de nuevas clases a partir de clases ya existentes, y que el polimorfismo se implementa por medio de las funciones abstractas, en las clases derivadas se declara y se define una función que tiene el mismo nombre, el mismo

4

número de parámetros y del mismo tipo que en la clase base, pero que da lugar a un comportamiento distinto, específico de los objetos de la clase derivada. 5-) AgustÃn Froufe. Tutorial de Java. Ultima Actualización: 1 de Enero de 1997. Fecha de acceso[10/11/2006]: Disponible en Internet desde: http://www.cica.es/formacion/JavaTut/ Comentario: Esta página es muy buena, considero que es muy completa, tiene un índice bastante extenso, en que tienes para escoger sobre que quieres leer, se da una introducción al lenguaje java, hay aplicaciones, hablan desde los orígenes de java, crear clases objetos, este autor escribió también conceptos sobre herencia, polimorfismo. Escribe que la palabra clave extends se usa para generar una subclase de un objeto. Hay muchas cosas muy interesantes que mencionar, este autor después de un concepto coloca un código para así asegurarse de que halla una comprensión bastante completa. 6)- Daniel Rodríguez Herrera. Java en Castellano. 1999-2006.Fecha acceso[10/11/2006]. Disponible en Internet desde: http://www.programacion.com/java/tutorial/intjava/9/#polimorfismo de

Comentario: Esta página me gusto por los ejemplos que se presentan, son muy buenos, esta página es muy completa hay definiciones sobre los conceptos, de herencia, polimorfismo, etc, además de una breve explicación para cada ejemplo. 7)- Ing. Carlos Alberto Román Zamitiz. Facultad de Ingeniería, UNAM. Temas especiales de computación. carlos@fi-b.unam.mx. Fecha de acceso[ 10/11/2006]. Disponible en Internet desde: http://www.fi-b.unam.mx/pp/profesores/carlos/toc.html Comentario: Esta página me pareció muy completa y considero que una de las mejores en las que investigue, cuenta con dos índices generales, uno trata sobre el análisis y diseño orientado a objetos con UML( tema muy interesante sobre el cual ya investigamos en trabajos anteriores, pero considero que esta página es muy completa en lo que se refiere a este tema ), también cuenta con otro índice donde trata sobre programación orientada a objetos con java en cual se explican desde la definición de muchos términos y algunos ejemplos. 8)- Miguel Ángel Manzanedo del Campo. Guía Rápida de aprendizaje del lenguaje Java. Francisco José García Peñalvo. Versión 1.0, octubre 1998. Publicado por: Ignacio Cruzado Nuño. icruzado@solaria.emp.ubu.es. Fecha de acceso[13/11/2006]. Disponible desde: http://pisuerga.inf.ubu.es/lsi/Invest/Java/Tuto.Oct98/2_Lengua/4_Herenc.htm Comentario: Esta página fue elaborada en la universidad de Burgos por los estudiantes, aquí en esta página se definen muchos conceptos, y también fueron colocados algunos ejemplos para la mejor comprensión, de los temas que realmente me interesan, solo trataron uno a fondo y este es la herencia, de los demás es decir polimorfismo, sobrecarga etc, no encontré nada relevante.

5

9)- Manuel Abellanas. Caíptilo 2, El lenguaje Java. mabellanas@fi.upm.es. Fecha de acceso[13/11/2006]. Disponible desde:http://www.dma.fi.upm.es/mabellanas/voronoi/java/java.htm#2.7 Comentario: Esta es una página se puede decir bastante buena, cuenta con definiciones bastantes completas sobre los principios básicos de la programación orientada a objetos es decir, encapsulado, herencia y polimorfismo, lo que no podrás encontrar en esta página son ejemplos referentes a estos temas, pero tengo que mencionar que esta página además de tratar sobre los temas antes mencionados, también este autor escribe sobre la historia de java, sus inicios, las características de java, java y la orientación a objetos, son temas son muy útiles. 10)- M.C. Bernabé Ortiz y Herbert . Paradigma de la orientación a objetos, Lenguaje Java. Acosta Corona Jorge, Núñez Geraldo José Luis, Sández Bareño Sandra Yadira.Diseño de la página web: Laura González Partida . 20 de Junio del 2001. Fecha de acceso[13/11/2006]. Disponible desde: http://www.itlp.edu.mx/posgrado/lengprog/java.html Comentario: Esta es una página muy sencilla, pero a la vez muestra cierto contenido bastante interesante, habla sobre herencia, polimorfismo, sobre encapsulamiento, hay cierto ejemplos que tratan de explicar dichos conceptos.

6

Ejemplificación de los conceptos 1- Herencia: public class Herencia { public static void main(String[] args) { Gato gat = new Gato(); gat.mover(); } } import java.text.*; import javax.swing.*; class Mamifero { String especie= 波 ato� color="negro"; public void mover() { System.out.println("Soy el mam 凬 ero jejeje"); } } class Gato extends Mamifero { int numero_patas=4; public void mover() { System.out.println("jajaja soy el gato jajajajaj"); System.out.println(""+especie); System.out.println(""+color); System.out.println(""+numero_patas); } } Gato - N 伹 ero_patas Clase herencia, donde se crea un objeto llamado gat de la clase Gato, y se llamado al m 騁 odo mover de la clase Gato. Mam 凬 ero -Especie - Color

Clase Mam 凬 ero que contiene dos atributos especie, que en este caso le asigne un valor, y color a la que tambi 駭 se le asigno el valor 渡 egro� esta clase tambi 駭 contiene un m 騁 odo llamado mover() el mismo se encarga de imprimir un mensaje.

Como pueden observar la clase Gato se deriva de Mam 凬 ero, es decir que ella recibe los atributos con los que cuenta la clase mam 凬 ero, es decir que esta clase gato adem 疽 de su atributo n 伹 ero _ patas tambi 駭 va ha tener especie y color, y esta clase cuenta con un m 騁 odo llamado mover que se encargar�de imprimir en pantalla las tres variables.

7

2- Sobrecarga: import java.text.*; public class Sumar { public static void main(String[] args) { float x = 1, y = 2; int v = 3,w = 5; System.out.println(suma(x,y)); System.out.println(suma(v,w)); } public static float suma(float a, float b) { System.out.println("sumar�dos n 伹 eros flotantes"); return (a+b); } public static int suma(int a, int b) { System.out.println("sumar�dos n 伹 eros enteros"); return (a+b); } Esta clase Sumar cuenta con dos m 騁 odos p 炻 licos llamados suma, en el main lo que se hace es llamar uno por uno a cada m 騁 odo.

M 騁 odo llamado suma, el cual recibir�como par 疥 etros dos valores flotantes, indicar�un mensaje que indica la operaci que se est�realizando y luego retorna estos valores al main. Igualmente que anterior se llama suma, pero su diferencia radica en que los par 疥 etros que se reciben son diferentes en este caso enteros.

}

8

La clase Profesi contiene el m 騁 odo main(), y es aqu�es donde se crean los objetos de las clases que existen, estas son Profesionales, arquitecto, m import javax.swing.*; 馘 ico, tengo que mencionar que las clases import java.text.*; arquitecto y m 馘 ico se derivan de la clase Profesionales, es decir que esta le pasa o le hereda public class Profesion { sus atributos, en este caso nombre. Aqu�en esta clase tambi 駭 se llama al m 騁 odo trabajo que m public static void main(String args[]) 疽 adelante lo ver 疣 en todas clases, como se { podr 疣 percatar aqu�se hace una asignaci de Profesionales Profess = new Profesionales(); objetos, si bien pueden observar Profess es un Arquitecto Arquic = new Arquitecto(); objeto de la clase Profesionales, lo mismo pasa Medico Medic = new Medico(); con Arquic es un objeto de la clase Arquitecto y as�mismo Medic es un objeto de la clase medico, Profess.trabajo(); // trabaja una persona y luego por medio de el objeto Profess se llama al Profess = Arquic; m 騁 odo trabajo ubicado en la clase profesionales, Profess.trabajo(); // trabaja un arquitecto luego el objeto Arquic se asigna a el objeto Profess = Medic; Profess y este vuelve a llamar al m 騁 odo trabajo, Profess.trabajo(); // trabaja un medico pero este ya esta en la clase Arquitecto, y para } terminar el objeto Medic es asignado a Profess y } nuevamente Profess llama al m 騁 odo trabajo pero en este momento este m 騁 odo esta en la clase M 馘 ico, cada m 騁 odo imprime un import javax.swing.*; mensaje. import java.text.*; Clase Profesionales, contiene un class Profesionales{ atributo que es nombre, esta clase private String nombre="empleado"; tambi 駭 cuenta con el m 騁 odo public void trabajo(){ llamado trabajo. Esta es la clase base System.out.println("yo trabajo"); o super, ella heredar�su atributo } ahora alas siguientes clases. } class Arquitecto extends Profesionales{ Clase Arquitecto se deriva public void trabajo(){ de la clase Profesionales y System.out.println("Yo trabajo de 8:00 a 4:00"); tambi 駭 cuenta con el m } 騁 odo igualmente llamado } trabajo, esto es importante observar class Medico extends Profesionales { Clase M 馘 ico derivada public void trabajo() { tambi 駭 de la clase System.out.println("yo trabajo las 24 horas"); profesionales, cuenta } as�mismo con su m 騁 } odo trabajo. 3- Polimorfismo: Es muy importante mencionar que en el polimorfismo, se da la utilizaci de los m 騁 odos con nombres iguales y tambi 駭 se da a la vez la herencia o bien si deseas puedes llamarla jerarqu 僘 , despu 駸 de leer sobre estos conceptos puedo decir al igual que otros autores que jerarqu 僘 es lo mismo que la herencia.

9

4- Clase abstracta: import javax.swing.*; import java.text.*; class Princi{ public static void main(String args[]) { Medico obj = new Medico(); obj.imprimir(); } } import javax.swing.*; import java.text.*; abstract class Profesionales { String nombre; public abstract void imprimir(); Esta es la clase abstracta llamada Profesionales que contiene dentro de si un m 騁 odo abstracto llamado imprimir. Clase Principal en la cual creo un objeto de la clase Medico, y luego mediante este objeto se llama al m 騁 odo imprimir.

} import javax.swing.*; import java.text.*; class Medico extends Profesionales { public void imprimir(){ System.out.println("Soy un medico muy profesional"); } } Clase Medico que se extiende de profesionales y que contiene dentro de si un m 騁 odo llamado imprimir y que manda un mensaje.

10

Aplicación ejecutable enfocada a la realidad

11

Código

12

13

14

15

16

17

Glosario

1- Herencia: Es el mecanismo por el cual, se puede crear nuevas clases a partir de otra ya existente, a la clase de la cual se crean las nuevas clases se le llama clase base y a las que heredan se les llaman derivadas, las derivadas heredan los datos y funciones de la clase base. La palabra clave extends se usa para generar una subclase. La herencia permite compartir automáticamente métodos y datos entre clases, subclases y objetos. En la herencia se puede reutilizar el código. Existen dos tipos de herencia la simple y la múltiple, la simple indica que se pueden definir varias clases de una clase base o inicial y la múltiple que se pueden definir varias clases de dos o más clases iniciales. En resumen la herencia es partir de las situaciones más generales e ir derivando hacia las más particulares, creando categorías, de la misma forma en que nosotros pensamos y actuamos. 2- Clase abstracta: Cuando una clase contiene un método abstracto tiene que declararse abstracta. No obstante, no todos los métodos de una clase abstracta tienen que ser abstractos. Las clases abstractas no pueden tener métodos privados, ni estáticos (no se podrían implementar). Una clase abstracta tiene que derivarse obligatoriamente, no se pueden crear objetos de una clase abstracta. Las clases abstractas solamente se pueden usar como clases base para otras clases. Hay que mencionar que para crear una clase o método abstracto se utiliza la palabra reservada abstract. 3- Sobrecarga: Esta se refiere a que pueden existir varios métodos dentro de una clase que se llamen igual, siempre y cuando su lista de parámetros sea distinta. Java puede detectar cual es el método que debe ejecutar mediante el número y tipo de argumentos. 4- Polimorfismo: La combinación de herencia y enlace dinámico se denomina polimorfismo. El polimorfismo es, por tanto, la técnica que permite pasar un objeto de una clase derivada a funciones que conocen el objeto solamente por su clase base. El polimorfismo (una interfaz múltiples métodos) es uno de los pilares básicos de la programación orientada a objetos. Java implementa el polimorfismo por medio de la sobrecarga de métodos. El polimorfismo es otra de las grandes característica de la POO. La palabra polimorfismo deriva de poli (múltiples) y del término griego morfos (forma). Es decir, múltiples formas. 5- Jerarquía: En esta estructura jerárquica, cada clase tiene sólo una clase padre. La clase padre de cualquier clase es conocida como su superclase. La clase hija de una superclase es llamada una subclase. 6- Interfaces: Una interface es una variante de una clase abstracta con la condición de que todos sus métodos deben ser asbtractos. Si la interface va a tener atributos, éstos deben llevar las palabras reservadas static final y con un valor inicial ya que funcionan como constantes por lo que, por convención, su nombre va en mayúsculas.

18

7- Método Abstracto: Un método abstracto es un método declarado en una clase para el cual esa clase no proporciona el código. Un método abstracto debe estar en una clase abstracta. 8- This: Esta palabra clave nos proporciona el poder acceder a variables de instancia de una clase, es decir hace referencia a los miembros de la propia clase en el objeto actual. 9- Sub clases: Se puede decir que cuando se puede crear nuevas clases por herencia de clases ya existentes, hay que recordar pues que para crear subclases se debe utilizar la palabra reservada extends. 10- Super Clases: La super clase es aquella de la cual se puede heredar otras clases. Si yo necesitará llamar al método padre dentro de una clase se puede hacer referencia al método padre con la palabra reservada super. 11- Extends: Esta es una palabra reservada que se utiliza para crear una subclase, es decir se deriva de la super clase mediante esta palabra reservada. 12- Encapsulamiento: Se dice que una clase esta totalmente encapsulada cuando todas sus propiedades son privadas y solamente pueden ser cambiadas mediante métodos, es decir es el empaquetamiento de las variables de un objeto con la protección de sus métodos.

19

Conclusión

Este trabajo ha sido muy importante ya que esta investigación me enseño a investigar, a buscar la información necesaria para así llegar a obtener los suficientes conocimientos y así poder crear los diferentes ejemplos necesarios para comprender que clase abstracta, polimorfismo, herencia y sobrecarga, considero que el elaborar estos ejemplos de cada concepto afianza más mis conocimientos ya que sabes primero el concepto y luego logras ver lo que en realidad hace el mismo, trabajos de esta calidad vale la pena realizarlos, por que se obtienen muchos conocimientos. Es importante mencionar que el uso del polimorfismo y de la herencia, sobrecarga son muy eficientes, ya que al realizar estos ejemplos me sorprendía como una clase heredaba a otra sub-clase sus atributos, y como esta podía utilizarlos sin dificultad, me gusto ver como podía utilizar métodos llamados iguales en diferentes clases, la clase abstracta me llamo la atención por que cuando leí su concepto, pensé que era asurdo tener una clase abstracta, ya que ella posee solamente métodos abstractos, pero después este mismo método lo utilice en otra clase que era una subclase y así este método mandaba su respectivo mensaje.

20

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->