Está en la página 1de 17

POO

Optativa 1 TUP: Desarrollo en Python


POO 1era parte

Dr. Cristian Martínez | José I. Tuero

Departamento de Informática
Universidad Nacional de Salta

Setiembre, 2022

1 / 17
POO

Agenda

1 POO
Introducción
Conceptos Iniciales
Código en Python

2 / 17
Introducción
POO Conceptos Iniciales
Código en Python

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

3 / 17
Introducción
POO Conceptos Iniciales
Código en Python

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.

4 / 17
Introducción
POO Conceptos Iniciales
Código en Python

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”.

5 / 17
Introducción
POO Conceptos Iniciales
Código en Python

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

6 / 17
Introducción
POO Conceptos Iniciales
Código en Python

Ejemplo de ”objetos”

7 / 17
Introducción
POO Conceptos Iniciales
Código en Python

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.

8 / 17
Introducción
POO Conceptos Iniciales
Código en Python

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.

9 / 17
Introducción
POO Conceptos Iniciales
Código en Python

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

10 / 17
Introducción
POO Conceptos Iniciales
Código en Python

Ya lo decía Dón Ramón: Sin piñata no hay posada.

Para nosotros: Sin clases, no hay programa orientado a


objetos!

11 / 17
Introducción
POO Conceptos Iniciales
Código en Python

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.

12 / 17
Introducción
POO Conceptos Iniciales
Código en Python

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.

13 / 17
Introducción
POO Conceptos Iniciales
Código en Python

La selección, clases y objetos!

14 / 17
Introducción
POO Conceptos Iniciales
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
15 / 17
Introducción
POO Conceptos Iniciales
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!

16 / 17
POO

The End

17 / 17

También podría gustarte