Fundamentos de la programación orientada a objetos.
1. Resumen
4. Conclusiones
5. Bibliografía
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 Servicio | 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
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 Dirección 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 la clase Persona |
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 la clase Persona |
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 la clase Trabajador |
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 la clase Trabajador |
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
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
Díaz Iglesias, Jack y Pérez González, Franklin. Delphi 5 Básico.-- Ciudad de
Curso por correo electrónico sobre Borland Delphi.
Autor:
Asistente Juan Antonio Fonseca Hernández.
No hay comentarios:
Publicar un comentario