0% encontró este documento útil (0 votos)
55 vistas28 páginas

Session 16

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
55 vistas28 páginas

Session 16

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 28

Fundamentos de

Tu futuro es
Programación
hoy

Carrera de Administración de Redes y


Comunicaciones

Docente: Ing. Oscar Murillo


Briceño
Alianzas Estratégicas

FUNDAMENTOS DE
PROGRAMACIÓN
Sobre el Curso
El curso está orientado a la enseñanza de fundamentos
de Programación en el lenguaje de Programación
Python v 3.0., bajo la modalidad definida por la
Academia de Programming de Cisco. Esta modalidad
consiste en el desarrollo de la currícula PCAP dividida
en 8 módulos presenciales. Durante el curso se
desarrollarán actividades de revisión del contenido
académico y laboratorios prácticos utilizando el
emulador de Python que nos provee el mismo Cisco
(SandBox) o de algún otro IDE para escritorio, así como
el desarrollo de exámenes y actividades orientadas al
entendimiento de estos conceptos de acuerdo con los
temas que considera Cisco en este curso.

. FUNDAMENTOS DE
PROGRAMACIÓN
UNIDAD IV
Módulos, String, POO, Excepciones,
Generadores y Gestión de Archivos

Semana 07
Manejos de métodos y herencia

Logro de la sesión
Al finalizar la sesión, el estudiante podrá implementar
los conceptos de herencia, encapsulamiento y
polimorfismo de la POO a través del lenguaje de
programación Python.

FUNDAMENTOS DE
PROGRAMACIÓN
AGENDA
SESIÓN 14

1. Introducción
2. Conceptos básicos de programación de objetos.
3. ¿Qué es un objeto?
4. Tu primera clase.

FUNDAMENTOS DE
PROGRAMACIÓN
Introducción

¿Qué se entiende por herencia?

FUNDAMENTOS DE
PROGRAMACIÓN
Método __init__ de la clase

El método __init__ es un método especial de una clase


en Python. El objetivo fundamental del método __init__
es inicializar los atributos del objeto que creamos.

FUNDAMENTOS DE
PROGRAMACIÓN
Ejercicio

Confeccionar una clase que represente un empleado.


Definir como atributos su nombre y su sueldo. En el
método __init__ cargar los atributos por teclado y
luego en otro método imprimir sus datos y por último
uno que imprima un mensaje si debe pagar impuestos
(si el sueldo supera a 3000).

FUNDAMENTOS DE
PROGRAMACIÓN
Solución

class Empleado:
# bloque principal
def __init__(self):
empleado1 = Empleado()
self.nombre = input("Ingrese el nombre del empleado: ")
empleado1.imprimir()
self.sueldo = float(input("Ingrese el sueldo: "))
empleado1.paga_impuestos()
def imprimir(self):
print("Nombre: ", self.nombre)
print("Sueldo: ", self.sueldo)
def paga_impuestos(self):
if self.sueldo > 3000:
print("Debe pagar impuestos")
else:
print("No paga impuestos")

FUNDAMENTOS DE
PROGRAMACIÓN
Ejercicios Propuestos

Desarrollar una clase que represente un punto en el


plano y tenga los siguientes métodos: inicializar los
valores de x e y que llegan como parámetros, imprimir
en que cuadrante se encuentra dicho punto (concepto
matemático, primer cuadrante si x e y son positivas, si
x < 0 e y > 0 segundo cuadrante, etc.)

FUNDAMENTOS DE
PROGRAMACIÓN
Ejercicios Propuestos

Desarrollar una clase que represente un Cuadrado y


tenga los siguientes métodos: inicializar el valor del
lado llegando como parámetro al método __init__
(definir un atributo llamado lado), imprimir su perímetro
y su superficie.

FUNDAMENTOS DE
PROGRAMACIÓN
Ejercicios Propuestos

Implementar la clase Operaciones. Se deben cargar


dos valores enteros por teclado en el método __init__,
calcular su suma, resta, multiplicación y división, cada
una en un método, imprimir dichos resultados.

FUNDAMENTOS DE
PROGRAMACIÓN
Llamada de métodos desde otro método de la misma clase

Utilizamos la sintaxis:

[nombre del objeto].[nombre del método]

FUNDAMENTOS DE
PROGRAMACIÓN
Ejercicio

Plantear una clase Operaciones que solicite en el


método __init__ la carga de dos enteros e
inmediatamente muestre su suma, resta, multiplicación
y división. Hacer cada operación en otro método de la
clase Operación y llamarlos desde el mismo método
__init__.

FUNDAMENTOS DE
PROGRAMACIÓN
Solución
class Operacion:
def __init__(self):
self.valor1 = int(input("Ingrese primer valor: ")) # bloque principal
self.valor2 = int(input("Ingrese segundo valor: "))
self.sumar() operacion1 = Operacion()
self.restar()
self.multiplicar()
self.dividir()
def sumar(self):
suma = self.valor1 + self.valor2
print("La suma es: ", suma)
def restar(self):
resta = self.valor1 - self.valor2
print("La resta es: ", resta)
def multiplicar(self):
multi = self.valor1 * self.valor2
print("El producto es: ", multi)
def dividir(self):
divi = self.valor1 / self.valor2
print("La división es: ", divi)
FUNDAMENTOS DE
PROGRAMACIÓN
Colaboración de clases

Normalmente un problema resuelto con la metodología


de programación orientada a objetos no interviene una
sola clase, sino que hay muchas clases que
interactúan y se comunican.

FUNDAMENTOS DE
PROGRAMACIÓN
Ejercicio

Un banco tiene 3 clientes que pueden hacer depósitos


y extracciones. También el banco requiere que al final
del día calcule la cantidad de dinero que hay
depositado.

FUNDAMENTOS DE
PROGRAMACIÓN
Solución

class Cliente:
def __init__(self, nombre):
self.nombre = nombre
self.monto = 0
def depositar(self, monto):
self.monto = self.monto + monto
def extraer(self, monto):
self.monto = self.monto - monto
def retornar_monto(self):
return self.monto
def imprimir(self):
print(self.nombre, "tiene depositado la suma de: ",
self.monto)

FUNDAMENTOS DE
PROGRAMACIÓN
Solución

class Banco:
def __init__(self):
self.cliente1 = Cliente("Juan") # bloque principal
self.cliente2 = Cliente("Ana") banco1 = Banco()
self.cliente3 = Cliente("Diego") banco1.operar()
banco1.depositos_totales()
def operar(self):
self.cliente1.depositar(100)
self.cliente2.depositar(150)
self.cliente3.depositar(200)
self.cliente3.extraer(150)
def depositos_totales(self):
total = self.cliente1.retornar_monto() + self.cliente2.retornar_monto() +
self.cliente3.retornar_monto()
print("El total de dinero del banco es: ", total)
self.cliente1.imprimir()
self.cliente2.imprimir()
self.cliente3.imprimir()

FUNDAMENTOS DE
PROGRAMACIÓN
Herencia

La herencia crea nuevas clases partiendo de clases


existentes, que tendrá todas los atributos y los métodos
de su “superclase” o “clase padre” y además se le
podrán añadir otros atributos y métodos propios.
Clase Padre: Clase de la que desciende o deriva
una clase.
Subclase: Clase descendiente de otra.

FUNDAMENTOS DE
PROGRAMACIÓN
Herencia

La sintaxis para una definición de clase derivada se ve


así:
class ClaseDerivada(ClaseBase):
<declaración-1>
.
.
.
<declaración-N>

FUNDAMENTOS DE
PROGRAMACIÓN
Ejercicio

Plantear una clase Persona que contenga dos


atributos: nombre y edad. Definir como
responsabilidades la carga por teclado y su impresión.
En el bloque principal del programa definir un objeto de
la clase persona y llamar a sus métodos. Declarar una
segunda clase llamada Empleado que herede de la
clase Persona y agregue un atributo sueldo y muestre
si debe pagar impuestos (sueldo superior a 3000).
También en el bloque principal del programa crear un
objeto de la clase Empleado.

FUNDAMENTOS DE
PROGRAMACIÓN
Solución
class Persona: def imprimir(self):
def __init__(self): super().imprimir()
self.nombre = input("Ingrese el nombre: ") print("Sueldo: ", self.sueldo)
self.edad = int(input("Ingrese la edad: ")) def paga_impuestos(self):
def imprimir(self): if self.sueldo > 3000:
print("Nombre: ", self.nombre) print("El empleado debe pagar impuestos")
print("Edad: ", self.edad) else:
class Empleado(Persona): print("No paga impuestos")
def __init__(self): # bloque principal
super().__init__() persona1 = Persona()
self.sueldo = float(input("Ingrese el sueldo: ")) persona1.imprimir()
print("____________________________")
empleado1 = Empleado()
empleado1.imprimir()
empleado1.paga_impuestos()

FUNDAMENTOS DE
PROGRAMACIÓN
Conclusiones

El método __init__ es un método especial y que


equivale más o menos a lo que se conoce como
constructor. Su principal función es establecer un
estado inicial en el objeto nada más instanciarlo, es
decir, inicializar los atributos.

La herencia nos sirve para crear clases nuevas a


partir de clases preexistentes. Se toman (heredan)
atributos y comportamientos de las clases viejas y se
los modifica para modelar una nueva situación.

FUNDAMENTOS DE 25
PROGRAMACIÓN
Referencias Bibliográficas

Si desea saber más acerca de estos temas, puede consultar la


siguiente página:

http://netacad.com

Aquí hallará más información sobre el presente capítulo.

FUNDAMENTOS DE 26
PROGRAMACIÓN
¿Preguntas…?

Expositor:
OSCAR MURILLO BRICEÑO

E-mail:
[email protected]
[email protected]

También podría gustarte