3. www.senati.edu.pe
Paradigma OO
1. viene de una filosofía o forma de pensar que es la
Orientación a Objetos y esto surge a partir de los
problemas que necesitamos plasmar en código.
2. Es analizar un problema en forma de objetos para
después llevarlo a código, eso es la Orientación a
Objetos.
3. Un paradigma es una teoría que suministra la base
y modelo para resolver problemas. La paradigma de
Programación Orientada a Objetos se compone de
4 elemento
Clases
Propiedades
Métodos
Objetos
Y 4 Pilares:
Encapsulamiento
Abstracción
Herencia
Polimorfismo
4. www.senati.edu.pe
Tipos de datos abstracto
1. En Python todo es un objeto y tiene un tipo, esto significa que todo lo que hacemos en nuestro programa tiene una
representación en memoria, los datos y el comportamiento se puede encapsular en un objeto.
2. Los tipos nos permiten modelar y manipular el mundo a través de la programación.
3. Las formas de interactuar con un objeto:
• Creación
• Manipulación
• Destrucción
1. Cuando trabajamos con programación orientada a objetos tenemos varias ventajas:
• De composición: podemos estructurarlos en objetos mas pequeños.
• Abstracción: no nos preocupamos el funcionamiento del proceso de su comportamiento.
• Encapsulación: podemos esconder ciertos datos que solo son relevantes internamente en el objeto.
7. www.senati.edu.pe
Instancia
1. La clase es un molde, alos objetos creados se les conoce como
objetos
2. Es un objeto
3. Cuando se crea una instancia se ejecuta un constructos:
__init__(seld)
4. Los atributos de clase nos permiten:
- Representar datos
- Procedimiento para interactuar con los mismos(métodos)
- Mecanismo para esconder la representación interna
5. Puede tener atributos privados. Por convención comienza con _
10. www.senati.edu.pe
Anaconda Navigator
1. Plataforma Anaconda Navigator, que
nos permite trabajar con el lenguaje
Python de una forma más amigable
2. Anaconda Navigator es un ambiente de
trabajo para la ciencia de datos que
permite hacer funcionar aplicaciones y
administrar fácilmente distintos
paquetes.
3. Anaconda Navigator puede buscar
paquetes en Anaconda Cloud
4. Es Gratuito.
11. www.senati.edu.pe
Instalación
1. Descargar el Producto:
https://www.anaconda.com/
2. Descargamos para el tipo de SO
que usamos
3. Instalación sencilla, damos,
Siguiente hasta terminar
15. www.senati.edu.pe
Definición de POO
Es una forma de programación que
permite representar directamente en
el programa los elementos del
espacio del problema
Estos elementos se les denomina
Objetos, el contenedor de dichos
objetos, se les denomina clases. Los
objetos tienes atributos(las variables),
y funciones(los metodos)
16. www.senati.edu.pe
Evolución de la POO
Surge en Noruega en 1967 con
un lenguaje llamado Simula 67,
desarrollado por Krinsten
Nygaard y Ole-Johan Dahl, en
el centro de cálculo noruego.
En los 70’s científicos del
centro de investigación en Palo
Alto Xerox (Xerox park)
inventaron el lenguaje Small
talk
En los 80’s AT&T Labs, amplió
el lenguaje C para crear C++
que soporta la programación
Orientada a Objetos.
En 1996 surge
un desarrollo
llamado JAVA
(extensión de
C++). Su
filosofía es
aprovechar el
software
existente.
En 1997-98 se desarrollan
herramientas ‘CASE’
orientadas a objetos (como el
diseño asistido por
computadora).
Del 98 a la fecha se desarrolla
la arquitectura de objetos
distribuidos RMI, Corba,
COM, DCOM.
17. www.senati.edu.pe
Diferencia de la Programación estructurado y POO
Basado en Funciones
Programa divido en Muchas
funciones
Crece drásticamente la cantidad
de código
Organización del código en
bloques de sentencias
consecutivas
Llamadas a nuevas funciones y
procedimientos
Favorece la reutilización
Variables globales sin protección
Basado en objetos
Programa parecido a la realidad
El crecimiento no afecta el
programa
Un sistema cliente
Es totalmente reutilizable
Encapsulamiento, oculta la
complejidad interna y detalles de
los datos y las operaciones
18. www.senati.edu.pe
Características Principales de POO
1. Todo elemento de programación es
un objeto
2. Un programa es un conjunto de
objetos que hacen peticiones los
unos a los otros
3. Cada objeto es de una clase
determinada
4. Para poder utilizar los atributos u
métodos de una clase, debemos
inicializarla, instanciando la clase
19. www.senati.edu.pe
Alcance de la POO ( Programación Orientada a Objetos)
1. Objetos son instancias de la clase. Cada
una tiene tiene sus propias variables
que son independientes entre sí a estas
se las conoce como variables de
instancia o simplemente atributos.
Asimismo contamos con métodos a los
cuales llamamos métodos de instancia o
métodos; si cambian los valores o se
ejecutan procedimientos estos no
afectan al resto de las instancias.
2. Variables estáticas o variables de clase,
son compartidas por todos los objetos,
es decir, cuando un objeto la modifica
este cambio se refleja en todas las
instancias.
El objeto se crea, cuando
instanciamos una clase, es decir,
crear una variable que sea de tipo
de la clase creada
Objeto1=nombreClase()
Las funciones son los métodos que
nosotros creamos dentro de la clase
20. www.senati.edu.pe
Definición de Clases
Nos Referimos a información
organizada, sistematizada de
acuerdo a una clasificación, y
esto es algo que a diario
hacemos, para referirnos a
objetos que tienen las mismas
características y
funcionalidades.
Clasificar y determinar objetos
es propio del ser humano, así
surgió esta forma de
programación.
Ejemplos
Clase: Motocicleta
Características:
Marca
Numero de llantas
Numero Serie
Placa
Color
Cilindraje
Operaciones
Arrancar(on)
Apagar()
Acelerar()
Frenar()
Virar(a,b,c)
23. www.senati.edu.pe
Desarrollo de Ejemplo de Aplicación 1
1. Clase Motocar
Clase: Motocar
Marcar
Color : Azul
Modelo: GN100
Num Llantas:
Serie:
Placa
Propietario:
Asientos:
capCarga:
Arancar()
Frenar()
Anvazar()
Pitar()
Estacionar()
CambiarVelicudad()
SubirCarga()
Virar(a,b,c)
SeñalDireccion()
Apagar()
medifGasolina()
24. www.senati.edu.pe
Definición de Objetos
Un objeto modela una entidad del
mundo real, lo que se conoce como
atracción de un elemento del
problema.
Es un dato de tipo de finido por su
clase, lo que se conoce como una
instancia de la clase
Un objeto tiene la capacidad de
acezar a las propiedades y métodos
de las clases
Tenemos a la clase Motokar:
Un objeto seria:
Honda de color Azul
Honda de 250cc3
La Honda acelera a razón de 30km/h2
En notación de programación en
Python seria:
Honda.color=azul
Honda.cilindraje=250
Honda.acelerar(30)
Del ejemplo Anterior
25. www.senati.edu.pe
Estado de un Objeto
Abarca todas las propiedades del objeto, y los valores
actuales de cada una de esas propiedades. Las
propiedades de los objetos suelen ser estáticas, mientras
los valores que toman estas propiedades cambian con el
tiempo.
1. EL estado de un objeto implica que ocupan un
espacio, ya en el mundo físico , ya en la memoria del
ordenador.
2. Está influido por la historia del objeto.
3. No deben confundirse los objetos, que existen en el
tiempo, son mutables, tienen estado, pueden ser
creados, destruidos y compartidos..., con los valores
4. El estado de un objeto representa su comportamiento.
26. www.senati.edu.pe
Comportamiento de un Objeto
Es como un objeto actua y reacciona, en términos de sus cambios de
estado y de los mensajes que intercambia.
Representa su actividad externamente visible y testable. Son las
operaciones que una clase realiza (llamadas también mensajes) las
que dan cuenta de como se comporta la clase
1. Modificador: altera el estado de un objeto.
2. Selector: accede al estado de un objeto, sin alterarlo.
3. Iterador: permite a todas las partes de un objeto ser accedidas
en un orden.
4. Constructor: crea un objeto y/o inicializa su estado.
5. Destructor: libera el estado de un objeto y/o destruye el objeto.
27. www.senati.edu.pe
Propiedades, Métodos y Objetos
En Entorno Real En Estructurado EN POO
Características variables Propiedades o datos Miembro, o
Atributos
Acciones funciones Métodos
Elemento
especifico
No existe Instancia de la clase
28. www.senati.edu.pe
Tipos de Métodos de un Clase
1. Métodos que retornan
UN valor
2. Métodos que retornan
un procedimiento
Ejemplo:
Métodos que calcula y muestra el
promedio de notas.
Método que calcula y devuelve el
área de un triangulo
Ejemplo:
Métodos que lea las notas de un
alumno.
Método que imprima en pantalla
los términos de un proyección
estadistica
29. www.senati.edu.pe
Fases de la Vida de un objeto
1. Las fases son:
Creación del
Objetos:
Constructor
Creación de
la instancia
del Objetos
Destrucción
del Objetos:
Destructor
31. www.senati.edu.pe
Desarrollo de Ejemplo de Aplicación 2
MotocarMagenta=Motocar()
MotocarMagenta.Marca=“Honda”
MotocarMagenta.Virar(1,0,0)
MotocarNefi=Motocar()
MotocarNefi.Color=“Verde”
Clase: Motocar
Marca
Color : Azul
Modelo: GN100
Num Llantas:
Serie:
Placa
Propietario:
Asientos:
capCarga:
Arancar()
Frenar()
Anvazar()
Pitar()
Estacionar()
CambiarVelicudad()
SubirCarga()
Virar(a,b,c)
SeñalDireccion()
Apagar()
medifGasolina()
32. www.senati.edu.pe
Abstracción y Ocultamiento de Información
Abstracción: tiene que ver con traer de la vida real
al modelado e implantación en un software
Ocultamiento de Información: Es que el Usuario
solo debe tener acceso a los datos que le son de su
interés, y del modo que le corresponde, por ejemplo
solo lectura, solo escritura o de ambos
Existe un estándar par definir estos métodos, son:
setNombre: permite asignar un valor al campo
getNombre: permite leer el valor del campo
33. www.senati.edu.pe
Constructores
• Es un método que sirve para inicializar las propiedades de una clase.
• Se ejecuta cuando se crea el objeto.
• Siempre es publico
• NO retorna ningún valor.
• En python se hace con __init__
Destructores
1. Es el método contrario al constructor
2. Su uso por excelencia es ser el compilador de python
3. En python se hace con __del__
37. www.senati.edu.pe
Sobrecargas de operaciones
1. Un método se identifica por su nombre, la
cantidad de parámetros y el tipo de sus
parámetros; esto es la firma del método
2. La sobrecarga perite tener varios métodos
con el mismo nombre pero con diferentes
firma
3. Los métodos tendrán comportamientos
diferentes según el tipo de datos de sus
parámetros
Ejemplo Explicativo
El operador + si esta
con tipo de datos
numéricos, sumara
El operador + si esta
con tipo de datos
cadena,
concatenara.
41. www.senati.edu.pe
Preguntas de Investigación 1
1. Que es un lenguaje Compilado
2. Que es IDE
3. Hable sobre Indentacion en Python
4. ¿Se puede programar en el Shell de Python?.
Explique su respuesta
5. Que es algoritmo
6. Que es un lenguaje de programación, nombre 10
de ellos
7. Que es una variable en Python y un tipo de datos
en Python
42. www.senati.edu.pe
Bloque de Ejercicios 1
Desarrollar los siguientes algoritmos y prográmelos en Python:
1. Realizar un sistemita con clases que calcule el área y perímetro de un triangulo
rectángulo. Nota este primer ejercicio desarróllalo con programación estructurada y
luego con POO, para tener diferencias claras entre ellas.
2. Realizar un sistemita con clases que calcule el área y perímetro de una circunferencia.
También hazlo con PEstruc
3. Dado un numero entero, dar como resultado: el doble de ese numero si este es
positivo; el triple si es negativo; y cero si neutro.
4. Dado tres longitudes, diga si forman un triangulo.
5. Determinar si un numero es múltiplo de tres y de cinco
6. Obtener la suma de los primeros N números naturales positivos
7. Dado un rango de número enteros, obtener la cantidad de números pares e impares
enteros que contiene.
8. Dado un numero entero positivo, obtener la cantidad de los primeros N números
múltiplos de 5
9. Dado un numero entero determinar cuantos dígitos tiene
10. Dado un numero devolver el digito mayor
11. Dado dos números diga si son amigos, dos números son amigos si la suma de sus
divisores son iguales. Por ejemplo los divisores de 220 son:
1+2+4+5+10+11+20+22+44+55+110=284. Los divisores de 284 son:
1+2+4+71+142=220. entonces 220 y 284 son amigos
12. Dado un numero devuelve el inverso del numero.
43. www.senati.edu.pe
Tarea 01
Desarrollar los siguientes ejercicios con POO y prográmelos en
Python:
1. Crear una clase con propiedades de métodos de motocar
2. Crear un clase con propiedades de clase de bufeo colorado
3. Crear una clase usando el constructor y destructor de la
clase
4. Calcular el área y el perímetros de un trapecio. Hacerlo con
programación estructurada y con POO
5. Determinar si un numero entero es par o impar
6. Dodo tres números enteros y positivos, devolver el numero
mayor