Este documento explica los conceptos básicos de la programación orientada a objetos en Python. Introduce los principios de clases, objetos, atributos, métodos, encapsulación, herencia, polimorfismo y sus beneficios. Explica cómo definir clases, crear objetos e instanciarlas para modelar el mundo real.
Se da una introducción a la manipulación y caracteres y cadenas en el lenguaje de programación C. Se muestran algunas funciones de librerías estándar de C con ejemplos de su uso. Se muestra el uso de punteros para manejar cadenas. Finalmente se muestra la conversión entre tipos de datos en C.
Se da una introducción a la manipulación y caracteres y cadenas en el lenguaje de programación C. Se muestran algunas funciones de librerías estándar de C con ejemplos de su uso. Se muestra el uso de punteros para manejar cadenas. Finalmente se muestra la conversión entre tipos de datos en C.
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• POO - atributos y métodos
Creado por Ing. Alvaro Enrique Ruano
Tecnológico Nacional de México
ingeniería en Sistemas Computacionales
Programación Orientada a Objetos
Unidad 6 archivos
En este material se manejan archivos de texto y archivos binarios.
Objetivo: Diseñar los datos de manera organizada a través de los tipos de datos estructurados y punteros para la representación de la información en los sistemas del mundo real.
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• POO - atributos y métodos
Creado por Ing. Alvaro Enrique Ruano
Tecnológico Nacional de México
ingeniería en Sistemas Computacionales
Programación Orientada a Objetos
Unidad 6 archivos
En este material se manejan archivos de texto y archivos binarios.
Objetivo: Diseñar los datos de manera organizada a través de los tipos de datos estructurados y punteros para la representación de la información en los sistemas del mundo real.
Apunte de Programación Orientada a objetos explicando las nociones básicas del paradigma.
Apunte creado por Alejandro Canosa para el plan 111 Mil Programadores
Esta es una clase introductoria del CURSO PROFESIONAL DE JAVA ORIENTADO A OBJETOS
El curso lo encuentras en: https://www.udemy.com/course/java-orientado-a-objetos/?referralCode=ED949D58C79D27158E8D
Puedes encontrar cupones de descuento en: https://github.com/gcoronelc/udemy
Te invito a que visites mi canal: www.youtube.com/DesarrollaSoftware
Tecnológico Nacional de México
Ingeniería en Sistemas Computacionales
Programación Orientada a Objetos
Unidad 2: clases y objetos en C#.Net
Material desarrollado para la asignatura de Programación Orientada a Objetos, que se cursa en el segundo semestre de la carrera de ISC.
Temas tratados en el Capítulo 2 del Curso de Fundamentos de Programación en Java - PROGRAMACIÓN ORIENTADA A
OBJETOS CON JAVA.
Unidad de Educación Contínua - UNIDEC
Universidad Central del Ecuador
Ing. Giovanny Moncayo Unda
Convocatoria de becas de Caja Ingenieros 2024 para cursar el Máster oficial de Ingeniería de Telecomunicacion o el Máster oficial de Ingeniería Informática de la UOC
7. ● La programación orientada a objetos es un paradigma de
programación que otorga los medios para estructurar
programas de tal manera que las propiedades y
comportamientos estén envueltos en objetos
individuales
○ En pocas palabras, es un enfoque que nos permite modelar objetos concretos y del
mundo real y las relaciones entre ellos
● Los principios básicos son:
○ Encapsulation
○ Abstraction
○ Inheritance
○ Polyphormism
● Todos los objetos son una instancia de una clase
¿Qué es POO?
8. ● Los tipos básicos en Python
(str, int, bool, etc.) están
diseñados para representar
cosas simples
● Cuando necesitamos crear
estructuras más complejas (por
ejemplo, un hotel), podemos
utilizar clases
● La instancia es el objeto concreto
con valores reales
¿Qué es POO?
class Hotel:#keyword class
pass
#instancia constructor de la clase.
hotel = Hotel()
9. ● Mejor organización a través de
pequeños bloques de código.
● Es más limpio y por ende más
fácilmente legible.
● Facilita el mantenimiento del código.
● Permite Reusar código sin reescribir.
● Abstracción y Encapsulación.
● Herencia y Polimorfismo.
Beneficios de POO
10. La clase es un modelo o prototipo
que define las variables y métodos
comunes a todos los objetos de
cierta clase.
● Plantilla genérica para un
conjunto de objetos de similares
características.
● Se pueden crear numerosos
objetos de una misma clase.
● Desde la perspectiva del
lenguaje, la clase es un tipo de
variable.
El nombre de la clase se escribe en Singular y en CamelCase
Clase
# definición de clase
class <nombre_clase>(<super_clase>):
def __init__(self,<params>):
<expresion>
def <nombre_metodo>(self,<params>):
<expresion>
11. ● Un objeto es una unidad que
engloba en sí mismo características
y comportamiento necesarias para
procesar información. Cada objeto
contiene datos y funciones.
● Es una instancia de un clase.
● Variables en memoria que contienen
el objeto creado a partir de la clase
(plantilla)
Objetos
class Persona:
def init(self, nombre, edad):
self.nombre = nombre
self.edad = edad
def saluda(self, otra_persona):
return f'Hola {otra_persona.nombre,
me llamo {self.nombre}.'
david = Persona('David', 35)
erika = Persona('Erika', 32)
david.saluda(erika) #'Hola Erika, me
llamo David’
12. ● Todas las clases crean objetos y
todos los objetos tienen
atributos. Utilizamos el método
especial __init__ para definir el
estado inicial de nuestra
instancia. Recibe como primer
parámetro obligatorio self (que
es simplemente una referencia a
la instancia).
Atributos de la Instancia
class Hotel:
def __init__(self,
numero_maximo_de_huespedes,
lugares_de_estacionamiento):
self.numero_maximo_de_huespedes =
numero_maximo_de_huespedes
self.lugares_de_estacionamiento =
lugares_de_estacionamiento
hotel =
Hotel(numero_maximo_de_huespedes=50,
lugares_de_estacionamiento=20)
print(hotel.lugares_de_estacionamien
to) # 20
13. ● Características intrínsecas del
objeto.
● Básicamente son las variables del
objeto, solo que técnicamente
pasan a llamarse propiedades o
atributos
Propiedades
14. ● Acciones que puede realizar el
objeto.
● Forma de comunicarse con
objetos.
● Se pueden pasar parámetros a
las funciones en forma de
variables.
Métodos
class Hotel:
...
def anadir_huespedes(self,
cantidad_de_huespedes):
self.huespedes += cantidad_de_huespedes
def checkout(self,
cantidad_de_huespedes):
self.huespedes -= cantidad_de_huespedes
def ocupacion_total(self):
return self.huespedes
hotel = Hotel(50, 20)
hotel.anadir_huespedes(3)
hotel.checkout(1)
hotel.ocupacion_total() # 2
16. ● Característica de la POO que consiste en crear varios métodos con el
mismo nombre pero con diferentes listas de parámetro.
● Cada método sobrecargado es diferenciado al compilar y se ejecuta
el método con la lista de parámetros correspondiente.
Sobrecarga de Métodos
17. ● Enfocarnos en la información
relevante.
● Separar la información
central de los detalles
secundarios.
● Podemos utilizar variables y
métodos (privados o
públicos)
Abstracción
class Lavadora:
def __init__(self):
pass
def lavar(self, temperatura='caliente'):
self._llenar_tanque_de_agua(temperatura)
self._lavar()
def _llenar_tanque_de_agua(self,
temperatura):
print(f'Llenando el tanque con agua
{temperatura}')
def _lavar(self):
print('Lavando la ropa')
lavadora = Lavadora()
lavadora.lavar()
18. ● Permite agrupar datos y su
comportamiento.
● Controla el acceso a dichos
datos.
● Previene modificaciones no
autorizadas.
Encapsulación
class Empleado:
def__init__(self, nombre, apellido):
self.nombre = nombre
self.apellido = apellido
@property
def nombreCompleto(self):
return'{}.{}'.format(self.nombre,
self.apellido)
@fullname.setter
def nombreCompleto(self, name):
nombre, apellido = nombre.split(" ")
self.nombre = nombre
self.apellido = apellido
emp_1 = Empleado('Pepe', 'Perez')
print(emp_1.nombreCompleto)
19. ● Permite modelar una jerarquía
declases.
● Permite compartir
comportamiento común en la
jerarquía.
● Al padre se le conoce como
superclase y al hijo como
subclase.
class Rectangulo:
def __init__(self, base, altura):
self.base = base
self.altura = altura
def area(self):
return self.base * self.altura
class Cuadrado(Rectangulo):
def __init__(self, lado):
super().__init__(lado, lado)
if __name__ == '__main__':
rectangulo = Rectangulo(base=3, altura=4)
print(rectangulo.area())
cuadrado = Cuadrado(lado=5)
print(cuadrado.area())
Herencia
20. ● La habilidad de tomar
variasformas.
● En Python, nos permite
cambiar el
comportamiento de una
superclase para
adaptarloalasubclase.
class Persona:
def __init__(self, nombre):
self.nombre = nombre
def avanza(self):
print('Ando caminando')
class Ciclista(Persona):
def __init__(self, nombre):
super().__init__(nombre)
def avanza(self):
print('Ando moviendome en mi bicicleta')
persona = Persona('David')
persona.avanza()
ciclista = Ciclista('Daniel')
ciclista.avanza()
Polimorfismo