POO Usta 2021
POO Usta 2021
POO Usta 2021
Lenguajes de Programación
Paradigma
Orientado a
Objetos
Introducción
Objetivo:
Análisis de los Paradigmas de
Programación.
Conocimientos:
Paradigma Orientada a Objetos
◦ Inicios
◦ Programación Orientada a Objetos
Software de calidad
Legibles
Modulares Internos
Estructurados
Exactitud (Correctness)
Robustez (Robustness)
Extensible (Extendibility)
Reusabilidad (Reusability)
Compatibilidad (Compatibility)
Factores de calidad
Exactitud: el software realice la tarea
exactamente como fue definido en los
requerimientos y en la especificación.
Robustez: que el software funcione aún en
circunstancias anormales.
Factores de calidad
Extensible: la facilidad en que el
software se adapte a cambios en las
especificaciones.
Extensibilidad
Reusabilidad Modularidad
Compatibilidad
• Descomposición
• Composición
• Entendible
• Continuidad
• Protección
Modularidad
• Descomposición: Divide y conquista
• Composición: Reusabilidad
Modularidad
Entendible: los módulos son entendibles al
lector humano.
Continuidad: un pequeño cambio en la
Pocas interfaces
◦ Comunicarse lo menos posible con otros.
Interfaces pequeñas
◦ El intercambio de información debe ser lo menor
posible.
Interfaces explícitas:
◦ Debe ser obvio.
Society of modules: not only do we require that
everyone talks with few others, and that any such
conversation be limited to the exchange of a few
words; also impose that it be held in public and
loudly.
La solución: Programación
Orientada a Objetos
◦ c++
◦ java
◦ c#,
◦ Eiffel
El lenguaje C
El lenguaje de programación C fue
desarrollado, a partir del lenguaje
B, en 1972 por Dennis Ritchie en
los Laboratorios Bell.
C es un lenguaje de programación
eficiente para programar
compiladores y sistemas
operativos, es independiente del
hardware y es posible escribir
programas portables en C.
El lenguaje C++
A partir de C surge C++ a principios de la
década de los ochenta en los Laboratorios
Bell.
C++ mejora algunas de las características de
paradigma de OO (Híbrido)
Bjarne Stroustrup
Creator of C++
Conceptos POO
◦ El Promedio
◦ El menor
◦ El mayor ¿Quién es el objeto?
◦ La suma ¿Cuáles son sus atributos?
◦ Los datos ¿Cuál es su comportamiento?
Objeto
Objetos
Podemos declarar varios objetos con los mismos atributos y
que usan los mismos métodos para verlos o modificarlos.
Entonces…
g1, g2 y g3 son objetos de la misma clase.
¿y quién es la clase?
◦ La clase la forman los atributos y los métodos.
Declaración de una clase
Convertirel programa
promedio para que sea
orientado a objetos.
Constructores
Se usa para inicializar atributos de los
objetos.
Se declara en la parte public.
Tienen el mismo nombre de la clase.
No devuelven valores.
Los argumentos son los valores con que
◦ imprimirDatos
◦ pedirDatos
Crea la función perteneceDato
◦ Recibe como parámetro un dato y un conjunto y
regresa si el dato se encuentra en el conjunto
Pertenece
¿Qué nos falta?
Las plantillas de función son útiles para
definir funciones en las que solo cambia el
tipo de dato.
¿Qué pasa con las definiciones de los
diferentes conjuntos?
Clases
Cada tipo de conjunto sería una clase
Parametrizar una clase
Utilizar la siguiente declaración antes de la
definición de la clase:
template <classidentificador>
El identificador será el parámetro que recibe
liberación
No liberar la memoria
Liberar el mismo bloque de memoria dos
veces
Liberar memoria que no ha sido asignada.
Destructor
De la misma forma en que existe un constructor
para un objeto de la clase, existe un destructor.
Cuando se define un destructor, éste es llamado