Clase: Introducción a la Programación Orientada a
Objetos (POO)
1. Concepto de Programación Orientada a Objetos (POO)
La Programación Orientada a Objetos (POO) es un paradigma de programación que
organiza el código en objetos en lugar de funciones y procedimientos independientes. La
POO se basa en cuatro principios fundamentales:
Encapsulamiento: Agrupa datos y métodos que operan sobre esos datos en una
sola unidad llamada "objeto" y limita el acceso directo a ciertos elementos de esa
unidad.
Herencia: Permite que una clase (subclase) herede propiedades y métodos de otra
clase (superclase), facilitando la reutilización del código.
Polimorfismo: La capacidad de un método de realizar diferentes acciones
dependiendo de cómo es llamado. Permite que el mismo método funcione en
distintas formas según el contexto.
Abstracción: Oculta los detalles internos de implementación y solo muestra la
funcionalidad necesaria, simplificando el uso de los objetos.
Ejemplo práctico:
Piensa en una clase Carro. Este carro tiene características (atributos) como color, marca, y
modelo, y puede realizar acciones (métodos) como acelerar() y frenar(). Estos
atributos y métodos están encapsulados dentro de la clase Carro y representan una unidad.
2. Fundamentos de la POO
a) Clases y Objetos
Clase: Una clase es una plantilla o un molde que define las características y
comportamientos de un conjunto de objetos. En el ejemplo anterior, Carro es una
clase, que describe los atributos y métodos comunes de cualquier objeto de tipo
carro.
Objeto: Es una instancia de una clase. Cuando se crea un objeto, este adquiere los
atributos y métodos definidos en la clase. Por ejemplo, miCarro es un objeto de la
clase Carro.
Ejemplo de Código en C++:
b) Entradas y Salidas
Los objetos pueden recibir datos (entradas) y devolver resultados (salidas) a través de los
métodos. Los métodos son funciones que están definidas dentro de la clase y que permiten
interactuar con los datos (atributos) del objeto.
3. Implementación de una Clase y Especificadores de Acceso
Para definir una clase, declaramos sus atributos y métodos. También es importante
controlar el acceso a estos elementos con especificadores de acceso, que determinan si
otros objetos pueden ver y modificar los atributos y métodos de la clase.
Especificadores de Acceso:
o public: Los atributos y métodos públicos pueden ser accedidos desde
cualquier lugar.
o private: Los atributos y métodos privados solo pueden ser accedidos desde
dentro de la propia clase.
o protected: Los atributos y métodos protegidos pueden ser accedidos solo
desde la propia clase y sus subclases.
Ejemplo de Clase con Especificadores de Acceso en C++:
En este ejemplo, el atributo color es privado y solo puede modificarse a través del método
público setColor() y obtenerse mediante getColor().
c) Ámbito de una Clase
El ámbito de una clase determina la visibilidad y vida de sus atributos y métodos. Cuando
declaramos una variable o método dentro de la clase, su ámbito queda limitado a esa clase a
menos que se utilicen especificadores de acceso que permitan su visibilidad en otros
contextos.
4. Constructores y Destructores
Constructor: Un constructor es un método especial que se llama automáticamente
cuando se crea un objeto. Su función es inicializar los atributos del objeto.
o El constructor tiene el mismo nombre que la clase y no devuelve ningún
valor.
o Es útil para asignar valores iniciales a los atributos de la clase.
Destructor: Un destructor es un método especial que se llama automáticamente
cuando un objeto es destruido o sale de ámbito. Libera los recursos ocupados por el
objeto.
o Tiene el mismo nombre que la clase, precedido por el símbolo ~ y no tiene
parámetros ni valor de retorno.
Ejemplo de Constructor y Destructor en C++:
En este ejemplo, el constructor inicializa el atributo color, y el destructor imprime un
mensaje cuando el objeto es destruido.
Actividad Individual
Cada alumno realizará una actividad práctica creando una clase que represente un objeto
del mundo real y aplicará los conceptos de POO.
Instrucciones
1. Cada alumno elige un objeto de la lista:
o Alumno 1: Carro
o Alumno 2: Persona
o Alumno 3: Libro
o Alumno 4: Producto
o Alumno 5: Animal
2. Definir Clase y Atributos: Cada alumno define una clase con atributos privados y
métodos públicos que permitan:
o Modificar y obtener los valores de los atributos.
o Incluir un constructor que inicialice los atributos.
o Incluir un destructor que libere los recursos (pueden hacer que muestre un
mensaje en pantalla para simular esto).
3. Especificadores de Acceso: Todos los atributos deben ser privados y los métodos
públicos.
Ejemplo para Guía
Conclusión
Al finalizar, los estudiantes compartirán sus clases con el grupo, describiendo cómo usaron
los conceptos de encapsulamiento, constructores, destructores y especificadores de
acceso en sus implementaciones. Esta actividad les permitirá comprender y aplicar los
conceptos básicos de la Programación Orientada a Objetos.