3. Programacion Orientada a Objetos
- Paradigma de Programacion en la que los
“Objetos”son la base de su logica.
- Caracteristicas fundamentales
1. Encapsulamiento
2. Herencia
3. Polimorfismo
4. Abstraccion
- Propiedades de Objetos
1. Identidad
2. Estados
3. Funcionalidad
4. Conceptos POO
Clase: Definicion de propiedades y funciones de
un Tipo de objeto concreto.
Objeto: Instancia de una clase. Provista de las
metodos y propiedades descritas en la
definicion (Clase)
Metodo: Algoritmo asociado a un objeto o
clase.
Propiedades: Variables internas de clase definen
su estado.
5. Definicion de Clases y Objetos
class Clase:!
[instruccion]!
[instruccion]!
[instruccion]!
...!
[instruccion]!
!
a = Clase()
class MiClase:!
i = 12345!
def f(self):!
return 'Hola Mundo'!
!
!
>>> a = MiClase()!
>>> print a.i!
12345!
>>> a.f()!
Hola Mundo!
!
6. Definicion de Clases y Objetos
class Persona:!
nombre = “”!
def saludar(self):!
return 'Hola '+self.nombre!
!
!
>>> a = Persona()!
>>> a.nombre = “Maria”!
>>> a.saludar()!
Hola Maria!
!
- Las propiedades se definen asignandole
valores directamente.
- Los metodos y funciones deben llevar un primer
parametro obligatorio. Referencia del objeto.
Por convencion, “self”
7. Definicion de Clases y Objetos
class Persona:!
nombre = “”!
def saludar(self):!
return 'Hola '+self.nombre!
!
!
>>> a = Persona()!
>>> a.nombre = “Maria”!
>>> a.saludar()!
Hola Maria!
!
- Las propiedades se definen asignandole
valores directamente.
- Los metodos y funciones deben llevar un primer
parametro obligatorio. Referencia del objeto.
Por convencion, “self”
8. Inicializadores de Clases
- El metodo especial __init__(self,...) nos permite
controlar el estado de las variables de instancia
cuando se crea un objeto.
class Hora:!
hora = 0!
minutos = 0!
!
def __init__(self, h, m):!
if 0<h<23:!
self.hora=h!
if 0<m<59:!
self.minuto=m!
!
a = Hora(13,56)
9. Herencia de Clases
- Una Clase puede heredad de otra todas sus
propiedades y metodos.
- Los inicializadores no se heredan
- Se puede utilizar metodos de la Clase base
utilizando: Base.metodo(self, parametros)
class HoraExtendida(Hora):!
segundos = 0!
!
def __init__(self, h, m, s):!
Hora.__init__(self,h,m)!
if 0<s<59:!
self.segundos = s!
!
a = HoraExtendida(13,56,10)
10. Las Excepciones son Clases
- Podemos crear nuestra propia Jerarquia de
Excepciones heredando de la clase base
“Exception”
class ParametrosIncorrectos(Exception):!
pass