martes, 15 de octubre de 2019

programación Orientada a Objetos en Python

Programación Orientada a Objetos (POO): Guía Completa con Ejemplos

Programación Orientada a Objetos (POO): Guía Completa con Ejemplos

La Programación Orientada a Objetos (POO) es un paradigma de programación que organiza el software en torno a "objetos" y "clases". En este artículo, te explicamos los conceptos clave de POO y te mostramos ejemplos prácticos en Python.

¿Qué es la Programación Orientada a Objetos (POO)?

La POO es un paradigma de programación que se centra en el uso de objetos para modelar la lógica del software. Los objetos son instancias de clases, que actúan como plantillas para definir atributos (datos) y métodos (comportamientos).

Ventajas de la POO:

  • Reutilizabilidad: El código se puede reutilizar en diferentes partes del programa.
  • Modularidad: El código se organiza en módulos independientes (clases).
  • Mantenibilidad: Es más fácil mantener y actualizar el código.
  • Pruebas unitarias: Facilita la creación de pruebas para cada componente.

Conceptos Clave de la POO

Los conceptos fundamentales de la POO son:

1. Clases y Objetos

Una clase es una plantilla o prototipo que define los atributos y métodos de un tipo de dato. Un objeto es una instancia de una clase, con valores específicos para sus atributos.

Ejemplo en Python:


class Coche:
    def __init__(self, marca, modelo):
        self.marca = marca
        self.modelo = modelo

mi_coche = Coche("Toyota", "Corolla")
print(mi_coche.marca)  # Salida: Toyota
    

2. Atributos

Los atributos son características de una clase. Todos los objetos creados a partir de una clase tendrán estos atributos.

Ejemplo:


class Persona:
    def __init__(self, nombre, edad):
        self.nombre = nombre
        self.edad = edad

persona1 = Persona("Juan", 30)
print(persona1.nombre)  # Salida: Juan
    

3. Métodos

Los métodos son funciones definidas dentro de una clase que describen el comportamiento de los objetos.

Ejemplo:


class Calculadora:
    def sumar(self, a, b):
        return a + b

calc = Calculadora()
print(calc.sumar(5, 3))  # Salida: 8
    

4. Constructor (__init__)

El método __init__ es el constructor de una clase en Python. Se llama automáticamente cuando se crea un nuevo objeto.

Ejemplo:


class Animal:
    def __init__(self, nombre):
        self.nombre = nombre

mi_animal = Animal("Perro")
print(mi_animal.nombre)  # Salida: Perro
    

5. Parámetro Self

El parámetro self es una referencia a la instancia actual de la clase. Se utiliza para acceder a los atributos y métodos de la clase.

Ejemplo:


class Libro:
    def __init__(self, titulo, autor):
        self.titulo = titulo
        self.autor = autor

    def mostrar_info(self):
        print(f"Título: {self.titulo}, Autor: {self.autor}")

mi_libro = Libro("Cien Años de Soledad", "Gabriel García Márquez")
mi_libro.mostrar_info()  # Salida: Título: Cien Años de Soledad, Autor: Gabriel García Márquez
    

Ejemplo Completo de POO en Python

Aquí tienes un ejemplo completo que combina todos los conceptos de POO:


class CuentaBancaria:
    def __init__(self, titular, saldo=0):
        self.titular = titular
        self.saldo = saldo

    def depositar(self, cantidad):
        self.saldo += cantidad
        print(f"Depósito de {cantidad} realizado. Saldo actual: {self.saldo}")

    def retirar(self, cantidad):
        if cantidad > self.saldo:
            print("Fondos insuficientes")
        else:
            self.saldo -= cantidad
            print(f"Retiro de {cantidad} realizado. Saldo actual: {self.saldo}")

    def mostrar_saldo(self):
        print(f"Saldo actual de {self.titular}: {self.saldo}")

# Crear una cuenta bancaria
cuenta = CuentaBancaria("Juan Pérez", 1000)
cuenta.depositar(500)  # Depósito de 500 realizado. Saldo actual: 1500
cuenta.retirar(200)    # Retiro de 200 realizado. Saldo actual: 1300
cuenta.mostrar_saldo() # Saldo actual de Juan Pérez: 1300
    

Conclusión

La Programación Orientada a Objetos (POO) es un paradigma poderoso que permite organizar el código de manera modular y reutilizable. Dominar conceptos como clases, objetos, atributos, métodos y constructores te ayudará a escribir software más eficiente y mantenible. ¡Practica con estos ejemplos y lleva tus habilidades de programación al siguiente nivel!

Recursos Adicionales

Si quieres profundizar en el tema, te recomendamos los siguientes recursos:


POO Guia de Instalacion Python



 

Todas las clases tienen la siguiente estructura:

Clase Nombre clase:

          #1 atributos de clase

          #2 constructor

                #2.1 atributos de instancia

          # 3 Métodos

Algunos ejemplos de clases:

a) Ejemplo de clase de números reales

'''clase de numeros complejos en PYTHON''' 
class  complejo :
	 #atributos de clase: no hay

	'''constructor de la clase''' 
	def  __init__ ( self ,real,imaginario):
		 #atritubos de instancia 
		self . real = yo real
		 . imagen = imaginario

	#metodos de la clase complejo 
	def  abs ( self ):
		 print (( self . real * self . real) + ( self . imag * self . imag))

	def  suma ( self ,num2):
		 return complejo( self . real + num2 . real, self . imag + num2 . imag)

	def  mostrar ( auto ):
		 imprimir ( auto . real)
		 imprimir ( auto . imag)

b) Clase Animal
  '''Clase Animal''' 
  class  Animal :
	 #constructor 
	def  __init__ ( self ):
		 print ( "Animal creado" )
		
		#metodos 
	def  quienSoy ( self ):
		 print ( "Animal" )
	 def  comer ( self ):
		 print ( "estoy comiendo" )
  #------------------------------ 
#clase padre Animal, Perro hereda 
  class  Perro (Animal):
	 def  __inti__ ( self ):
		animales _ __ini__( self )
		 print ( "perro creado" )
	 #metodos 
	def  quienSoy ( self ):
		 print ( "perro" )

	def  ladrar ( self ):
		 print ( "guau, guau, guau" )
#------------------------ 
def  main ():
	 #creando objetos de la clase 
	d = Perro()
	 #usando sus métodos 
	d . quienSoy()
	re . contendiente()
	re . ladrar()


si __nombre__ == '__main__' :
	main()
#------------------------ 


c) Clase Vehiculo

class Vehiculo:
	#atributos de la clase
	contador=0
	def __init__(self,color):
		#atributos de instancia
		Vehiculo.contador += 1
		serie=Vehiculo.contador
		self.color=color

#instanciando la clase Vehiculo
auto1=Vehiculo("Azul")
auto2=Vehiculo("Verde")


d) Clase Vehiculo con encapsulamiento

class Vehiculo:
	#atributos de la clase
	contador=0
	colores=("BLANCO","ROJO","VERDE")
	
	def __init__(self,color):
		#atributos de instancia
		Vehiculo.contador += 1
		serie=Vehiculo.contador
		#encapsulamiento
		self.set_color(color)

	#para controlar qque se creen solo 3 colores
	def set_color(self,color):
		#convertiendo a mayuscula y quitando espacio
		color.upper.strip()
		if color in Vehiculo.colores:
			self.color=color
		else:
			#si no especifica color, ponemos
			#por defecto el primero de la dupla
			self.color=Vehiculo.colores[0]

#instanciando la clase Vehiculo
auto1=Vehiculo("Azul")
auto2=Vehiculo("Verde")

Procedimiento. -  Es una operación que modifica el estado de uno, varios o todas las propiedades de un objeto.

Función. - Devuelve un solo resultado

¿Cuáles son los pasos para resolver problemas de aplicación?

a) Análisis

b) Encontrar los parámetros de entrada y salida

c) Diseño del algoritmo y implementación

2           Manejo de números enteros

 Creación de la clase Números Enteros

'''clase numero entero''' 
class  Nentero :
     def  __init__ ( self ,value):
         self . n = valor
     def  getData ( self ):
         devuelve  self . n
     def  setData ( self ,numero):
         self . n = numero
     def  mostrar ( self ):
         print ( self . n)

def  main():
    n1 = Nentero( 5 )
     print ( "el objeto es:" ,n1 . mostrar())

si __nombre__ == "__principal__" :
    main()

3           Manejo de vectores

4           Manejo de matrices

5           Manejo de caracteres

 

No hay comentarios:

Publicar un comentario