Documente Academic
Documente Profesional
Documente Cultură
1. El paradigma orientada a objetos
M.C. Alejandro V. Programación Orientada a Objetos 1
Programación Orientada a Objetos
M.C. Alejandro V. Programación Orientada a Objetos 2
Programación Orientada a Objetos
M.C. Alejandro V. Programación Orientada a Objetos 3
Programación Orientada a Objetos
Paradigma de programación
M.C. Alejandro V. Programación Orientada a Objetos 6
Programación Orientada a Objetos
Imperativo
M.C. Alejandro V. Programación Orientada a Objetos 7
Programación Orientada a Objetos
Ejemplo en Pascal
{Programa que calcula el factorial de un número}
uses crt; {bibliotecas}
var numero,limite,contador:integer; {variables}
begin
ClrScr;
Write('Numero: ');
Readln(numero);
limite:=numero;
numero:=1;
for contador:=1 to limite do
begin
numero:=numero*contador;
end;
Write('Factorial: ',numero);
ReadKey;
end.
M.C. Alejandro V. Programación Orientada a Objetos 9
Programación Orientada a Objetos
Declarativo
M.C. Alejandro V. Programación Orientada a Objetos 10
Programación Orientada a Objetos
M.C. Alejandro V. Programación Orientada a Objetos 11
Programación Orientada a Objetos
M.C. Alejandro V. Programación Orientada a Objetos 12
Programación Orientada a Objetos
Ejemplo en SQL
SELECT
Customers.FirstName,
Customers.LastName,
SUM(Sales.SaleAmount) AS SalesPerCustomer
FROM
Customers JOIN Sales
ON
Customers.CustomerID = Sales.CustomerID
GROUP BY
Customers.FirstName, Customers.LastName
M.C. Alejandro V. Programación Orientada a Objetos 13
Programación Orientada a Objetos
Estructurado
M.C. Alejandro V. Programación Orientada a Objetos 14
Programación Orientada a Objetos
M.C. Alejandro V. Programación Orientada a Objetos 15
Programación Orientada a Objetos
Ejemplo en C
#include <stdio.h>
int main()
{
printf("Hola mundo");
return 0;
}
M.C. Alejandro V. Programación Orientada a Objetos 16
Programación Orientada a Objetos
Orientado a objetos
M.C. Alejandro V. Programación Orientada a Objetos 17
Programación Orientada a Objetos
Ejemplo en C#
using System;
namespace HelloNameSpace {
public class HelloWorld {
static void Main(string[] args) {
Console.WriteLine("Hola Mundo!");
}
}
}
M.C. Alejandro V. Programación Orientada a Objetos 19
Programación Orientada a Objetos
Factores Externos
• Robustez
• Eficiencia
• Extensibilidad
• Portabilidad
• Reutilización
• Facilidad de uso
• Compatibilidad
• Funcionalidad
Factores Internos
• Modularidad
• Legibilidad
M.C. Alejandro V. Programación Orientada a Objetos 21
Programación Orientada a Objetos
• Cohesión de datos
• Cohesión funcional Modulo C
M.C. Alejandro V. Programación Orientada a Objetos 22
Programación Orientada a Objetos
Librerías de software
Software-IC
M.C. Alejandro V. Programación Orientada a Objetos 23
Programación Orientada a Objetos
M.C. Alejandro V. Programación Orientada a Objetos 24
Programación Orientada a Objetos
Dificultades técnicas
M.C. Alejandro V. Programación Orientada a Objetos 25
Programación Orientada a Objetos
• Rutinas
• Paquetes o Módulos
RUTINAS
M.C. Alejandro V. Programación Orientada a Objetos 27
Programación Orientada a Objetos
PAQUETES/MÓDULOS
• Son unidades de descomposición de software que:
– Cumplen el principio de Unidad Lingüística Modular
– Contienen variables y rutinas relacionadas = características del
paquete
– Admiten la Ocultación de la Información (módulos abstractos)
– Permite la implementación de tipos definidos por el programador
• Los módulos sólo resuelven ”rutinas relacionadas”
– facilita depuración y cambio al proveedor
– es más fácil para los clientes encontrar y usar los servicios de los
módulos
M.C. Alejandro V. Programación Orientada a Objetos 29
Programación Orientada a Objetos
M.C. Alejandro V. Programación Orientada a Objetos 30
Programación Orientada a Objetos
M.C. Alejandro V. Programación Orientada a Objetos 32
Programación Orientada a Objetos
Es decir
M.C. Alejandro V. Programación Orientada a Objetos 33
Programación Orientada a Objetos
RESPUESTA
M.C. Alejandro V. Programación Orientada a Objetos 34
Programación Orientada a Objetos
PROGRAMACIÓN POO
M.C. Alejandro V. Programación Orientada a Objetos 35
Programación Orientada a Objetos
PROGRAMACIÓN POO
Desarrollo software OO
1. Encontrar tipos de objetos relevantes
2. Encontrar operaciones para tipos de objetos
3. Describir tipos de objetos
4. Encontrar relaciones entre objetos
5. Usar tipos de objetos para estructurar
software
M.C. Alejandro V. Programación Orientada a Objetos 37
Programación Orientada a Objetos
M.C. Alejandro V. Programación Orientada a Objetos 38
Programación Orientada a Objetos
1.2 Propiedades básicas del paradigma orientado a
objetos
Objetos
M.C. Alejandro V. Programación Orientada a Objetos 40
Programación Orientada a Objetos
M.C. Alejandro V. Programación Orientada a Objetos 41
Programación Orientada a Objetos
M.C. Alejandro V. Programación Orientada a Objetos 42
Programación Orientada a Objetos
M.C. Alejandro V. Programación Orientada a Objetos 43
Programación Orientada a Objetos
M.C. Alejandro V. Programación Orientada a Objetos 44
Programación Orientada a Objetos
M.C. Alejandro V. Programación Orientada a Objetos 45
Programación Orientada a Objetos
Sumar Nombr
Restar e
Multiplicar Marca
Derivar Modelo
Graficar
M.C. Alejandro V. Programación Orientada a Objetos 46
Programación Orientada a Objetos
Mensajes
Clase
M.C. Alejandro V. Programación Orientada a Objetos 49
Programación Orientada a Objetos
Clases
M.C. Alejandro V. Programación Orientada a Objetos 50
Programación Orientada a Objetos
Calculadora
nombre: String
marca : String
modelo : String
float sumar(float)
float restar(float)
float multiplicar(float)
fx derivar(fx) otraCalculadora
miCalcu void graficar(fx)
Voyage
Voyage
Ti‐89
TI
Titanium 200
200
S
Sumar Sumar
Restar Restar
Multiplicar Multiplicar
Derivar Derivar
Graficar Graficar
M.C. Alejandro V. Programación Orientada a Objetos 51
Programación Orientada a Objetos
Métodos
M.C. Alejandro V. Programación Orientada a Objetos 52
Programación Orientada a Objetos
M.C. Alejandro V. Programación Orientada a Objetos 53
Programación Orientada a Objetos
Objeto A
derivar(2x2 – 3)
integrar(fx)
graficar(fx)
oA(tipo)
derivar(fx)
Resultado = 4x
Objeto B
M.C. Alejandro V. Programación Orientada a Objetos 54
Programación Orientada a Objetos
Herencia
M.C. Alejandro V. Programación Orientada a Objetos 55
Programación Orientada a Objetos
M.C. Alejandro V. Programación Orientada a Objetos 57
Programación Orientada a Objetos
M.C. Alejandro V. Programación Orientada a Objetos 58
Programación Orientada a Objetos
M.C. Alejandro V. Programación Orientada a Objetos 60
Programación Orientada a Objetos
FiguraGeometrica
x
y
area ()
Cuadrado Círculo
lado radio
area () area ()
M.C. Alejandro V. Programación Orientada a Objetos 61
Programación Orientada a Objetos
FiguraGeometrica
area ()
Cuadrado Círculo
lado radio
area () area ()
M.C. Alejandro V. Programación Orientada a Objetos 62
Programación Orientada a Objetos
Encapsulamiento
M.C. Alejandro V. Programación Orientada a Objetos 63
Programación Orientada a Objetos
M.C. Alejandro V. Programación Orientada a Objetos 64
Programación Orientada a Objetos
M.C. Alejandro V. Programación Orientada a Objetos 65
Programación Orientada a Objetos
Polimorfismo
M.C. Alejandro V. Programación Orientada a Objetos 66
Programación Orientada a Objetos
Sobrecarga
M.C. Alejandro V. Programación Orientada a Objetos 68
Programación Orientada a Objetos
depositar(cantidad, cuenta)
depositar(cuenta, cuenta)
depositar(cuenta, cuentaExterna)
cuentaBancaria
nombre: String
numero: String
fecha: String
depositar(cantidad, cuenta)
depositar(cuenta, cuenta)
depositar(cuenta, cuentaExterna)
M.C. Alejandro V. Programación Orientada a Objetos 70
Programación Orientada a Objetos
Sobre-escritura
M.C. Alejandro V. Programación Orientada a Objetos 71
Programación Orientada a Objetos
Calculadora
nombre: String
marca: String
modelo: String
float sumar(float)
float restar(float)
float multiplicar(float)
fx derivar(fx)
void graficar(fx)
CalculadoraGraficadora
grados: boolean
void graficar(fx) {
Se redefine el método
en la subclase
}
M.C. Alejandro V. Programación Orientada a Objetos 72
Programación Orientada a Objetos
Enlace dinámico
M.C. Alejandro V. Programación Orientada a Objetos 73
Programación Orientada a Objetos
SerVivo
nombre: String
void respirar()
Planta Animal
tipo: String
tipo: String
clasificacion: String
M.C. Alejandro V. Programación Orientada a Objetos 74
Programación Orientada a Objetos
Se crean los objetos de un tipo específico
…
rosa: Planta
pantera: Animal
respirar (rosa);
respirar (pantera);
…
Se puede crear un solo método para diversos valores de entrada.
M.C. Alejandro V. Programación Orientada a Objetos 75
“Por mi raza hablará el espíritu”