![]() |
Created by FRANCISCO RIOS ACOSTA
about 6 years ago
|
|
Apuntes de Fundamentos de Programación. FRANCISCO RÍOS ACOSTA Instituto Tecnológico de la Laguna Blvd. Revolución y calzada Cuauhtémoc s/n Colonia centro Torreón, Coah; México Contacto : friosam@prodigy.net.mx
1 Conceptos básicos del modelo orientado a objetos. La orientación a objetos es una forma de hacer frente a la comprensión y solución de problemas, usando modelos organizados a partir de conceptos del mundo real. Su pieza fundamental es el objeto, el cual combina en una sóla entidad, los datos que lo identifican y su comportamiento. En particular, nosotros utilizaremos la orientación a objetos para analizar, diseñar e implementar programas de computadora, es decir, vamos a efectuar programación orientada a objetos. Entonces, lo primero que tenemos que aprender si queremos hacer programas orientados a objetos, es el concepto de lo que es un objeto. Objeto.- es “algo” que tiene sentido en el contexto de una aplicación. A nosotros nos servirá para 2 propósitos : (1) nos ayudarán a entender el mundo real cuando analicemos un problema, y (2) nos proporcionan una base –modelo- para su implementación en una computadora. Los objetos pueden ser de 2 tipos : • Concretos • Conceptuales Ejemplos de objetos concretos.- una bicicleta, una manzana, una memoria USB, un archivo de computadora, un carro, un alumno, un edificio, una puerta, un profesor. Ejemplos de objetos conceptuales.- un programa de computadora, una variable, una lectura, el amor, un pensamiento. Atributo.- En el primer párrafo mencionamos que el objeto encapsula –agrupa en una sóla entidad- a los datos que lo identifican y a su comportamiento. A los datos que identifican a un objeto se les llama atributos. Un atributo es un valor mantenido por un objeto, por ejemplo, un alumno es un objeto cuyos atributos son el número de control, su nombre, y su calificación final. Observemos que un alumno puede tener otros atributos mas, pero si el contexto de la aplicación es el obtener una lista de calificaciones finales de un grupo de alumnos, los atributos antes mencionados serán los únicos que nos interesen. Imaginemos que queremos construir una agenda con los datos de nuestros amigos. Entonces ¿ qué atributos interesarían de nuestros amigos?. Los atributos que podríamos pensar son : el nombre, su teléfono, su dirección, su correo electrónico. Otro ejemplo es el caso de ciertas bicicletas en una bodega. Los atributos de una bicicleta podrían ser : rodada, tipo – montaña, de carreras-, material de construcción, marca, no. de velocidades. Veamos el ejemplo de atributos para un objeto conceptual. El amor, sus atributos podrían ser : número de amor, tipo –de conveniencia, de estudiante, segundo aire, primera vista-, intensidad. El caso de objetos que se refieran a figuras geométricas como los polígonos, por ejemplo el rectángulo, el triángulo, el pentágono. Los atributos que nos podrían interesar son : el número de vértices, el color del borde, el color de relleno. Comportamiento.- Se refiere al conjunto de acciones o transformaciones que un objeto ejecuta o a las cuales está sujeto. Al comportamiento también se le denomina de otras maneras : Operaciones o Métodos. Por ejemplo, el caso de los objetos alumno requieren de algunas acciones y/o transformaciones : AsignarCalificación, Visualizar, LeerNoControl, LeerNombre. Las 4 acciones y/o transformaciones representan el comportamiento de los objetos alumno. En el caso de AsignarCalificacion, LeerNoControl y LeerNombre, se refieren a transformaciones, ya que modificarán el valor de la calificación final, del número de comntrol y del nombre del alumno. Visualizar representa una acción ya que sólo toma los atributos del alumno para mostrarlos en pantalla o en una hoja impresa. Para el ejemplo de las bicicletas, definiríamos la acción y/o transformaciones de Mover, Ajustar, Aceitar, Reparar, entre otras, de acuerdo a lo que queramos limitar el estudio. Para el amor, algunas acciones serían : Proporcionar, Limitar, Quitar. Resumiéndo lo anterior, podemos decir que cada vez que pensemos orientado a objetos, debemos enfocarnos a un proceso de identificación de objetos, de sus atributos y de su comportamiento –métodos-. Características de los objetos.- • Identidad. Se refiere a que cada objeto conserva de manera inherente su propia identidad. O sea, 2 objetos son distintos aún si el valor de todos sus atributos son idénticos. Por ejemplo, los 8 peones negros de un juego de ajedrez, son todos
negros, tienen las mismas dimensiones, textura, pero todos son diferentes, existen y tienen su propia identidad. Dos gotas de agua es otro ejemplo de la característica de identidad de los objetos. • Clasificación. Se refiere a que los objetos con los mismos atributos y comportamiento –métodos-, son agrupados en clases. Cada objeto perteneciente a una clase, se dice que es una instancia de la clase. Así que una clase, representa a un posible conjunto infinito de objetos individuales. Por ejemplo a todos los alumnos que aparecerán en la lista de calificaciones finales, los clasificamos en la clase Alumno. A todos los amigos que registramos en nuestra agenda, los podemos clasificar en la clase Persona. Notemos que los alumnos también tienen dirección, teléfono y correo electrónico, pero no los agrupamos en la clase Persona ya que estos atributos para el caso de la aplicación de obtener la lista de calificaciones, no se requieren. La pregunta es ¿Los amigos podrían ser alumnos?. Discútelo con tus compañeros del grupo y con tu profesor. La clase describe en una sóla entidad a los atributos y comportamiento – métodos-, de todos los objetos que pertenezcan a ella. • Polimorfismo. Es una característica de la orientación a objetos, que significa que un mismo método puede tener diferente manera de realizarse, en las diferentes clases que tengamos bajo estudio. Cada objeto perteneciente a una clase, “sabe como” ejecutar sus propios métodos. Cuando programamos orientado a objetos, el lenguaje de programación automáticamente selecciona el método correcto para efectuar una cierta acción o transformación sobre el objeto al que se aplica. Por ejemplo, si tenemos los objetos bicicleta, carro, barco, y les aplicamos la operación Mover, la acción se ejecuta de manera diferente para cada objeto.¿Por qué?. Otro ejemplo típico es el de los objetos de la clase Figura, digamos círculo, rectángulo, triángulo. Apliquémosles la acción de Dibujar, cada uno de ellos tendrá su propio método Dibujar definido, ya que la acción debe implementarse de manera diferente para cada objeto. • Herencia. Es una de las características que hacen a la oriientación a objetos mas eficiente, mas poderosa. Se refiere a compartir atributos y métodos entre clases, que se relacionan de manera jerárquica. Un ejemplo sería definir la clase Persona con atributos : nombre, edad y sexo. Esta clase se denomina clase base, ya que de aquí podríamos definir otras clases Alumno, Profesor, Empleado, que heredan los atributos y métodos de la clase Persona. A estas 3 clases se les denominan clases derivadas. Entonces, en herencia las clases base proporcionan atributos y métodos a otras clases, las clases derivadas. Para visualizar la herencia, se construyen los árboles de herencia. A cada clase sea base o derivada se denota con un elipse, y la herencia se denota usando una flecha con dirección de la clase derivada hacia la clase base. Si las clases derivadas tienen los atributos : • clase Alumno : número de control, calificación, • clase Profesor : número de tarjeta, grado, • clase Empleado : salario, nombre del puesto. Al aplicar la herencia, los objetos de las clases derivadas tendrán ahora además de sus atributos antes enumerados, los atributos que heredan de la clase base Persona. • clase Alumno : número de control, calificación, nombre, edad, sexo • clase Profesor : número de tarjeta, grado, nombre, edad, sexo • clase Empleado : salario, nombre del puesto, nombre, edad, sexo Lo mismo sucede con los métodos en la clase base Persona, que serían heredados por las clases derivadas Alumno, Profesor, Empleado. Supongamos que la clase Persona tiene definido los métodos AsignaNombre, AsignaEdad, AsignaSexo. Las clases derivadas también heredan a estos métodos, por lo tanto un objeto alumno puede utilizar estos métodos sin necesidad de redefinirlos en la clase Alumno. Por esto, la herencia cuando es utilizada se dice que estamos reusando código. El reuso de código es una característica muy poderosa en la orientación a objetos.
Want to create your own Notes for free with GoConqr? Learn more.