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. type persona = record procedure inicializar(n, a: string; e: integer; var p: persona); function es_mayor(p: persona): boolean; function nombre_completo(p: persona): string; var begin
Supongamos que usamos un lenguaje procedural como Pascal para el siguiente ejemplo:
program personas;
nombre: string;
apellido: string;
edad: integer
end;
begin
p.nombre := n;
p.apellido := a;
p.edad := e
end;
begin
return p.edad >= 18
end;
begin
return p.nombre + ” ” + p.apellido;
end;
p: persona;
inicializar(”Juan”, “Perez”, 25, p);
write(nombre_completo(p));
if (es_mayor(p)) then
writeln (” es mayor de edad.”)
else
writeln (” es menor de edad.”)
end.
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.
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.
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 = edaddef nombre_completo(self):
return self.nombre + ‘ ‘ + self.apellidodef es_mayor(self):
return self.edad >= 18p = 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).
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/
1 comentarios:
Hola es el mejor blog que he visto sobre informatica especialmente mil gracias por toda la info de python, diste en el clavo con todo lo que estaba buscando.
Publicar un comentario