Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Métodos
Cuantitativos
2. Clases y Objetos
3. Polimorfismo
4. Herencia
5. Recomendaciones
Índice de contenidos
2. Clases y Objetos
3. Polimorfismo
4. Herencia
5. Recomendaciones
Tipos de programación
• Programación estructurada: programación simple donde sólo
se utilizan las estructuras de secuencia, condicionales e itera-
ción.
I Ejemplo: Cualquier lenguaje. Inicialmente: Pascal, Ada, ...
• Programación modular: programación consistente en dividir
los programas en partes llamadas subprogramas o módulos. Es-
tos módulos se caracterizan por ser independientes e intercam-
biables, y además, que contengan todo lo necesario para ejecu-
tar un aspecto de la funcionalidad buscada.
I Ejemplo: Ada, Cobol, C#, VisualBasic, Javascript, ...
• Programación orientada a objetos (POO): es la programa-
ción más cercana a como expresaríamos las cosas en la vida
real. Se basa en el concepto de objeto. Los objetos contienen
datos y métodos que ofrecen una funcionalidad específica.
I Ejemplo: Java, C++, Python, ...
Índice de contenidos
1. La Programación Orientada a Objetos (POO)
2. Clases y Objetos
Elementos Fundamentales
Definición de Clases
Instanciación de Objetos
Claves a Recordar
3. Polimorfismo
4. Herencia
5. Recomendaciones
Elementos fundamentales
CLASE OBJETOS
- name: String
name = Renault Koleos name = Peugeot 206
- fuel: int
fuel = 50 fuel = 60
- speed: double
speed = 310,2 speed = 200,5
+ getName(): String
+ getFuel(): int Ferrari Enzo: Car
+ getSpeed(): double
+ setName(String): void name = Ferrari Enzo
+ setFuel(int): void fuel = 110
+ setSpeed(double): void speed = 366,25
Normativa UML1
• Nomenclatura:
I Nombre Clases: empiezan por mayúsculas.
I Nombre Atributos: empiezan por minúsculas.
I Nombre Métodos: empiezan por minúsculas.
I Nunca espacios, tildes o ñ.
• Archivos:
I .h con la cabecera (también se admite .hpp).
I .cpp con la implementación.
I Las clases abstractas no tendran .cpp
1
UML: https://www.uml.org/
Definición de clases
CLASE
- name: String
- fuel: int Atributos: datos que describen el objeto.
- speed: double
Definición de Identificador de
la clase clase Comienza la
definición de la
clase
Visilidad de
los elementos
Atributos
Métodos
Finaliza la
definición de la
clase
Instanciación de objetos
• Objeto: define la instancia concreta de una clase. Valores con-
cretos de los atributos y funciones miembro de la Clase.
• Objetivo: descubrir e implementar los objetos que juegan un
rol en el dominio del problema del programa.
OBJETOS
Clase: Car
Renault Koleos: Car Peugeot 206: Car
atributos métodos
name = Renault Koleos name = Peugeot 206
fuel = 50 fuel = 60
speed = 310,2 speed = 200,5
Objetos
Peugeot Ferrari Enzo: Car
Identificador de Instancias de un
Puntero
la clase objeto
Instanciación
dinámica con el
puntero
Operador para
acceder a los
elementos de
un objeto
Operador
cuando se usan
punteros
Liberación de
memoria
Claves a recordar
Claves a recordar
Claves a recordar
Índice de contenidos
2. Clases y Objetos
3. Polimorfismo
Concepto
Polimorfismo en C++
4. Herencia
5. Recomendaciones
Concepto
Índice de contenidos
1. La Programación Orientada a Objetos (POO)
2. Clases y Objetos
3. Polimorfismo
4. Herencia
Concepto
Herencia Simple
Herencia Múltiple
Visibilidad de los Atributos
Clases Abstractas y Métodos Virtuales
5. Recomendaciones
Concepto
La herencia modela el hecho de que los objetos tienden a organizarse
en jerarquías.
Herencia simple
Electrodoméstico
Herencia pública
1 class A{
2 private: int a1;
3 protected: int a2;
4 public: int a3;
5 };
6 class D: public A{
7 private: int d1;
8 protected: int d2;
9 public: int d3;
10 };
Herencia privada
1 class A{
2 private: int a1;
3 protected: int a2;
4 public: int a3;
5 };
6 class B: private A{
7 private: int b1;
8 protected: int b2;
9 public: int b3;
10 };
Herencia protegida
1 class A{
2 private: int a1;
3 protected: int a2;
4 public: int a3;
5 };
6 class C: protected A{
7 private: int c1;
8 protected: int c2;
9 public: int c3;
10 };
NOTA: Una clase que tenga un método virtual puro es una clase
abstracta (no es posible crear instancias con ella).
Índice de contenidos
2. Clases y Objetos
3. Polimorfismo
4. Herencia
5. Recomendaciones
Se recomienda encarecidamente...
Índice de contenidos
2. Clases y Objetos
3. Polimorfismo
4. Herencia
5. Recomendaciones
Recursos electrónicos
• cppreference. (2020). Referencia C++:
https://en.cppreference.com/w/.
• Goalkicker.com (2018). C++: Note for Professionals.
• Goalkicker.com (2018). Algorithms: Notes for Professionals.
• Joyanes, L. (2000). Programación en C++: Algoritmos, Estruc-
turas de datos y Objetos.
Libros:
• Brassard, G., Bratley, P. (1997). Fundamentos de Algoritmia.
• Guerequeta, R., Vallecillo, A. (1998). Técnicas de diseño de
algoritmos.
• Joyanes, L. (2008). Fundamentos de programación: algoritmos,
estructura de datos y objetos.
• Knuth, D. (2011). The Art of Computer Programming, Volu-
mes 1-4. Third Edition.
• Martí, N., Ortega, Y., Verdejo, J.A. (2003). Estructuras de da-
tos y métodos algorítmicos: Ejercicios resueltos.
• Parker, A. Algorithms and Data Structures in C++. CRC Press.