Logo Studenta

Clase 2 parte 1

¡Este material tiene más páginas!

Vista previa del material en texto

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Optativa 1 TUP: Desarrollo en Python
POO 1era parte
Dr. Cristian Martínez
Departamento de Informática
Universidad Nacional de Salta
Agosto, 2019
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Agenda
1 POO
Introducción
Conceptos Iniciales
Código en Python
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
POO Introducción
Como mencionamos anteriormente, a medida que el programa crece,
debemos organizar/estructurar el código para que:
Sea entendible
Sea mantenible
Sea extensible
Sea una herramienta de documentación
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
POO Introducción
En ese sentido hemos indicado que la Programación Procedural es una
altenativa.
No obstante, y en estos tiempos, debemos pensar en otro paradigma:
POO.
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
POO Conceptos Iniciales
Entre tantas definiciones que podemos encontrar, una de ellas es la
siguiente: ”POO propone resolver un problema computacional a partir de
la colaboración entre objetos”.
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
POO Conceptos Iniciales
Para poder usar los objetos, éstos deben definirse. Pero antes que eso,
deberíamos tener en cuenta que:
Los objetos realizan tareas
Para realizar estas tareas, necesitan información
Y pueden necesitarse más de un objeto
Los objetos para realizar estas tareas, deben ser distinguibles
Dos detalles más:
Los objetos pueden realizar tareas diferentes
Una máxima: para resolver un problema, los objetos
deben colaborar
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
POO Conceptos Iniciales
Ejemplo de ”objetos”
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
POO Conceptos Iniciales
Cada vez que resolvemos un problema computacional, debemos tener
presente que hacemos una abstracción de la realidad. Esa abstracción es
un modelo.
Si quisiéramos desarrollar un videjuego de fútbol y a partir de la foto
anterior, comencemos a pensar en objetos!:
Problema computacional: Desarrollar un videjuego de fútbol.
Para simplificar, pensemos en un equipo de fútbol. Son 11 jugadores
que deben jugar en equipo con el objetivo de ganar.
Hasta acá tenemos: 11 objetos que deben colaborar para ganar un
partido. Para ello, los jugadores saben (tareas) dar pase, cabecear,
patear, correr, …. Muy importante: deben comunicarse y deben
distinguirse.
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
POO Conceptos Iniciales
Ya tenemos una idea de objetos, colaboración, distinción, tareas.
Pasemos al modelo!
En este punto, necesitamos lograr un modelo que logre
cierta abstracción de la realidad. En UML sería un
diagrama de clases. Nosotros nos quedaremos con clase.
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
POO Conceptos Iniciales
Qué es una clase?
Las clases son plantillas para la creación de objetos.
Las clases deben especificar atributos (datos) y meétodos
(tareas/acciones) de los objetos.
Un diagrama de clases es un modelo gráfico que permite visualizar las
clases a utilizar para resolver un problema computacional.
Más allá de la importancia del diagrama de clases,
debemos especificar las clases en un fichero .py
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
POO Conceptos Iniciales
Ya lo decía Dón Ramón: Sin piñata no hay posada.
Para nosotros: Sin clases, no hay programa orientado a
objetos!
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
POO Conceptos Iniciales
Qué es un objeto?
Un objeto es la instancia de una clase. Son entidades provistas de datos y
funcionalidad necesaria para resolver un problema computacional.
La instanciación es la lectura de las especificaciones de una clase y la
creación de un objeto a partir de la misma.
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
POO Conceptos Iniciales
Atributo y método
Método: algoritmo asociado a un objeto cuya ejecución se desencadena
tras la recepción de un ”mensaje”.
Desde el punto de vista del comportamiento, es lo que el objeto puede
hacer.
Atributo: contenedor de un tipo de dato asociado a un objeto, cuyo valor
puede ser alterado por la ejecución de algún método.
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
POO Conceptos Iniciales
La selección, clases y objetos!
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
POO Código en Python
Especificación de clase Jugador
class Jugador:
def __init__(self, ID, Apenom, posicion):
self.ID = ID
self.Apenom = Apenom
self.posicion = posicion
def cabecear(self):
# aca va codigo
def patear(self):
# aca va codigo
def sacarLateral(self):
# aca va codigo
def correr(self):
# aca va codigo
def darPase(self):
# aca va codigo
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
POO Código en Python
Instanciación
diego = Jugador(2245, ’Diego Maradona’, 10)
batista = Jugador(2246, ’Jorge Batista’, 5)
ruggeri= Jugador(2247, ’Oscar Ruggeri’, 6)
Sin embargo, falta un método que haga jugar un equipo
contra otro!
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
The End
C. Martínez (DI-UNSa) Optativa 1 TUP: Desarrollo en Python Agosto, 2019
	POO
	Introducción
	Conceptos Iniciales
	Código en Python

Continuar navegando