UNIVERSIDAD DE PANAMÁ CENTRO REGIONAL UNIVERSITARIO DE VERAGUAS FACULTAD DE INFORMÁTICA ELECTRÓNICA Y COMUNICACIONES LICENCIATURA EN INFORMÁTICA PARA LA GESTIÓN EDUCATIVA Y EMPRESARIAL
TEMA: “LA PROGRAMACIÓN ORIENTADA A OBJETO JERARQUÍA DE CLASES”
MATERIA: PROGRAMACIÓN IV
PROFESOR: DIEGO SANTIMATEO
ESTUDIANTE: ERIC L GONZÁLEZ S 9- 723- 2416
FECHA DE ENTREGA: 30/11/06
II- SEMESTRE 2006
OOP- Jerarquía de Clases
-1-
Eric L González S
ÍNDICE Pág. INTRODUCCIÓN.....................................................................................................................3 JERARQUÍA DE CLASES:.......................................................................................................5 SUPERCLASE Y SUBCLASE..................................................................................................6 HERENCIA................................................................................................................................7 POLIFORMISMO:...................................................................................................................11 LA PALABRA RESERVADA FINAL:....................................................................................14 DIAGRAMA UML..................................................................................................................20 .................................................................................................................................................20 CONCLUSIÓN........................................................................................................................21 REFERENCIA BIBLIOGRÁFICA..........................................................................................22
OOP- Jerarquía de Clases
-2-
Eric L González S
INTRODUCCIÓN Es éste trabajo hablaremos uno de los aspectos más importantes de la POO el cual es la Jerarquía de Clases en el cual se describen los diferentes aspectos que abarca la Jerarquía de clases. Se ha distribuido de una forma en la cual se pueda apreciar y comprender fácilmente todo lo referente a la Jerarquía de Clases de un modo ordenado en el cual por medio de ejemplos y conceptos se detallarán los aspectos más importantes de la Jerarquía de Clases. Al final de todos los conceptos y ejemplos se muestra una referencia bibliográfica o webgrafía por así si se desea ampliar más las diferentes características referentes a éste tema. Sin más que decir se agradece la buena utilización de éste trabajo y espero sirva para cualquier persona que desea ampliar sus conocimientos sobre la POO.
OOP- Jerarquía de Clases
-3-
Eric L González S
OOP- Jerarquía de Clases
-4-
Eric L González S
JERARQUÍA DE CLASES: Según el Dictionary of OT la jerarquía es “cualquier clasificación u ordenación de abstracciones en una estructura de árbol. Algunos tipos de Jerarquía son: Jerarquía de agregación, jerarquía de clases, jerarquía de herencia, jerarquía de partición, jerarquía de especialización, jerarquía de tipo. Éste concepto es sumamente importante ya que con ello conocemos la importancia de dividir los problemas en una jerarquía de ideas. Los
dos
tipos
importantes
de
jerarquía
son:
la
de
generalización/especialización y la de todo/parte. La jerarquía de generalización/especialización se basa en que las propiedades de una categoría general se transmiten a todas las categorías que se especializan o subcategorías. En la OO, la jerarquía de clases significa un conjunto de clases relacionadas por la jerarquía de generalización/especialización. A continuación se muestra un ejemplo en el que se describen tres figuras las cuales poseen diferentes niveles de jerarquía:
Consideremos las figuras planas cerradas como el rectángulo, y el círculo. Tales figuras comparten características comunes como es la posición de la figura, de su centro, y el área de la figura, aunque el procedimiento para calcular dicha área sea completamente distinto dependiendo del nivel de las clases. Podemos por tanto, diseñar una jerarquía de clases, tal que la clase base denominada Figura, tenga las características comunes y cada clase derivada las específicas. OOP- Jerarquía de Clases
-5-
Eric L González S
Como se muestra en el ejemplo cada figura tiene su nivel de jerarquía a continuación se explicará más detalladamente cada nivel. La clase Figura es la que contiene las características comunes a dichas figuras concretas por tanto, no tiene forma ni tiene área. Esto lo expresamos declarando Figura como una clase abstracta, declarando la función miembro area abstract. LAS CLASES ABSTRACTAS solamente se pueden usar como clases base para otras clases. No se pueden crear objetos pertenecientes a una clase abstracta. Sin embargo, se pueden declarar variables de dichas clases. La característica de hacer una Clase/Método abstract reside en que no puede ser generada una instancia de la misma, este comportamiento se demuestra en el método principal (main). Como se muestra en las figuras cada clase tiene diferentes niveles, por decirlo así, de importancia de ahí se desprenden los términos de Superclase y Subclases. SUPERCLASE Y SUBCLASE
FIGURA
CIRCULO
OOP- Jerarquía de Clases
La clase “Padre” o Superclase se llama de ese modo debido a que de la misma se desprenden otras clases llamadas “Subclases” las cuales heredarán sus atributos y operaciones, una Superclase puede contener cualquier número de Subclases.
La Clase Circulo es una de las Subclases de la Superclase Figura, ésta a su vez puede convertirse en una Superclase si de ella se desprenden otras clases. La misma posee su nivel de importancia y a su vez hereda los métodos y atributos de la superclase.
-6-
Eric L González S
2 Ejemplo
En éste segundo ejemplo podemos ver que al contrario del anterior del anterior, que de una subclase pueden desprenderse otras subclases lo que convierte a ésta Subclase en una Superclase: o o o o
A es la superclase de B, C y D. D es la superclase de E. B, C y D son subclases de A. E es una subclase de D.
Una de las características que no se pueden apreciar en éstas figuras es que cada Subclase obtiene “hereda”, características de su Clase Padre de aquí proviene el término de herencia que detallaré a continuación.
HERENCIA Es una propiedad esencial de la Programación Orientada a Objetos que consiste en la creación de nuevas clases a partir de otras ya existentes éstas nuevas clases obtienen propiedades de sus clases padres, las cuales propagan sus atributos y operaciones a sus subclases. Las Subclases admiten la definición de nuevos atributos, así como crear, modificar o inhabilitar propiedades.
OOP- Jerarquía de Clases
-7-
Eric L González S
La herencia ofrece una ventaja importante, ya que permite la reutilización del código. Hay dos tipos de herencia las cuales son: Herencia Simple y Herencia Múltiple. La primera indica que se pueden definir nuevas clases solamente a partir de una clase inicial mientras que la segunda indica que se pueden definir nuevas clases a partir de dos o más clases iniciales. Java sólo permite herencia simple. En la herencia los constructores no son heredados. El termino Herencia ha sido tomado prestado de la Biología donde por ejemplo afirmamos que un niño tiene la cara de su padre, que ha heredado ciertas facetas físicas o del comportamiento de sus progenitores. Entre otras palabras son las diferentes características que comparten unas clases con las otras y así sucesivamente como se nos explica en el ejemplo de un hijo con su padre. Comentario: Al realizar éste investigación me he encontrado con un gran problema y es que al observar los ejemplos de las diferentes clases creadas por los diferentes autores, muchas de ellas pueden producir discrepancias debido a que es muy difícil la creación de clases y esto produce de que al crearlas se omiten por ejemplo muchas características o tienden muchas veces a ser creadas dependiendo del punto de vista del autor o entre otras palabras la forma como el ve las cosas de nuestra realidad. De ésta manera he recurrido a una investigación más profunda con el fin de que no se escapen ninguno de éstos detalles y no imponer un punto de vista personal con respecto a la creación de mis clases, para poder así de éste modo evitar errores y que las clases que se vallan a crear sean 100% correctas. Sin antes empezar me veré obligado a incluir ciertas informaciones las cuales se utilizarán para una mejor comprensión pero claro está no son necesaria para que usted como programador lleve a cabo la creación de sus clases. Dicha información puede ser
OOP- Jerarquía de Clases
-8-
Eric L González S
encontrada en cualquier libro de biologías y ésta será nuestra referencia para realizar todos nuestros ejemplos. Ejemplo de Jerarquía:
MAMÍFEROS
COYOTE
PERRO
Las Superclase definida con el nombre de Mamíferos Las Subclases se definen con los nombres: Coyote y Perro. public class Mamifero { private String clase="Mammalia"; private String cientifname_clase="Animales Vertebrados"; private String reino="Animal"; private String taxonomia; /*Taxonomia: Los mamíferos vivientes en la actualidad se pueden agrupar en dos sub clases las cuales son: Prototheria y Theria. // Ésta información o comentario no tiene nada que ver con a programación que se lleve a cabo solo es para simular cuales serían las respuestas del investigador a la hora de utilizar el software en éste caso seria Prototheria y Theria para asignarle algún valor a la variable taxonomía. public Mamifero (String dar_Taxonomia) { OOP- Jerarquía de Clases
-9-
Eric L González S
/* En ésta parte se simula por ejemplo que el investigador después de haber investigado utiliza su software para indicar cual es la taxonomía de la especie por eso utiliza el constructor para inicializar esta variable y asignarle ésta característica*/ taxonomia=_dar_Taxonomia; } // métodos get y set correspondientes //… } // Fin de la Clase La clase Mamífero quedará definida de la siguiente manera: MAMÍFERO - clase - cientifname_clase reino - taxonomía getclase (...) getreino(...) gettaxonomia(...)
class Coyote extends Mamifero { // Éstas serán las nuevas variables que tendrá ésta clase además de los atributos y métodos heredadas de la clase Padre o Superclase. private String cientific_name="Canis Latrans"; private String color; public Coyote(String clase) { // El uso de la palabra “super” es importante ya que con ello es que le asignamos los atributos y métodos de la clase padre. super(clase); }
OOP- Jerarquía de Clases
- 10 -
Eric L González S
public String getcientificname() { return(cientific_name); } } // Nótese que no se ha creado ningún método con los nombres de los métodos de la clase padre, más sin embargo éstos métodos de la clase padre podrán ser utilizados por la clase hija llamada Coyote.//… COYOTE - clase - cientifname_clase reino - taxonomía - nacimiento - cientific_name - color getclase (...) getreino(...) gettaxonomia(...) getcientificname(…)
Como se puede ver la Subclase Coyote hereda los atributos y métodos de la Superclase Mamíferos. además ella posee “nuevos atributos” y “métodos” diferentes a los de la clase Padre.
POLIFORMISMO: El polimorfismo es una nueva característica aportada por la OOP. Esta propiedad indica la posibilidad de definir varias operaciones con el mismo nombre, diferenciándolas únicamente en los parámetros de entrada. Dependiendo del objeto que se introduzca como parámetro de entrada, se elegirá automáticamente cual de las operaciones se va a realizar. OOP- Jerarquía de Clases
- 11 -
Eric L González S
El polimorfismo como bien lo indica su nombre poli=”varias” morfismo=”forma” indica varias formas en la cual las los clases y sus métodos se pueden transformar o variar, para cambiar y adecuar su utilización como podrán ver más adelante en los diferentes ejemplos en la cual por medio del polimorfismo se cambiara algunos métodos de la clase hija. Entre los tipos de polimorfismo tenemos: a) Selección dinámica de Método Se da cuando los métodos se seleccionan en función del tipo de instancia en tiempo de ejecución, no a la clase en la cual se está ejecutando el método actual. b) Sobrescritura de método Ésta es una característica de la Jerarquía de herencias, en la cual se vuelva a escribir el cuerpo de un método, para que el método tenga una funcionalidad diferente dependiendo del nivel de abstracción en que nos encontremos. Por ejemplo en una herencia entre la clase SerVivo y una clase hija Persona; si la clase SerVivo tuviese un método alimentarse(), debería volver a escribirse en el nivel de Persona¸ puesto que una persona no se alimenta ni como un Perro ni como una Planta… c) Sobrecarga del método A veces se necesita crear más de un método con el mismo nombre, pero con lista de parámetros distinta. Los métodos son llamados basándose en el número y tipo de parámetros que se les pase. A éste número de parámetros con tipo de secuencia específica se llama signatura de tipo. Java utiliza ésta signatura de tipo para ver a cual método llamará. Para distinguir entre dos métodos, no se consideran los nombres de los parámetros formales sino sus tipos.
OOP- Jerarquía de Clases
- 12 -
Eric L González S
d) Limitación de la Sobreescritura: final Todos los métodos y las variables de instancia se pueden sobreescribir por defecto. Si se desea declarar que ya no se quiere permitir que las subclases sobrescriban las variables o métodos, éstos se pueden declarar como final. De ésta forma se crean las llamadas constantes. Ejemplo: final numero_libro = 1; Las Referencias Polimórficas: this y super this: El uso de la referencia this es para referirse a por ejemplo los atributos de la misma clase. super: Como su nombre lo describe ésta referencia se utiliza para tener acceso a la SuperClase. Con super se puede acceder a los métodos o atributos de la super clase. EJEMPLO DE POLIMORFISMOS En éste ejemplo aplicaremos algunos tipos de polimorfismo que se pueden dar a la hora de realizar la jerarquía de clases utilizando segmentos de códigos que pueden ser utilizados junto con las clases de los ejemplos anteriores. A la clase Coyote agréguele una variable int de nombre patas y éste método: Clase Mamífero OOP- Jerarquía de Clases
- 13 -
Eric L González S
public int getpatas() { return(canti_patas); } Clase Coyote public int getpatas(int ptas) { patas=ptas; return(patas); }
Sobrecarga Sobrescritura
Nota: Éste es un ejemplo sencillo el la cual aplicamos polimorfismo debido a que la clase getpatas de la clase Coyote se sobrescribe y se accede a ella utilizando otro número y tipos de parámetros de ésta forma si queremos utilizar éste de la clase al invocarlo debemos utilizar los parámetros de entrada, en éste caso uno entero de nombre “patas”, aunque también se puede acceder mediante el objeto de la clase Coyote al método getpatas heredado de la clase Mamífero pero tiene que saberse que se pueden retornar valores diferentes a los almacenados en la clase padre, debido a que éstos valores podrían cambiar en la clase coyote. LA PALABRA RESERVADA FINAL: Cuando utilizamos la palabra reservada final se puede evitar: 1. Que un método se pueda redefinir. Por ejemplo: public final int getpatas(int ptas) { patas=ptas; return(patas); } Aunque se creen subclases de Coyote el método getpatas no se podrá redefinir porque se especifico como final.
OOP- Jerarquía de Clases
- 14 -
Eric L González S
2. Que se crean subclases de la clase dada como final. public final class tigrillo extendí felinos public final class gatomontes extendí felinos Al usar final, tanto la clase tigrillo como gatomontes son ahora clases de las que no se puede crear subclases. En ocasiones una clase será final aunque no tenga sentido crear subclases, o simplemente porque se desea que la clase no se pueda extender.
OOP- Jerarquía de Clases
- 15 -
Eric L González S
EJEMPLO FINAL
A continuación se muestra un ejemplo en el cual se simulará un software el cual es utilizado por un Científico, Investigador o Profesor de Biología el software se encarga de administrar las diferentes características de los animales que el investigador encuentre. Dicho software como se verá a continuación facilitará a la persona a la hora de llevar a cabo la recolección de datos debido a que el mismo utiliza la Jerarquía de Clases y le ayuda a organizar a la persona, los datos de una manera más rápida. Nota: Éste software es basado en los ejemplos anteriores, aunque el mismo posee algunas modificaciones, es solo para ilustrar como debería estar un software que contenga todas las características principales de la Jerarquía de Clases. // SUPERCLASE MAMÍFERO: CONTENDRÁ MÉTODOS Y ATRIBUTOS QUE SE HEREDARAN. abstract class Mamifero { //Éstos son los atributos que serán heredados a las diferentes subclases. private String clase="Mammalia"; private String cientifname_clase="Animales Vertebrados"; private String reino="Animal"; private String taxonomia="Theria"; private int canti_patas=4; /*Nótese que hemos utilizado la abstracción en la superclase, el porque de esto es que la clase Principal o superclase se utilizará como base para otras clases y sus atributos serán heredados a las diferentes subclases. Al hacer la clase abstracta se evita la creación del constructor de ésta clase, las super clases son clases que serán tomadas como bases para otras clases pero no es estrictamente necesaria su utilización, aunque se deberían definir como abstractas para cumplir con la Jerarquía de Clases al igual que la palabra “final” la
OOP- Jerarquía de Clases
- 16 -
Eric L González S
cual indica que es la clase final, las clases abstractas entonces indican que dicha clase es la clase superior o superclase. public String getreino() { return(reino); } public String getclase() { return(clase); } public int getpatas() { return(canti_patas); } //Éstos son los métodos que serán heredados a las diferentes subclases } //Fin de la clase Mamífero //CLASE COYOTE: ES LA SUBCLASE QUE HEREDA LOS DIFERENTES ATRIBUTOS class Coyote extends Mamifero { //Éstos son los nuevos atributos de la clase Coyote además de los que se heredarán más adelante. private String cientific_name="Canis Latrans"; private String color; private int patas;
public Coyote() { super(); //Con la palabra super hacemos referencia a la superclase Mamífero de ésta forma se heredan todos sus atributos y métodos como se puede ver invocamos a la superclase dentro del constructor de la clase Coyote para heredar directamente todos sus atributos.
OOP- Jerarquía de Clases
- 17 -
Eric L González S
} //Éstos son los nuevos métodos de la clase Coyote además de los que se heredarán anteriormente. //Note que se ha puesto la palabra final en los diferentes métodos con el fin de que los mismos no se puedan sobreescribir esto es algo que debe incluir los programas que utilicen jerarquía, es imprescindible para indicar por ejemplo que una clase no poseerá subclases. public final String getcientificname() { return(cientific_name); } //A continuación se muestra un ejemplo de Polimorfismo en el cual se sobrecarga y sobrescribe al método getpatas. public final int getpatas(int ptas) //El método getpatas de la clase coyote se deberá acceder utilizando los diferentes parámetros de entrada mediante un objeto de la clase Coyote, aunque con éste objeto se puede acceder también al método de la SuperClase Mamífero llamado getpatas el cual fue heredado. { patas=ptas; return(patas); } }
//Fin de la clase Coyote
//LA CLASE PRINCIPAL SE ENCARGARÁ DE HACER LOS LLAMADOS A LAS DIFERENTES CLASES. import javax.swing.*; import java.text.*; class Principal{ public static void main(String args[]) { CapturaImprime capprint= new CapturaImprime();
OOP- Jerarquía de Clases
- 18 -
Eric L González S
//Como se puede apreciar es importante invocar ordenadamente las diferentes clases debido a algunas de éstas heredaran sus atributos a otras clases y si se hiciera en orden inverso se produciría un error debido a que las subclases intentarían heredar métodos y atributos de clases que no existen o no han sido invocadas anteriormente. String mensaje=""; int ptas; //Una vez invocada la superclase se invoca la clase Coyote para que herede los diferentes atributos y métodos de la clase Padre. Coyote animal= new Coyote(); /* */ mensaje="Cantidad de patas de un Coyote: "; mensaje=capprint.lectura(mensaje); ptas=Integer.parseInt(mensaje); //Obsérvese que se pueden utilizar todos los métodos de la clase padre como si fueran métodos de la clase Coyote debido a que los mismos se heredaron. System.out.println(""+animal.getpatas()); System.out.println(""+animal.getpatas(ptas)); // Note la sobrecarga del método getpatas el cual se accede de diferentes maneras, ambos métodos getpatas por supuesto pueden devolver valores diferentes ya que aunque posean el mismo nombre puede que se haya sobrescrito el método heredado. System.out.println(""+animal.getclase()); System.out.println(""+animal.getreino()); System.out.println(""+animal.getcientificname()); System.exit(0); //Fin del programa. } }
//Fin de la clase Principal
OOP- Jerarquía de Clases
- 19 -
Eric L González S
DIAGRAMA UML PRINCIPAL String mensaje; int ptas; void main() Se utiliza para hacer los llamados de las diferentes clases.
MAMÍFEROS - clase - cientifname_clase - reino - taxonomía getclase (...) Devuelve el Nombre de la clases de los mamíferos getreino(...)Devuelve el Reino al que pertenecen los mamíferos getpatas(...)Devuelve la Cantidad de Patas de un Mamífero. //Otros métodos si se desea….
COYOTE - clase - cientifname_clase - reino - nacimiento - cientific_name - color getclase (...) Devuelve el Nombre de la clases de los mamíferos
getreino(...)Devuelve el Reino al que pertenecen los mamíferos getpatas(...)Devuelve la Cantidad de Patas de un Mamífero. getpatas(int patas) Método sobrescrito.
NOTA:
He utilizado éste ejemplo sencillo con el fin de hacer más fácil la comprensión de éste tema, sin profundizar tanto en la ejecución de códigos dentro de métodos puesto a que no importan la cantidad de códigos que los mismos tengan no afecta a la hora de describir si se utiliza correctamente los conceptos de Jerarquía.
//Otros métodos si se desea….
OOP- Jerarquía de Clases
- 20 -
Eric L González S
CONCLUSIÓN
Al realzar éste trabajo, después de haber investigado, analizado y discernido mis diferentes hipótesis e interrogantes referente a la Jerarquía de Clases puede concluir lo siguiente: La Jerarquía de es algo de suma importancia para la POO debido a que la misma asemeja mucho más a la realidad las clases que se crean. Es algo que facilita al programador y reduce el tiempo como por ejemplo la reutilización de código la cual ahorra tiempo al programar. Es indispensable la buena utilización de la Jerarquía de Clases ya que ayuda a hace el código mucho más fácil y manejable a la hora de dar mantenimiento debido a que se puede identificar más fácilmente las diferentes clases, y su nivel de Jerarquía. Al crear una clase se debe tener presente las diferentes características que debe poseer la misma y cuales son los diferentes atributos y métodos que se van a crear puesto que la POO es una programación que pretende reducir al mínimo el nivel de dificultad de los códigos. Éste trabajo ha sido de gran ayuda e importancia se agradece al profesor la ayuda brindada y espero sirva también a otra persona interesada en aprender éste tema.
OOP- Jerarquía de Clases
- 21 -
Eric L González S
REFERENCIA BIBLIOGRÁFICA 1- Garcia , A; Enero de 2000. Curso de Lenguaje Java. [web en línea] Disponible desde Internet en:
[con acceso el 07/11/2006]. Comentario: Ésta es una buena dirección para aquellas personas interesadas en aprender sobre la programación orientada a objetos en Java, aquí se van tratando los diferentes conceptos de la POO y como se utilizan adecuadamente, se detallan conceptos fundamentales que son explicados paso a paso mediante ejemplos y también la forma en que se debe utilizar la POO. Principalmente ésta pagina se vuelca a la utilización de ejemplos más que de los conceptos y esto pienso que es algo que le hace falta a la página la utilización de más conceptos, aunque se encuentran fácilmente varios ejemplos que sirven para entender que es la Jerarquía, Herencia, Clases abstractas, Super Clase, entre otras características, aunque no así a mi parecer sobre Polimorfismo.
2- Román Zamitiz, C. A. Fecha desconocida. Temas Especiales de Computación. Facultad de Ingeniería UNAM. [web en línea]. Disponible desde Internet en: . [con acceso el 07/11/2006]. Comentario: Ésta es otra excelente página en la que encontrará aspectos muy importantes de la POO y sus características, al ingresar a ésta pagina podrá encontrar fácilmente la información que necesite para poder así aprender de una manera más fácil y sencilla. Se muestra mediante un índice en el cual se la persona se puede desplazar fácilmente a través de las diferentes informaciones que la misma posee, ésta es una página imprescindible para aquellas personas que estén interesadas en conocer los diferentes términos de la POO no así de ejemplos en algún lenguaje de programación determinado, pero creo que fortalece ese aspecto ya que aquí podremos encontrar muchos otros aspectos de la POO como Herencia, Polimorfismo, Super Clases entre otras, como también Análisis y diseño a Orientado OOP- Jerarquía de Clases
- 22 -
Eric L González S
a Objeto con UML que nos sirven para comprender mejor la creación y Jerarquización de clases. 3- Manzanedo del Campo, M A; Garcia Peñalvo, F. J. y otros. septiembre de 1999; actualizado en octubre de 1999. Guía de Iniciación al Lenguaje Java. Versión 2.0. Subvencionado por Junta de Castila y León. [web en línea]. Disponible desde Internet en: < http://pisuerga.inf.ubu.es/lsi/Invest/Java/Tuto/Index.htm> También disponible en formato pdf en .[con acceso el 07/11/2006]. Comentario: Esta es una excelente página cortesía de la Universidad de Burgos en la cual diferentes profesores y alumnos se han unido con el fin brindar un excelente producto para aquellas personas que desean iniciarse en la Programación OO utilizando Java, el contenido de la página está excelentemente agrupado y organizado con el fin de que la persona comprenda paso a paso los diferentes aspectos de la POO, los autores utilizan tanto conceptos como ejemplos los cuales explican mucho más detalladamente los diferentes temas ha tratar. En cuanto a la Jerarquía de Clases éste punto esta muy bien explicado y detallado por medio de conceptos y ejemplos con los cuales fácilmente se pueden entender aspectos como: importancia, ventajas, limitaciones y muchas más cosas referente a éste aspecto de la POO que es la Jerarquía de clases. De ésta página he extraído muchos códigos que me han servido de ejemplos para la utilización y creación adecuada de mis clases, ya que los mismos están creados fácilmente con el fin de que la persona pueda comprender rápidamente como debe aplicar los diferentes conceptos. 4- Berzal Galiano, F. Fecha desconocida. Apuntes de Programación Orientada a Objetos en Java: Fundamentos de programación y Principios de diseño. [documento en línea]. Disponible desde Internet en: . [con acceso el 07/11/2006].
OOP- Jerarquía de Clases
- 23 -
Eric L González S
Comentario: Para mi concepto ésta es una de las mejores páginas que se pueden encontrar en el Internet si desea ver ejemplos y conceptos que son fácilmente entendibles, ya que el autor utiliza diagramas UML y códigos realizados en la cual aplica los diferentes conceptos de la Jerarquía de clases y no solo eso describe algunos conceptos con un tipo de lenguaje que no necesitará leerlos dos veces para poder entender, pienso que éste es un trabajo que merece reconocimiento, en la página no solo aprenderá sino que se citan muchas otras referencias para apoyar los conocimientos que se adquieren. La desventaja de ésta pagina es que no permite navegabilidad sino más bien utiliza la descarga de muchos documentos en los que se explican cada uno de los puntos que se tratan, no puedo decir también que en ésta página se tratan todos los aspectos de la Jerarquía de Clases pero pude ver excelente la forma como se explican los conceptos de Herencia, y clases abstractas y son muy buenos los ejemplos, espero que a usted también le gusten y le sirvan ya que vera interesante muchos de los documentos que el autor puso a disposición en ésta página. 5- Osmosis Latina; 2000- 2006. Curso de Java Básico. [web en línea]. Disponible desde Internet en: . [con acceso el 07/11/2006]. Comentario: En ésta página encontrará un curso en el cual se explican por encima algunos conceptos de la Jerarquía de Clase en Java, no es una dirección en la cual encontrará detalladamente todas las características de la Jerarquía de clase pero puede ser de utilidad, la recomiendo para aquellas personas que quieran aprender sobre algunos conceptos como la herencia de clases, polimorfismo, super clase, clase abstractas y demás, pero como dije anteriormente no se profundiza mucho. Osmosis Latina la recomiendo ya que es una página actual y como usted podrá comprobar en ella encontrará los mismos conceptos que en cualquier página que no sea actual, la misma posee una buena forma de navegación y esta muy bien redactada.
OOP- Jerarquía de Clases
- 24 -
Eric L González S
6- Rodríguez Herrera, D. Fecha desconocida. Tutorial de Introducción a Java. [publicación en línea]. Disponible desde Internet en: < http://www.programacion.com/java/tutorial/intjava/>. [con acceso el 07/11/2006]. Comentario: Ésta es una excelente página para todo programador, seguramente usted también habrá ingresado alguna vez en ella, en está página se explica claramente mediante conceptos y ejemplos muy bien redactados los cuales facilitan mucho el entendimiento acerca de la Jerarquía de clases, muestra un índice en el cual podrá acceder fácilmente a aspectos como la Herencia, polimorfismos, entre otras características, es una muy buena página que posee información actualizada, también en contraposición con otras páginas cuenta con comentarios, se puede votar por la información que se tiene para futuras mejoras y esto es algo a favor ya que la mayoría de las páginas que he visto no presentan ésta característica o no se puede acceder fácilmente a ella. 7- Froufre, A. 29 de agosto de 2005. Tutorial de Java. [web en línea]. Disponible desde Internet en: . [con acceso el 07/11/2006].
Comentario: Ésta es una muy completa e interesante página con la cual podrás aprender muchos conceptos que están involucrados con la jerarquía de clases como los son: la herencia, clases abstractas, this, super entre otros éstos dos últimos son muy utilizados y pocas páginas a las que he buscado hacen referencia a ellos, el autor utiliza una buena metodología para elaborar su página e incorpora muchos ejemplos que son de mucha utilidad a la hora de programar y llevar a cabo los diversos conceptos que se estudian. Recomiendo ésta pagina para cualquier persona que desea ver ejemplos debido a que son muy útiles para llevar poder desarrollar más fácilmente los diferentes programas utilizando la jerarquía de clases.
OOP- Jerarquía de Clases
- 25 -
Eric L González S
8- Froufe, A. 1996; actualizado el 1 de Enero de 1997. Tutorial de Java. [web en línea]. Disponible desde Internet vía FTP anónimo en: < http://www.cica.es/formacion/JavaTut/index.html> Puede acceder a la página web del programa en: .[con acceso el 07/11/2006].
Comentario: En ésta página se encuentran por medio de resumen y ejemplos diferentes aspectos de la POO en java, en la cual se ve reflejado el esfuerzo del autor para que la misma presente buenas características. Éste sitio muestra los diferentes aspectos que se desean aprender de una forma muy clara y utilizando un lenguaje sencillo lo cual es algo que está muy a favor podrá ver ejemplos los cuales no se necesitan mucho tiempo para poder comprenderlos. Algo que ésta en contra de ésta y la mayoría de las diferentes páginas visitadas es que no organizan la información adecuadamente por ejemplo el tema de la Jerarquía de Clases, los diferentes aspectos como herencia, polimorfismo se muestra como otra característica más del lenguaje y no como una parte de la etapa de Jerarquía de clases de modo que alguno de los términos que la misma implica se pierden o no se describen detalladamente. Pero fuera de eso en comparación con las demás página ésta es una buena página que podría ser de mucha utilidad. 9- Edison Lascano.14 de octubre de 1996; actualizado el 2 de mayo de 2006. Programación Orientada a Objeto. Escuela Politécnica del Ejército. [documento en línea]. Disponible desde Internet en: < http://fisi.espe.edu.ec/~elascano/pooii/>. [con acceso el 07/11/2006]. Comentario: No es la dirección más atractiva que se puede encontrar en Internet con ejemplo y diagramas uml…pero la información ésta muy bien distribuida y es muy clara, muestra mediante resúmenes todos los aspectos referentes a la Jerarquía de clase como lo son: Herencia, Polimorfismo, Super Clase, Clase Abstractas, Sobre Carga cosa que muchas páginas no lo hacen, los autores fueron muy cuidadosos en no dejar por fuera cada una de éstas características y describen de una muy buena manera mediante ejemplos. OOP- Jerarquía de Clases
- 26 -
Eric L González S
Vale la pena revisarla y practicar los diferentes ejemplos que en la misma se describen, también la información está bien distribuida y no es al azar creo eso es el producto y la unión de profesionales que intentan brindar un buen trabajo y vale la pena la atención y buen uso del mismo. Sin más que decir espero usted también acceda a éste sitio que le será de gran ayuda y agradezco a profesionales como éstos que se preocupan por brindar un buen trabajo.
10- Acosta Corona J; Núñez Geraldo J. L & Sández Bareño S. Y. 20 de junio de 2001. Paradigma de la orientación a objetos: Lenguaje Java. La Paz, Baja California Sur. [web en línea]. Disponible desde Internet en: http://www.itlp.edu.mx/posgrado/lengprog/java.html. [con acceso el 07/11/2006]. Comentario: En ésta página se puede encontrar buena Información acerca de la POO y la Jerarquía de Clases en la que se describen algunos términos como herencia, polimorfismo, entre otras características de la jerarquía de clases. A mi concepto es una página un poco débil en cuanto a contenido ya que la información que posee misma no es muy abarcadora y no la dan mucha importancia a los diferentes conceptos dejando así pasar por alto muchas de las características de la herencia. Pero pienso que éste trabajo puede ser útil a la hora de reforzar los conceptos y poder así aplicarlos correctamente y ejecutar una buena programación.
11- chemi. [email protected]. 18 de noviembre de 2004. Paradigmas de la Orientación a Objetos. [documento en línea]. Disponible desde Internet en: .[con acceso el 07/11/2006].
Comentario: En ésta página se puede encontrar diferentes documentos los cuales nos hablan acerca de la POO , conceptos y demás en la cual se encuentra un interesante documento acerca de los Paradigmas de la Orientación a Objetos en la cual hablan sobre la herencia el polimorfismo y se muestran interesantes ejemplos OOP- Jerarquía de Clases
- 27 -
Eric L González S
en UML’s muy atractivos en donde explican los diferentes conceptos, éstos documentos están muy bien elaborados y son interesantes incluso para coleccionarlos y tener así una excelente información.
OOP- Jerarquía de Clases
- 28 -
Eric L González S