Вы находитесь на странице: 1из 35

Universidad Centroccidental Lisandro Alvarado Decanato de Ciencias y Tecnologa Lapso 2010 - II

Unidad II Introduccin al Paradigma de Orientacin a Objetos

Coordinacin de L aboratorio

Introduccin a la P. O. O.
Contenido Programtico

Qu es la Programacin Orientada a Objetos ? Pilares de la Programacin Orientada a Objetos Qu es un Objeto ? Qu es una Clase ? Elementos de una Clase Diferencias entre los Conceptos de Objeto y Clase Relaciones entre Clases

Creacin de Objetos Acceso a los Datos de una Clase Comunicacin entre Objetos
Coordinacin de L aboratorio

Introduccin a la P. O. O.
Qu es la Programacin Orientada a Objetos ?

Es una filosofa, un modelo de programacin, con su teora y su metodologa. Estamos hablando de una nueva forma de pensar acerca del proceso de descomposicin de problemas y de desarrollo de soluciones de programacin. La Programacin Orientada a Objetos se basa en la idea natural de la existencia de un mundo lleno de objetos, de modo que la resolucin del problema se realiza en trminos de objetos. Se definen los objetos en cuanto a sus atributos (datos) y mtodos (comportamiento). Posteriormente solo hay que usarlos.
Coordinacin de L aboratorio

Introduccin a la P. O. O.
La programacin orientada a objetos, ha tomado las mejores ideas de la programacin estructurada y las ha combinado con varios conceptos nuevos y potentes que incitan a contemplar las tareas de programacin desde un nuevo punto de vista. La programacin orientada a objetos surge como un nuevo paradigma que permite acoplar el diseo de programas a situaciones del mundo real, las entidades centrales son los objetos. Algunas de las ventajas de esta aproximacin son la reutilizacin de cdigo, el desarrollo de prototipos en forma sencilla, desarrollo de interfaces grficas en forma rpida, bases de datos ms eficientes.

Coordinacin de L aboratorio

Introduccin a la P. O. O.
Pilares de la Programacin Orientada a Objetos

POO
Encapsulamiento Polimorfismo
Coordinacin de L aboratorio

Abstraccin

Herencia

Introduccin a la P. O. O.
Pilares de la Programacin Orientada a Objetos

Abstraccin: Tcnica que permite reconocer los elementos esenciales para la solucin de un problema dejando al lado los detalles irrelevantes. La abstraccin consiste en captar las caractersticas esenciales de un objeto, as como su comportamiento, al tiempo que se ignoran los detalles no esenciales.

Coordinacin de L aboratorio

Introduccin a la P. O. O.
Pilares de la Programacin Orientada a Objetos

Encapsulamiento: Concepto que ayuda a mantener juntos, en una nica entidad, los datos o propiedades (atributos) y las funciones (mtodos) que definen el comportamiento del objeto. Es la propiedad que permite asegurar que el contenido de la informacin (datos) de un objeto est oculto al mundo exterior.

funciones datos
Coordinacin de L aboratorio

Introduccin a la P. O. O.
Pilares de la Programacin Orientada a Objetos

Herencia: Es una propiedad que permite que los objetos sean creados a partir de otros ya existentes, obteniendo caractersticas (mtodos y atributos) similares a los ya existentes. La herencia es el mecanismo fundamental para implementar la reutilizacin y extensibilidad del software.

Padre Hijo

Instrumento Arpa

Flauta

Coordinacin de L aboratorio

Introduccin a la P. O. O.
Pilares de la Programacin Orientada a Objetos

Polimorfismo: Es una propiedad que permite que diversos objetos respondan de modo diferente al mismo mensaje. El polimorfismo se refiere a la capacidad para que varias clases derivadas de una antecesora utilicen un mismo mtodo de forma diferente.

Coordinacin de L aboratorio

Introduccin a la P. O. O.
Qu es un Objeto ?
Todo objeto del mundo real tiene 2 componentes: datos (atributos) y funciones (mtodos).

Datos + Funciones = Objeto


Por ejemplo las personas tienen:

Datos: Fecha de Nacimiento, Nombre(s), Apellido(s), Edad, Color de Ojos, Color de Cabello, entre otros. Funciones: Respirar, Hablar, Caminar, Comer, Correr, Estornudar, Pensar, entre otros. Adems un objeto posee estado, comportamiento e identidad.
Coordinacin de L aboratorio

Introduccin a la P. O. O.
Qu es un Objeto ?

Estado: El estado de un objeto es una de las posibles condiciones en que el objeto puede existir. El estado normalmente cambia con el transcurso del tiempo. Los valores de los atributos describen el estado de un objeto. Por ejemplo:
Atributos Nombres: Lionel Andrs

Apellidos: Messi
Fecha de Nac.: 24/06/1987 Sexo: Masculino Peso: 67 kg. Altura:1.69 mts.
Coordinacin de L aboratorio

Introduccin a la P. O. O.
Qu es un Objeto ?

Comportamiento: Lo que el objeto puede hacer. El comportamiento de un objeto determina cmo ste acta y reacciona frente a las peticiones de otros objetos Se implementa mediante mtodos. Por ejemplo: Driblar Anotar Celebrar

Coordinacin de L aboratorio

Introduccin a la P. O. O.
Qu es un Objeto ?
Identidad: Cada objeto es nico en el mundo por ms que haya otro objeto con iguales atributos. Por ejemplo: Cada jugador tiene su propia identificacin. Messi Maradona Riquelme

Coordinacin de L aboratorio

Introduccin a la P. O. O.
Qu es un Objeto ?

Un objeto en POO, representa alguna entidad de la vida real, es decir, alguno de los objetos que pertenecen al negocio con que estamos trabajando o al problema con el que nos estamos enfrentando. Los Objetos de Software, al igual que los objetos del mundo real, tambin tienen caractersticas y comportamientos. Un objeto es una instancia de una clase (representacin real de la clase). Unidad tangible o no que permite combinar datos y funciones que operan sobre esos datos. Dentro de un objeto residen los datos (atributos) as como funciones (mtodos) que operan sobre ellos.
Coordinacin de L aboratorio

Introduccin a la P. O. O.
Qu es una Clase?

Una clase es la descripcin de un conjunto de objetos; consta de mtodos y atributos (datos) que resumen caractersticas comunes de un conjunto de objetos. Se pueden definir muchos objetos de la misma clase, es decir una clase es como un molde, esquema o un patrn que define la forma de sus objetos. Es la representacin abstracta (modelo) de una entidad del mundo. La clase especifica los atributos (datos) y mtodos (funciones). La clase tiene dos propsitos definir abstracciones y encapsular los datos y funciones en una nica entidad.

Coordinacin de L aboratorio

Introduccin a la P. O. O.
Clases en el Mundo Real
En el mundo real existen objetos del mismo tipo, por ejemplo tu vehculo es solo uno ms de todos los que circulan por la ciudad. Entonces podramos decir que tu vehculo es una instancia (objeto creado) de la clase Vehiculo. Todas los vehculos tienen

Atributos: marca, modelo, ao, placa, color, serial de carrocera, entre otros. Mtodos: encender, acelerar, tocar la corneta, frenar, apagar, entre otros.

Coordinacin de L aboratorio

Introduccin a la P. O. O.
Elementos de una Clase

Atributos: Las propiedades o atributos son las caractersticas de los objetos. Cuando definimos una propiedad normalmente especificamos su nombre y su tipo. Un objeto puede ser un atributo de otro objeto. Nos podemos hacer a la idea de que las propiedades son algo as como variables donde almacenamos datos relacionados con los objetos. La diferencia con las "variables de la programacin estructurada es que los atributos se pueden heredar de una clase a otra. En consecuencia, una clase puede tener un atributo de maneras diferentes:

Propios: Asociados directamente a la clase. Heredados: Estn definidos en una clase ascendente, antepasado de ste (padre,abuelo, etc.). Coordinacin de L aboratorio

Introduccin a la P. O. O.
Elementos de una Clase

Mtodos: Son las funcionalidades asociadas a los objetos, es decir, describen el comportamiento asociado a un objeto. Las funciones (mtodos) residen en el objeto y determinan como actuar ste cuando reciba un mensaje. Un mtodo es el algoritmo ejecutado en respuesta a la recepcin de un mensaje. Los mtodos tambin estn a disposicin de las clases descendientes a travs de la herencia. Una clase puede tener mtodos de maneras diferentes:

Propios. Estn incluidos dentro de la cpsula de la clase. Heredados. Estn definidos en una clase ascendente, antepasado de ste (padre, abuelo, etc.). Coordinacin de L aboratorio

Introduccin a la P. O. O.
Diferencias entre los Conceptos de Objeto y Clase

Las clases son modelos o plantillas que describen como se construyen uno o ms objetos del mismo tipo. Cada vez que se construye un objeto de una clase, se crea una instancia de esa clase ("instance"). Una instancia es una variable de tipo objeto. Un objeto es un simple elemento. Una clase, por el contrario, describe una familia de elementos similares. Una clase puede tener muchas instancias y cada una es un objeto diferente. En resumen, la clase es el molde de construccin, los objetos son los elementos fabricados o instanciados, a partir de ese molde.
Coordinacin de L aboratorio

Introduccin a la P. O. O.
Consideraciones Importantes

En la estructura de datos objeto, el acceso a la informacin interna y cmo sta se transforma, estn ocultos al exterior, por lo tanto, todos los datos del objeto deben ser privados y no se puede tener acceso a ellos desde otros objetos. El mecanismo para hacer privados datos o funciones, es anteponerle la palabra reservada private. Los mtodos (funciones) del objeto son los encargados de acceder a sus propios atributos, modificarlos y/o consultarlos. Los objetos se comunican con el exterior por medio de mensajes usando sus mtodos, estos establecen su interfaz para el mundo. El especificador de acceso public especifica aquellos miembros de la clase que son accesibles pblicamente, es decir se pueden acceder desde otros objetos
Coordinacin de L aboratorio

Introduccin a la P. O. O.
Acceso privado (restringido )
Coordinacin de L aboratorio

Representacin Grfica de una Clase Vehiculo

Atributos Mtodos

- marca: String - modelo: String - anno: int - placa: String + Vehiculo( ) + Vehiculo(marca: String, modelo: String, anno: int) + getMarca( ) : String :::: + setMarca(marca: String) :::: + acelerar (velocidad: float): void + frenar (velocidad: float ): float

Acceso pblico

Introduccin a la P. O. O.
Relaciones entre Clases
Como ya se ha dicho antes, un sistema orientado a objetos est caracterizado por objetos que interactan entre si. Estas interacciones supone ciertos tipos de relaciones entre las clases de los objetos del sistema. Las relaciones conectan dos o ms clases. Los tipos de relaciones entre clases son:

Relacin de Uso. Asociacin.

Agregacin. Composicin. Herencia (Generalizacin / Especializacin).


Coordinacin de L aboratorio

Introduccin a la P. O. O.
Relaciones entre Clases

Relacin de Uso: Cuando una clase necesita hacer uso de otra clase pero no necesita incorporar esa clase en su propia estructura. Normalmente una relacin de uso significa que la clase utilizadora usa a la clase utilizada, pero la clase utilizada no se almacena como un atributo de la instancia de la clase utilizadora. En su lugar, la clase utilizada se pasa a la clase utilizadora por alguna tercera parte, como un argumento (parmetro) de uno de los mtodos de la clase utilizadora. Por ejemplo: Una clase Cuadrado necesita usar el metodo elevarALaPotencia() de la clase FuncionesMatematicas para calcular su area. Area de un cuadrado = (lado)
2
Coordinacin de L aboratorio

Introduccin a la P. O. O.
Relaciones entre Clases

Asociacin: La relacin de asociacin es una relacin que indica que existe un vnculo entre los objetos de las clases. Conecta dos clases. Cuando una clase tiene entre sus atributos, uno que es un objeto de otra clase. Una asociacin es normalmente bidireccional, lo que significa que si un objeto se asocia a otro objeto, ambos se conocen entre s, aunque en ocasiones es deseable hacerlas unidireccionales. Hay casos partculares de asociaciones entre clases:

Agregacin. Composicin.
Coordinacin de L aboratorio

Introduccin a la P. O. O.
Relaciones entre Clases

Agregacin: Es un tipo de relacin dinmica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye. Son relaciones que implican en su significado que una clase contiene a otras clases independientes. En la relacin de Agregacin dos objetos se consideran prcticamente como independientes y aun as estn ligados. Por ejemplo: La clase Vehiculo puede tener entre sus atributos un objeto de la clase Spoiler, el valor de ese atributo puede ser null, es decir, el objeto vehiculo puede no poseer un spoiler y aun asi seguir existiendo.
Coordinacin de L aboratorio

Introduccin a la P. O. O.
Relaciones entre Clases

Composicin: Es un tipo de relacin esttica, en donde el tiempo de vida del objeto incluido esta condicionado por el tiempo de vida del que lo incluye, de modo que uno de los objetos involucrados est compuesto por el otro. Son relaciones que implican que una clase est compuesta por otra(s) clase(s) dependiente(s). Cuando deja de existir la clase compuesta, dejan de existir las clases que la componen. Las partes no pueden existir por s mismas, nicamente existen como parte del conjunto. Cada uno por separado no tiene sentido. Por ejemplo: La clase Vehiculo debe tener entre sus atributos un objeto de la clase Motor, el valor de ese atributo no puede ser null, es decir, el objeto vehiculo no puede existir sin un motor.
Coordinacin de L aboratorio

Introduccin a la P. O. O.
Relaciones entre Clases

Herencia (Generalizacin/Especializacin): A veces sucede que dos clases tienen muchas de sus partes en comn, lo que normalmente se abstrae en la creacin de una tercera clase (padre de las dos) que rene todas sus caractersticas comunes. Indica que una subclase hereda los mtodos y atributos especificados por una Superclase, por ende la Subclase adems de poseer sus propios mtodos y atributos, poseer las caractersticas y atributos visibles de la Superclase (public y protected). Existen dos clases de herencia:

Simple Mltiple.
Coordinacin de L aboratorio

Introduccin a la P. O. O.
Relaciones entre Clases

Herencia Simple: En herencia simple, cada clase tiene un solo ascendiente. Cada clase puede tener, sin embargo, muchos descendientes. Por ejemplo: Mamifero

Coordinacin de L aboratorio

Introduccin a la P. O. O.
Relaciones entre Clases

Herencia Multiple: La herencia multiple es aquella en la cual una clase derivada tiene ms de una clase base. Aunque el concepto de herencia mltiple es muy til, el diseo de clases suele ser ms complejo. En lenguajes de programacin como java no existe la herencia multiple. Por ejemplo:

Coordinacin de L aboratorio

Introduccin a la P. O. O.
Creacin de Objetos
Como ya se mencion anteriormente los objetos son las instancias de las clases, tienen todas las particularidades definidas en ella y los comportamientos delimitados por los mtodos. La clase es el molde de construccin, los objetos son los elementos fabricados o instanciados a partir de ese molde. Para poder crear la instancia de una clase (objeto) debe hacerse uso de un mtodo en particular de dicha clase. Ese mtodo recibe el nombre de constructor. El objetivo del constructor es el de inicializar un objeto cuando ste es creado. Asignaremos los valores iniciales as como los procesos que sta clase deba realizar.
Coordinacin de L aboratorio

Introduccin a la P. O. O.
Constructores
Un constructor se caracteriza por:

Tener el mismo nombre de la clase que inicializa. No devuelve valores. Puede admitir parmetros como cualquier otra funcin. Puede existir ms de un constructor, la diferencia entre ellos ser los parmetros que recibe cada uno. Las funciones constructoras se llaman cuando se declara el objeto (instancia de una clase). Si no se define ningn constructor de una clase, el compilador generar un constructor por defecto. En java se hace uso del operador new antecediendo al llamado del mtodo constructor crear un objeto. Coordinacin de L aboratorio

Introduccin a la P. O. O.
Acceso a los Datos de una Clase
Una clase debe contener una serie de atributos privados, a los que solo puede acceder la misma clase, por lo tanto, para poder utilizarlos es necesario la existencia de un par de mtodos. Estos mtodos generalmente se denominan set y get.

El mtodo set es el mtodo que nos permite modificar el valor de un atributo privado de una clase. Por ejemplo:

public void setMarca(String marca) { ... }

El mtodo get es el mtodo que permite visualizar el valor de un atributo privado de una clase a quin lo solicite. Por ejemplo:

public String getMarca() { ... }

Coordinacin de L aboratorio

Introduccin a la P. O. O.
Comunicacin entre Objetos
Los objetos de un programa interactan y se comunican entre ellos por medio de mensajes. Un mensaje es el resultado de cierta accin efectuada por un objeto. Los objetos se activan mediante la recepcin de mensajes. Un mensaje es una peticin dirigida a un objeto, que le ordena que ejecute uno de sus mtodos. La tcnica de enviar mensajes se conoce como paso de mensajes. Un mensaje est compuesto por los siguientes tres elementos:

Identidad del objeto receptor. El nombre del mtodo que se ha de ejecutar. Los parmetros solicitados por el mtodo, si los tiene.
Coordinacin de L aboratorio

Introduccin a la P. O. O.
Mensajes
Para mandar mensajes a los objetos se utiliza el operador punto, seguido del mtodo que deseamos invocar (ejecutar). Por ejemplo:

// Uso del constructor de la clase Vehiculo vehiculo = new Vehiculo(); // Mensaje para ejecutar el mtodo encender vehiculo.encender(); // Mensaje para ejecutar el mtodo acelerar vehiculo.acelerar(40.0);

Coordinacin de L aboratorio

Introduccin a la P. O. O.
Ventajas de los Mensajes
Los mensajes proporcionan dos ventajas importantes:

El comportamiento de un objeto est completamente determinado por sus mtodos, as que los mensajes representan todas las posibles interacciones que pueden realizarse entre objetos. Los objetos no necesitan formar parte del mismo proceso, ni siquiera residir en un mismo ordenador para mandarse mensajes entre ellos (y de esta forma interactuar).

Mtodos

Coordinacin de L aboratorio

Вам также может понравиться