Resumen, introducción y conclusiones - Práctica 6 PDF

Title Resumen, introducción y conclusiones - Práctica 6
Author Denilson Carlos Ala Samayani
Course Metodología de la programación
Institution Universidad Católica de Santa María
Pages 3
File Size 62 KB
File Type PDF
Total Downloads 65
Total Views 140

Summary

Plantillas...


Description

Clases Bases y Clases Derivadas, Miembros Protected, Constructores y Destructores en Clases Derivadas, Herencia Public, Protected y Private en C++ Resumen La herencia es una de las características más importantes en la programación orientada a objetos (POO) que nos permite llevar a cabo operaciones legibles y ordenadas como reutilizar código, inicializar variables por medio de llamadas en secuencia en constructores y destructores, definir controles de acceso en miembros de una clase, etc. Incluso en este mecanismo de herencia se destaca que una clase requiere de métodos para poder tratar los atributos con los que cuenta. Por tal motivo, este informe aludirá a dar una explicación de las situaciones (experiencias prácticas) donde se puedan aplicar estas operaciones, relacionados con la herencia en la POO, en miembros (atributos y métodos) de la clase.

Introducción La programación orientada a objetos (POO) es una de las técnicas más modernas en el mundo de la programación que trata de disminuir el coste del software, aumentando la eficiencia en la programación y reduciendo el tiempo necesario para el desarrollo de una aplicación. Con la programación orientada a objetos, los programas tienen menos líneas de código, se organizan de mejor forma al agruparlos por ‘objetos’ y son más comprensibles en su ejecución. Sin embargo, la programación orientada a objetos toma verdadera ventaja en la compartición y reutilización del código. Durante el desarrollo de un programa orientado a objetos se utilizan varios mecanismos de la POO para su eficiente funcionamiento, siendo la herencia uno de los mecanismos más importantes ya que garantiza la reutilización de código. Con la herencia se forman relaciones jerárquicas similares a los ‘árboles’ (estructura de datos), en un contexto de clases ya que, al crear una clase, en lugar de escribir atributos miembro y funciones miembro completamente nuevos, podemos designar que la nueva clase herede los miembros de una clase existente. La clase existente se llama clase base, y la clase nueva es la clase derivada. Una clase derivada representa a un grupo más especializado de los atributos y funciones miembros de la clase base. En otras palabras, una clase derivada contiene los comportamientos heredados de su clase base además de comportamientos adicionales que el mismo personaliza a partir de lo que heredo. En el caso de la clase base, este puede participar en la herencia simple donde una clase se deriva de una sola clase base y en la herencia múltiple de la cual una clase derivada hereda de varias clases base.

Cuando una clase hereda de otra, los miembros de la clase base se convierten en miembros de la clase derivada. Asimismo, una clase posee dos tipos de recursos como miembros (métodos y atributos) que pueden tener especificadores de acceso “public“ y “private”, no obstante un miembro de la clase puede ser declarado como “protected”. Esta palabra clave ‘protected’ está incluida en C++ para proveer flexibilidad para el mecanismo de herencia, igualmente, cuando un miembro de una clase es declarado como 'protected', ese miembro, no es accesible desde otros elementos ajenos de la clase en el programa. Sin embargo, el acceso a un miembro protegido se compara con el acceso a un miembro privado, por lo que este puede ser accedido mediante otros miembros y friends de dicha clase base. Durante la derivación de clases, al instanciar un objeto de una clase derivada se inicia una cadena de llamadas a constructores, en donde el constructor de la clase derivada, antes de realizar sus propias tareas (inicializaciones de atributos), invoca al constructor de su clase base, ya que el constructor de cada clase base inicializa los datos miembro de la clase base que hereda el objeto de la clase derivada; siendo este el último constructor en ser llamado. De manera similar, si la clase base se deriva de otra clase en una jerarquía de clases de varios niveles. En el destructor su secuencia de llamada es diferente pues cuando se destruye un objeto de una clase derivada, el programa llama al destructor de ese objeto, empezando una cadena (o cascada) de llamadas a destructores en las que el destructor de la clase derivada y los destructores de las clases base y los miembros de las clases se ejecutan en orden inverso al orden en el que se ejecutaron los constructores. Conforme se realice la llamada al destructor de un objeto de una clase derivada, el destructor realiza su tarea, y después invoca al destructor de la siguiente clase base ascendente en la jerarquía. Este proceso se repite hasta la llamada al destructor de la clase base final en la parte superior de la jerarquía. En C++ al derivar una clase de una clase base, esta se puede heredar a través de la herencia public, protected o private. Por defecto, cuando no se especifica explícitamente el tipo de herencia, el compilador lo define como herencia privada. Por lo que el uso de estas herencias depende de la voluntad del programador para modificar el ámbito de acceso de los miembros derivados. Teniendo conocimiento previo de uno de los mecanismos más importantes de la Programación Orientada a Objetos (POO) en la siguiente sección se evidenciarán las observaciones realizadas.

Conclusiones Conclusiones de la práctica: 

En las clases de prácticas se conoció nuevos aportes que realiza la herencia, como mecanismo importante de la POO, en programas modelados por el docente. En el caso de las clases derivadas, estas







suelen ser usadas como una clase base por otras clases derivadas, permitiendo la creación de una jerarquía de clases, además se detalló los tipos de ‘acceso’ en la herencia. Con respecto a los miembros de una clase, se definió que estos pueden ser de tres tipos: privados, públicos y protegidos. Sin embargo, dada las circunstancias, el funcionamiento del programa requiriere de algunas restricciones o cambios en el acceso de sus atributos y métodos, por lo que el uso de miembros ‘protected’ destacó como alternativa frente la herencia de miembros en una clase base, donde los miembros públicos y protegidos de la clase base se convierten en miembros protegidos en la clase derivada. Los constructores en clases derivadas tienen un proceso particular al instanciar sus objetos, ya que inicializan sus variables a través de llamadas en cadena hacia otros constructores, que se encuentran en el nivel superior de la jerarquía de clases. Del mismo modo, los destructores son llamados en cadena para su ejecución con la única diferencia de que su proceso se realiza desde la parte inferior de la jerarquía. La herencia en C++, se obtiene con tres ámbitos de acceso (public, protected y private) que dependiendo cual se elija se modifica la accesibilidad de los atributos y métodos miembro de la clase hereda de otra, ocasionando que operaciones fuera de clase derivada no puedan acceder a estos.

Bbliografía...


Similar Free PDFs