Introducción a la orientación a objetos
Enviado por Jaime Nahuel Ramirez Lorca • 17 de Marzo de 2016 • Apuntes • 12.947 Palabras (52 Páginas) • 180 Visitas
UTN – FRBA – Paradigmas de Programación
Curso sábados a la mañana – año 2005
Introducción a la orientación a objetos
Autores:
Carlos Lombardi – car_lombardi@yahoo.com.ar
Nicolás Passerini – npasserini@gmail.com
Índice
UTN – FRBA – Paradigmas de Programación
Curso sábados a la mañana – año 2005
Introducción a la orientación a objetos
Índice
Historia del documento
Capítulo 1 – Aparecen los objetos
Entes y observadores
Modelo y representación
Objeto y comportamiento
Mensaje y método
Estado interno (y un poco de código)
Encapsulamiento
Algo más sobre números
Conclusiones
Ya veremos dónde meter …
Capítulo 2 – Relaciones entre objetos: polimorfismo y referencias
El mismo comportamiento
Polimorfismo
Interacción y referencias
Mensajes a mí mismo – self
Ambiente
Software
Meter en algún lado
Capítulo 3 – Clases
Definición de comportamiento común
Cómo se crean objetos
Interactuando con instancias
Clases e instancias – recapitulemos un poco
Refinando la vista de un ambiente de objetos
Forma verdadera del código Smalltalk
Para ordenar
Otros temas
Historia del documento
Versión | Fecha | Agrega |
1.0 | 22/04/2005 | Versión inicial
|
1.2 | 01/05/2005 | Cap 1: Algo más sobre números Cap 2: Interacción y referencias |
1.3 | 20/08/2005 | En todos lados: se cambió testGlotón por simulaciónGlotona Cap 1: Se agrega una nota en Mensaje y método. Cap 2: Mensajes a mí mismo – self / Ambiente / Software. Cap 3: Comportamiento común / Cómo se crean instancias / Interactuando con instancias / Refinando la vista de un ambiente de objetos / Forma verdadera del código Smalltalk. |
1.4 | 28/03/2006 | Unificación de las distintas acepciones de “comportamiento” |
Capítulo 1 – Aparecen los objetos
… si voy a construir software usando orientación a objetos, el primer concepto con el que voy a trabajar, el primero que va a saltar a la vista, es el de objeto.
Rápidamente, un objeto es una unidad de software de la cual lo que me importa es: qué le puedo preguntar y/o pedir, y a qué otros objetos conoce. Los objetos responden a los pedidos interactuando con los otros objetos que conoce, y así se va armando una aplicación.
O sea, en vez de enfocarme en rutinas, variables, funciones, punteros, etc.; voy a pensar en objetos: con qué objetos voy a interactuar, sus características, qué les voy a poder preguntar, con qué otros objetos tienen que interactuar estos, y otras cosas que surgen a partir de estas.
De hecho, el resultado de mi trabajo va a ser la descripción de estos objetos, cómo se conocen entre ellos, y cómo interactúan …
Pará man, no entiendo nada. ¿Serías tan gentil de ir un poquitín más despacio?
Entes y observadores
Ahí vamos. Empecemos con la palabra “objeto”. Si te digo “objeto”, ¿qué se te ocurre?
Objeto, cosa. Una silla, una mesa, un lápiz, una zapatilla, una pelota. También está lo del “objeto del deseo”, pero no creo que vaya por ahí …
… estoy de acuerdo, quedémonos con las cosas. Los objetos son exactamente eso, las cosas. Pero fijate que todas las que nombraste son cosas que se tocan y se ven, y son inanimadas; el concepto de “cosa” que le interesa a la orientación a objetos es mucho más amplio. Por ejemplo incluye
- lo que está vivo: personas, animales, plantas, células, pulmones;
- las organizaciones: un equipo de fútbol, un ministerio, un grupo de investigación, un club, una cátedra, una empresa, un ecosistema;
- cosas en lo que se toca es sólo un soporte: un libro, una película, un artículo en una revista, un contrato, una ley;
- cosas bien abstractas: un número, un conjunto, un nombre, una letra, una función matemática.
Todo lo que nombré tiene algo en común: si te pregunto qué es cada una de estas “cosas” vas a poder responder algo, o al menos pensar en posibles respuestas. O sea, para vos cada cosa que nombré es algo, significa algo, tiene alguna entidad.
A este concepto bien amplio de “cosa” lo vamos a llamar “ente”.
En una primera aproximación, un objeto es cualquier ente (o sea cualquier “cosa” con el concepto bien amplio que describí recién) que tiene alguna utilidad/significado/sentido para el que tiene que trabajar con él.
...