En este artículo el autor hace una sucinta
descripción de los fundamentos de la
programación
orientada a objetos, necesaria para aquellos que no poseen
nociones sobre esta materia, y
material de consulta para los que la conocen o
dominan.
En el universo de la
programación actual, es de amplio consenso que la
programación orientada a objetos es el mejor paradigma
disponible para enfrentar las cada vez más complejas
tareas de la programación. Sin embargo, no todos los
programadores tienen claro los fundamentos de este paradigma, y
tienden a confundir la programación usando objetos con la
programación orientada a objetos.
En Visual Basic, por
ejemplo, se usan objetos (componentes) sin que ello implique que
estemos en presencia de un lenguaje
orientado a objetos.
Programamos orientado a objetos cuando, usando un
lenguaje de
programación, somos capaces de modelar el problema en
términos de objetos y sus relaciones.
Es decir cuando cada entidad en el programa es un
objeto que brinda determinados servicios.
En este trabajo se
hace una sucinta descripción de los fundamentos de la
programación orientada a objetos, necesaria para aquellos
que no poseen nociones sobre esta materia, y material de consulta
para los que la conocen o dominan.
La programación orientada a objetos es la
expresión de uno de los más avanzados paradigmas en
el campo de la programación, y es, al mismo tiempo, el
resultado de la evolución experimentada por los paradigmas
anteriores.
A diferencia de otros paradigmas de programación,
que intentan, al abordar un problema, representarlo o modelarlo
empleando entidades cercanas a la computadora
(arreglos, subrutinas, módulos) la programación
orientada a objetos se propone emplear entidades lo más
cercanas posibles a la realidad.
La programación orientada a objetos tiene como
conceptos fundamentales los conceptos de objeto y clase.
Un objeto es un ente que posee sus
características propias (propiedades) y un conjunto de
acciones que
es capaz de realizar (métodos).
Una clase es un ente abstracto que permite declarar las
propiedades y los métodos de objetos similares.
Un lenguaje de programación orientado a objetos
debe permitir al programador realizar definiciones de clases, y
construir objetos a partir de esas clases.
Para resolver un problema bajo el paradigma de la
programación orientada a objetos basta con determinar y
caracterizar los diferentes objetos que intervienen en el
problema, definir sus propiedades y métodos y ponerlos a
interactuar entre sí.
Ejemplo:
Supongamos que se desea diseñar una
aplicación para controlar a todo el personal que
estudia o trabaja en el Instituto Superior Pedagógico
conociendo la información correspondiente a cada uno de
ellos.
Trabajadores Docentes | Trabajadores de | Estudiantes |
Nombre | Nombre | Nombre |
Dirección | Dirección | Dirección |
Número de Identidad | Número de Identidad | Número de Identidad |
Sexo | Sexo | Sexo |
Fecha de Ingreso | Fecha de Ingreso | Año |
Cargo | Cargo | Especialidad |
Salario | Salario | |
Departamento | Área | |
Asignatura |
Tabla #1
Inicialmente podríamos pensar en declarar tres
clases : TDocente, TServicio y Estudiante; pero si analizamos la
información observamos que hay propiedades que se repiten
en las tres clases como son: Nombre, Dirección, Número de Identidad y
Sexo por lo
que se pudiera declarar una clase Persona que
agrupe estas propiedades comunes y así no tener que
repetirlas en cada una de las clases por lo que tendríamos
ahora cuatro clases:
pero aún quedan, en las clase TDocente y
TServicio propiedades comunes por lo que se pudiera declarar una
clase Trabajador con las propiedades Fecha Ingreso, cargo y
Salario quedando
finalmente cinco clases:
De acuerdo a las clase que hemos concebido podemos decir
que un Estudiante es una Persona que tiene un año y una
especialidad; un Trabajador es una Persona que tiene una fecha de
ingreso, un cargo y un salario; un Trabajador docente es un
Trabajador que tiene un departamento y una asignatura y un
Trabajador de servicio es un
Trabajador que tiene área.
Los Estudiantes y los Trabajadores forman subconjuntos
de las Personas. La clase Persona es la Clase Base de las clases
Estudiante y Trabajador por lo que estas clases heredan las
propiedades y los métodos de la clase Persona.
De manera similar los Trabajadores Docentes y los
Trabajadores de Servicio son subconjuntos de los Trabajadores por
lo que la clase Trabajador es Clase Base de las clases TDocente y
TServicio y por tanto heredan las propiedades y los
métodos de la clase Trabajador.
Luego las cinco clases serían:
Clase Persona |
Propiedades: Nombre Dirección Número de Identidad Sexo |
Métodos: Entrar Visualizar Nombre Visualizar Dirección Visualizar Número Identidad Visualizar Sexo |
Tabla #2
Puedes constatar que no hemos definido métodos
para Entrar nombre, Entrar número de identidad, ni Entrar
sexo porque no tienen sentido; la persona no puede cambiar su
nombre, número de carné de identidad, ni sexo ella
misma.
Nuestra persona tiene la posibilidad de cambiar de
dirección y de visualizar su nombre, dirección,
número de identidad y sexo.
Clase Trabajador |
Propiedades y métodos de |
Propiedades: Fecha de Ingreso Cargo Salario |
Métodos: Entrar Cargo Entrar Salario Visualizar Fecha de Ingreso Visualizar Cargo Visualizar Salario |
Tabla #3
Nuestro trabajador tiene la posibilidad de cambiar de
cargo y de salario y de visualizar su cargo, salario y fecha de
ingreso; pero también puede cambiar su dirección y
visualizar su nombre, dirección, número de
carné de identidad y sexo porque es a la vez un trabajador
y una persona.
Clase Estudiante |
Propiedades y métodos de |
Propiedades: Año Especialidad |
Métodos: Entrar Año Visualizar Año Visualizar Especialidad |
Tabla #4
Nuestro estudiante tiene la posibilidad de cambiar de
año y de visualizar el año que cursa y su
especialidad; pero también puede cambiar su
dirección y visualizar se nombre, dirección,
número de carné de identidad y sexo porque es a la
vez un estudiante y una persona.
Clase TDocente |
Propiedades y métodos de |
Propiedades: Departamento Asignatura |
Métodos: Entrar Departamento Entrar Asignatura Visualizar Departamento Visualizar Asignatura |
Tabla #5
Nuestro trabajador docente tiene la posibilidad de
cambiar de departamento y de asignatura y de visualizar el
departamento y la asignatura a la que pertenece; pero
también puede cambiar su dirección, cargo y salario
y visualizar su nombre, dirección, número de
carné de identidad, sexo y fecha de ingreso porque es a la
vez un trabajador docente y un trabajador que es a su vez una
persona.
Clase TServicio |
Propiedades y métodos de |
Propiedades: Área |
Métodos: Entrar Área Visualizar Área |
Tabla #6
Nuestro trabajador de servicio tiene la posibilidad de
cambiar de área y de visualizar el área donde
trabaja; pero también puede cambiar su dirección,
cargo y salario y visualizar su nombre, dirección,
número de carné de identidad, sexo y fecha de
ingreso porque es a la vez un trabajador de servicio y un
trabajador que es a su vez una persona.
Los objetos que intervienen en la solución de
este problema son las instancias de las clases TDocente,
TServicio y Estudiante que se llenan con datos reales. Por
ejemplo:
El trabajador docente Juan, que vive en la Calle 5 # 29,
con número de carné de identidad 57062406503, del
sexo masculino, con fecha de ingreso 1/9/94, que ocupa el cargo
de profesor, con
salario de 620 pesos, perteneciente al departamento de Informática, y que imparte la asignatura de
Programación.
El trabajador de servicio Pedro, que vive en Maceo # 39,
con número de carné de identidad 61120306325, del
sexo masculino, con fecha de ingreso 2/7/91, que ocupa el cargo
de electricista, con salario de 230 pesos, y que pertenece al
área de mantenimiento.
La estudiante María, que vive en el Edificio #
78, con número de carné de identidad 65082706224,
del sexo femenino, que está en primer año, y es de
la especialidad de Inglés.
Como ya se dijo, en la programación orientada a
objetos, un programa no es más que una colección de
objetos interactuando entre sí.
Esa interacción se produce a través de
mensajes.
Un mensaje es un pedido al objeto de que ejecute uno de
sus métodos y consta del nombre del objeto y el nombre del
método a
ejecutar. Un mensaje podría ser "Estudiante dígame
su especialidad".
Como se explicó anteriormente, puede considerarse
a un estudiante como una persona y en consecuencia solicitarle
los mismos servicios que a una persona por lo que también
podríamos pedirle al estudiante que nos diga su nombre,
dirección, carne de identidad y sexo.
A esta posibilidad de considerar una instancia de una
clase como instancia de la clase base se le conoce con el nombre
de polimorfismo.
Para entender cómo funciona el paradigma de la
programación orientada a objetos es necesario ver un
programa como una colección de objetos que
interactúan entre sí enviándose mensajes y
cambiando su estado durante
la ejecución.
Resolver un problema bajo el paradigma de la
programación orientada a objetos implica determinar y
caracterizar los diferentes objetos que intervienen en el
problema, definir sus propiedades y métodos y ponerlos a
interactuar.
Rivero Errico, Alfonso J. Introducción a la programación para
Windows con
Visual Basic.–
Ciudad de la Habana : Editorial Pueblo y Educación,
2001
Díaz Iglesias, Jack y Pérez
González, Franklin. Delphi 5
Básico.– Ciudad de la Habana : Editorial Pueblo y
Educación, 2001
Curso por correo
electrónico sobre Borland Delphi.
Autor:
Asistente Juan Antonio Fonseca
Hernández