2. Los objetos . Los objetos en el entorno de programación se definen como unidades conformadas por datos y funciones que operan sobre ellos. La idea es abstraer del mundo real cosas o entidades con características comunes que puedan ser representadas como elementos o unidades de software. Supongamos el siguiente ejemplo: una carro, un barco y un autobús, son objetos de la vida real que tienen características en común, tales como: color, velocidad, cantidad de pasajero etc. Sobre estos objetos se ejecutar algunas acciones comunes para todos, tales como: aumentar velocidad, asignar color y obtener cantidad de pasajeros entre otras.
3. Los objetos y las clases. Objeto->carro Color: rojo Velocidad:220 Km./h Pasajeros:4 Objeto->avión Color: gris Velocidad:1500km/h Pasajeros:2 Objeto->barco Color: marrón Velocidad:20 nudos Pasajeros:25 Clase medios de transporte Abstraemos y vemos un elemento mas generalizado, la clase medios de transporte Figura 1. Conjunto de objetos con características comunes
4. Los objetos y las clases. Figura 2. Objetos y clases que los agrupan Animal Punto (1,3) (2,2) (2,1) (5,2.5) Figura
5.
6. Identificación de Objetos Una vez identificado el objeto se requiere ahora identificar los atributos (características) y las operaciones que actúan sobre ellos (métodos o acciones), de la figura 1 se tiene: Figura 3. Notación gráfica de objetos, Coad/Yourdon nombre atributos métodos carro Color Velocidad pasajeros Aumentar_vel Asignar_color Obtener_pasaj
7. Datos internos del objeto carro Color: rojo Velocidad: 120 Pasajeros:3 Aumentar_vel Asignar_color Obtener_pasaj Figura 4. Datos internos Los datos internos que almacenan los objetos definen su estado y viene representado por los valores contenidos en sus variables
8. Ocultamiento de información. El ocultamiento de información se refiere a la manera como un objeto es capaz de mantener oculta su implementación para el resto mundo, es decir, oculta el como ejecuta sus acciones y solo deja descubierto el que realiza (interfaz). Cuando se construye un objeto, es necesario indicar a través de los modos de acceso, cual es la parte oculta de dicho objeto y cual será la interfaz. Estos modos de acceso son: públicos, privados y protegidos . Ahora vamos a diseñar nuevamente el objeto carro de la clase medios de transporte pero considerando los modos de acceso.
9. Ocultamiento de información. Interior del objeto Interfaz Exterior del objeto Figura 5. Diagrama de un objeto Notación, Ege R.,1992 atributos métodos
10. Ocultamiento de información. atributos privados: Métodos públicos: Interior del objeto Interfaz Exterior del objeto Figura 6. Diagrama del objeto carro. Notación, Ege R.,1992 color pasajeros velocidad aumentar_vel asignar_color obtener_pasaj
11. Comunicación entre objetos La comunicación entre los diferentes objetos se realiza a través de mensajes, un mensaje viene a ser como una orden a un objeto para que ejecute una acción (invocar un método o una llamada a una función en el ambiente de programación). Un mensaje se estructura de la siguiente forma: Ejemplo: carro aumentar_vel 100 Receptor --- método a ejecutar --- información especial
12. Comunicación entre objetos. atributos privados: Métodos públicos: Interior del objeto Interfaz Exterior del objeto Figura 7. Pase de mensaje al objeto carro. color pasajeros velocidad aumentar_vel (100) aumentar_vel asignar_color obtener_pasaj
13. Un ejemplo en C++ #include<iostream> #include<string> using namespace std; class mediosTransporte{ private: string color; int velocidad; int pasajeros; public: mediosTransporte(){color='';velocidad=0;pasajeros=0;} ~mediosTransporte(){}; void aumentar_vel(int vel){velocidad=vel;} void asignar_color(string col){color=col;} int obtener_pasaj(){return pasajeros;}; }; int main(){ mediosTransporte carro;// se crea el objeto carro carro.aumentar_vel(100); // mensaje al objeto carro carro.asignar_color("rojo"); // mensaje al objeto carro cout<<"La cantidad de pasajeros es:"<<carro.obtener_pasaj(); system("pause"); return 0; }
14. Unidad I. Ejercicios: Ejercicios: A continuación se les presentan algunos planteamientos en los cuales deberá identificar los objetos sus atributos y métodos a fin de poder la clase de la cual pueden instanciarse dichos objetos. Ejemplo: En una agencia de colocaciones se mantiene un registro de los datos relacionados con sus clientes por ejemplo allí se tienen los datos de José Pérez, quien tienen 34 años nacido el 10/12/1972 y actualmente trabaja en el periódico. Igualmente esta Maria Rivas quien tiene 26 años, nacida el10/10/1980 y trabaja actualmente en torre 4. Y por ultimo podemos nombrar a Rosa Páez, quien trabaja en la granja tiene 19 años y nació el 04/05/1986. Regularmente la agencia lleva un seguimiento de sus clientes y es labor de ellos por ejemplo registrar el trabajo actual de cada cliente, así como actualizar la edad de cada uno de ellos . Ahora que objetos se pueden identificar en este ejemplo:
15. Unidad I. Ejercicios Atributos Características o cualidades Personas A cada una de ellas se les puede cambiar su trabajo actual así como actualizar su edad. Clase Persona Objetos (clase persona) Granja 04/05/1986 19 Rosa Páez Torre 4 10/10/1980 26 Maria Rivas Periódico 10/12/1972 34 Pedro Pérez
16. Unidad I. Ejercicios atributos privados: Métodos públicos: nombre edad Fecha nac cambiar_trab (metroVal) Objeto: persona Pedro Pérez 10/12/1972 34 periódico Cambiar_trab Actualizar_ed Objeto: persona Rosa Páez 04/05/1986 19 La granja Cambiar_trab Actualizar_ed trabajo Representación de clase y objetos La Clase persona Cambiar_trab Actualizar_ed persona Nombre Fecha de nac Edad trabajo Cambiar_trab Actualizar_ed