Este documento presenta una introducción a la programación orientada a objetos con Python. Explica conceptos básicos como clases, objetos, métodos y atributos. Luego muestra un ejemplo de codificación de una clase Persona con sus métodos nombre_completo() y es_mayor(). Finalmente, recomienda algunas referencias adicionales sobre programación orientada a objetos.
4. DESCRIPCIÓN DEL PROYECTO Nos introducimos ahora en lo que cinco años atrás se consideraba un tema muy avanzado. Actualmente la Programación orientada a objetos se ha convertido en la norma. En algunos lenguajes como Java o Python este concepto tiene tanta aplicación que resulta difícil no toparse con algún objeto por más simple que sea nuestro programa. En mi opinión, las mejores introducciones son: Object Oriented Analysis por Peter Coad & Ed Yourdon. Object Oriented Analysis and Design with Applications por Grady Booch (si podés encontrar la primera edición) Object Oriented Software Construction por Bertrand Meyer (tratá de conseguir la segunda edición)
5. El orden de estos libros es de acuerdo a profundidad, complejidad y exactitud crecientes. Para la mayor parte de los programadores no profesionales el primero es el más adecuado. Para una introducción más focalizada en la programación es recomendado Object Oriented Programming de Timothy Budd (2da edición). pero ha sido recomendado por profesionales cuyas opiniones respeto.
6. Dando por sentado que no tienes tiempo ni ganas para leer todos estos libros o visitar los links, haré ahora una breve presentación del tema. ( Nota: Algunos consideran a la programación orientada a objetos (POO) como algo muy complicado, otros la comprenden de entrada. No te preocupes si te encuentras entre el primer grupo, igualmente podrás utilizar los objetos sin haber comprendido del todo la idea).
7. Una última aclaración: en esta sección usaremos únicamente Python ya que tanto BASIC no soportan objetos. Es posible implementar un diseño orientado a objetos en un lenguaje no orientado a objetos a partir de ciertas convenciones de codificación, pero no siempre es una buena idea y es poco recomendable. Si para resolver un problema encontrar que la mejor solución se halla a partir de un diseño orientado a objetos, lo mejor será utilizar un lenguaje que permita trabajar fácilmente con dichas técnicas.
8. FUNDAMENTO TEÓRICO Este artículo no se trata de un análisis profundo de la programación orientada a objetos, sino simplemente de una simple y breve introducción, intentando dar un panorama inicial a aquellos que no han tenido contacto con (o nunca han entendido) la POO .
9. El programa es bastante sencillo. Primero declaramos un tipo persona que es un registro que contiene los campos nombre , apellido y edad . Luego definimos el procedimiento inicializar que toma el nombre, el apellido, la edad y la persona y asigna los primeros a los campos correspondientes de la última. Luego, un par de funciones ( es_mayor y nombre_completo ) toman una persona y realizan cálculos sobre los valores de sus campos.
10. En los programas procedurales hacemos esto todo el tiempo: definimos estructuras y tipos de datos y luego creamos procedimientos y funciones que toman como parámetros variables de estos tipos y realizan distintas operaciones sobre ellos. Dicho de otra manera: podemos ver a los programas procedurales como un conjunto de procedimientos y funciones que manipulan estructuras de datos pasadas como parámetros.
12. Codificación from cuentabancaria import *# Primero una cuenta bancaria estándara = CuentaBancaria(500)b = CuentaBancaria(200)a.extraccion(100)# a.extraccion(1000)a.transferencia(100,b) print "A = ", a.checkSaldo()print "B = ", b.checkSaldo() # Ahora una cuenta con interésc = CuentaInteres(1000)c.deposito(100)print "C = ", c.checkSaldo()# Luego una cuenta con recargod = CuentaRecargo(300)d.deposito(200)print "D = ", d.checkSaldo()d.extraccion(50) print "D = ", d.checkSaldo ()d.transferencia(100,a)print "A = ", a.checkSaldo() print "D = ", d.checkSaldo()# Finalmente transferimos desde una cuenta con recargo a una con interés# La del recargo deberá cobrarnos el recargo y la cuenta de interés# deberá acreditarnos el interésprint "C = ", c.checkSaldo() print "D = ", d.checkSaldo()d.transferencia(20,c)print "C = ", c.checkSaldo()print "D = ", d.checkSaldo()
13. A continuación, un ejemplo de la versión orientada a objetos utilizando el lenguaje Python : class Persona: def __init__(self, nombre, apellido, edad): self.nombre = nombre self.apellido = apellido self.edad = edad def nombre_completo(self): return self.nombre + ‘ ‘ + self.apellido def es_mayor(self): return self.edad >= 18 p = Persona(’Juan’, ‘Perez’, 25) print p.nombre_completo(), if p.es_mayor: print “es mayor de edad.” else: print “es menor de edad.” Como podemos apreciar, el constructor de la clase se declara como __init__ , en tanto que la referencia al objeto actual se llama self (y debe aparecer como primer parámetro de todos los métodos de la clase, aunque no se utiliza en la invocación de los mismos).
14. Conclusiones y recomendaciones Este artículo no se trata de un análisis profundo de la programación orientada a objetos, sino simplemente de una simple y breve introducción, intentando dar un panorama inicial a aquellos que no han tenido contacto con (o nunca han entendido) la POO . El programa es bastante sencillo. Primero declaramos un tipo persona que es un registro que contiene los campos nombre , apellido y edad . Luego definimos el procedimiento inicializar que toma el nombre, el apellido, la edad y la persona y asigna los primeros a los campos correspondientes de la última. Luego, un par de funciones ( es_mayor y nombre_completo ) toman una persona y realizan cálculos sobre los valores de sus campos . Así como vemos que este programa nos brinda la mayor facilidad de ejecución de programas ya sea en juegos o en diseños gráficos por lo cual este programa brinda esas facilidades de reejecución delos diversos ejercicios q podemos llevas a ejecución mediante la codificación
15. BIBLIOGRAFÍA REFERENCIAS ADICIONALES : Programacion orientada a objetos en Python. http :// blog.rvburke.com /2006/11/22/ programacion -orientada-a-objetos-en- python / Programacion orientada a objetos. http :// blog.smaldone.com.ar /2006/10/27/ programacion -orientada-a-objetos/ Por último, podés probar el sitio http :// www.cetus - links.org donde hay mucha información sobre la orientación a objetos http :// www.freenetpages.co.uk / hp / alan.gauld / spanish / tutclass.htm www.tomialex.blogspot.com