John Cardozo
Software Engineer
John Cardozo
John Cardozo
UML: Diagrama Estático de Clases
Clases
Atributos
Métodos
Objetos
Listas de objetos
Nombre
Atributos
Métodos
Clase
Clase1
Relaciones
Clase2
*
Clase1 tiene muchos Clase2
Clase1
Clase2
3
Clase2 tiene 3 Clase1
class Persona:
nombre = ''
edad = 0
Definición de clase
# Crea el objeto
p = Persona()
# Modifica los atributos
p.nombre = 'Luis'
p.edad = 64
# Obtiene e imprime los atributos
print(p.nombre)
print(p.edad)
Creación de objetos
class Persona:
nombre = ''
edad = 0
def __init__(self, nombre, edad):
self.nombre = nombre
self.edad = edad
Definición de clase
p = Persona(nombre='Luis', edad=4)
print(p.nombre)
print(p.edad)
Creación de objetos
Sin constructor
Con constructor
class Persona:
nombre = ''
edad = 0
def __init__(self, nombre, edad):
self.nombre = nombre
self.edad = edad
def es_adulto(self):
return self.edad >= 18
def obtener_nombre(self):
return 'Este es el nombre de la persona: {0}'.format(self.nombre)
def __str__(self):
return 'Nombre = {0}, Edad= {1}'.format(self.nombre, self.edad)
Definición de clase con métodos (constructor, str y negocio)
# Instanciación de la clase (creación de objeto)
p = Persona(nombre='Luis', edad=4)
# Acceso a los atributos del objeto
print(p.nombre)
print(p.edad)
# Uso implícito del método str de la clase Persona
print(p)
# Invocación de un método de negocio
p.es_adulto()
Invocación de métodos
class Empleado(Persona):
salario = 0
__deuda = 0 # Atributo privado
def tiene_salario_asignado(self):
return self.salario != 0
def obtener_nombre(self):
return 'Nombre de empleado: {0}'.format(self.nombre)
La clase Empleado hereda de la clase Persona
Clase Padre
Clase Hija
# Creación de objeto hijo
e = Empleado(nombre='Luis', edad=20)
# Accede a los atributos de la clase
print(e)
e.salario = 200
print(e.salario)
# Invoca un metodo de la clase hija
print(e.tiene_salario_asignado())
# Invoca un método sobreescrito
print(e.obtener_nombre())
Acceso a atributos y métodos de la clase hija
# Crea una lista
personas = []
# Crea personas
p1 = Persona(nombre='Axl', edad=28)
p2 = Persona(nombre='Bono', edad=32)
p3 = Persona(nombre='Mick', edad=43)
p4 = Persona(nombre='Brian', edad=40)
# Agrega personas a la lista
personas.append(p1)
personas.append(p2)
personas.append(p3)
personas.append(p4)
# Imprime las personas
for persona in personas:
print(persona)
Objetos en una lista
class Clase():
materia = ''
creditos = 0
class Estudiante():
nombre = ''
clases = []
c1 = Clase()
c1.materia = 'POO'
c1.creditos = 4
c2 = Clase()
c2.materia = 'Programacion'
c2.creditos = 2
e = Estudiante()
e.nombre = 'John'
# Agrega objetos a un atributo de un objeto
e.clases.append(c1)
e.clases.append(c2)
print(e.nombre)
for clase in e.clases:
print('Materia: {0} - Créditos: {1}'.format(clase.materia, clase.creditos))
Definición de clases
Agregar objetos al atributo
Acceso a atributos de la clase
johncardozo@gmail.com
By John Cardozo
Clases, objetos, atributos