col1

16
TRABAJO COLABORATIVO Nº 1 SANDRA PATRICIA RIOS RIVERA COD. 1055273047 GRUPO: 301403_64 PROGRAMACION ORIENTADA A OBJETOS UNAD

Upload: erica-gonzalez

Post on 16-Nov-2015

212 views

Category:

Documents


0 download

DESCRIPTION

POO

TRANSCRIPT

TRABAJO COLABORATIVO N 1

SANDRA PATRICIA RIOS RIVERACOD. 1055273047GRUPO: 301403_64

PROGRAMACION ORIENTADA A OBJETOS

UNAD DUITAMA 2014

1. Investigue la diferencia entre la POO y la Programacin estructurada?2. Que es la POO? Y cuales son sus ventajas?3. Que es una clase y Que es un objeto?4. Explique cul es la estructura de un objeto?5. Realice un ejemplo de manera grfica en donde se identifiquen los elementos de una clase y un objeto.

SOLUCION

1. Investigue la diferencia entre la POO y la Programacin estructurada?

Las principales diferencias entre la programacin estructurada y la orientada a objetos son:

La programacin orientada a objetos es ms moderna, es una evolucin de la programacin estructurada que plasma en el diseo de una familia de lenguajes conceptos que existan previamente con algunos nuevos.

La programacin orientada a objetos se basa en lenguajes que soportan sintctica y semnticamente la unin entre los tipos abstractos de datos y sus operaciones (a esta unin se la suele llamar clase).

La programacin orientada a objetos incorpora en su entorno de ejecucin mecanismos tales como el polimorfismo y el envo de mensajes entre objetos.

Errneamente se le adjudica a la programacin estructurada clsica ciertos problemas como si fueran inherentes a la misma. Esos problemas fueron hacindose cada vez ms graves y antes de la programacin orientada a objetos diversos autores (de los que podemos destacar a Yourdon) encontraron soluciones basadas en aplicar estrictas metodologas de trabajo. De esa poca son los conceptos de cohesin y acoplamiento. De esos problemas se destacan los siguientes:

Modelo mental anmalo. Nuestra imagen del mundo se apoya en los seres, a los que asignamos nombres sustantivos, mientras la programacin clsica se basa en el comportamiento, representado usualmente por verbos.

Es difcil modificar y extender los programas, pues suele haber datos compartidos por varios subprogramas, que introducen interacciones ocultas entre ellos.

Es difcil mantener los programas. Casi todos los sistemas informticos grandes tienen errores ocultos, que no surgen a la luz hasta despus de muchas horas de funcionamiento.

Es difcil reutilizar los programas. Es prcticamente imposible aprovechar en una aplicacin nueva las subrutinas que se disearon para otra.

Es compleja la coordinacin y organizacin entre programadores para la creacin de aplicaciones de media y gran envergadura.

En la programacin orientada a objetos pura no deben utilizarse llamadas de subrutinas, nicamente mensajes.

Por ello, a veces recibe el nombre de programacin sin CALL, igual que la programacin estructurada se llama tambin programacin sin GOTO.

Sin embargo, no todos los lenguajes orientados a objetos prohben la instruccin CALL (o su equivalente), permitiendo realizar programacin hbrida, imperativa y orientada a objetos a la vez.

2. Que es la POO? Y cules son sus ventajas?

La Programacin Orientada a Objetos (POO OOP segn siglas en ingls) es una metodologa de diseo de software y un paradigma de programacin que define los programas en trminos de "clases de objetos", objetos que son entidades que combinan estado (es decir, datos) y comportamiento (esto es, procedimientos o mtodos). La programacin orientada a objetos expresa un programa como un conjunto de estos objetos, que se comunican entre ellos para realizar tareas.

Esto difiere de los lenguajes procedimentales tradicionales, en los que los datos y los procedimientos estn separados y sin relacin. Estos mtodos estn pensados para hacer los programas y mdulos ms fciles de escribir, mantener y reutilizar.

Otra manera en que esto es expresado a menudo, es que la programacin orientada a objetos anima al programador a pensar en los programas principalmente en trminos de tipos de datos, y en segundo lugar en las operaciones ("mtodos") especficas a esos tipos de datos. Los lenguajes procedimentales animan al programador a pensar sobre todo en trminos de procedimientos, y en segundo lugar en los datos que esos procedimientos manejan.

Los programadores que emplean lenguajes procedimentales, escriben funciones y despus les pasan datos. Los programadores que emplean lenguajes orientados a objetos definen objetos con datos y mtodos y despus envan mensajes a los objetos diciendo que realicen esos mtodos en s mismos.

Algunas personas tambin diferencian la POO sin clases, la cual es llamada a veces programacin basada en objetos.

Hay un cierto desacuerdo sobre exactamente qu caractersticas de un mtodo de programacin o lenguaje le califican como "orientado a objetos", Trmino deProgramacin Orientada a Objetos indica ms una forma de diseo y una metodologa de desarrollo de software que un lenguaje de programacin, ya que en realidad se puede aplicar el Diseo Orientado a Objetos (En ingls abreviado OOD, Object Oriented Design), a cualquier tipo de lenguaje de programacin.

El desarrollo de la POO empieza a destacar durante la dcada de lo 80 tomando en cuenta la programacin estructurada, a la que engloba y dotando al programador de nuevos elementos para el anlisis y desarrollo de software.Se puede definir POO como una tcnica o estilo de programacin que utiliza objetos como bloque esencial de construccin. Oriented Design), a cualquier tipo de lenguaje de programacin.

Los objetos son en realidad como los tipos abstractos de datos. Un TAD es un tipo definido por el programador junto con un conjunto de operaciones que se pueden realizar sobre ellos. Se denominan abstractos para diferenciarlos de los tipos de datos fundamentales o bsicos.

Ventajas de POO

La OOP proporciona las siguientes ventajas sobre otros lenguajes de programacin

Uniformidad. Ya que la representacin de los objetos lleva implica tanto el anlisis como el diseo y la codificacin de los mismos.

Comprensin. Tanto los datos que componen los objetos, como los procedimientos que los manipulan, estn agrupados en clases, que se corresponden con las estructuras de informacin que el programa trata.

Flexibilidad. Al tener relacionados los procedimientos que manipulan los datos con los datos a tratar, cualquier cambio que se realice sobre ellos quedar reflejado automticamente en cualquier lugar donde estos datos aparezcan.

Estabilidad. Dado que permite un tratamiento diferenciado de aquellos objetos que permanecen constantes en el tiempo sobre aquellos que cambian con frecuencia permite aislar las partes del programa que permanecen inalterables en el tiempo.

Reusabilidad. La nocin de objeto permite que programas que traten las mismas estructuras de informacin reutilicen las definiciones de objetos empleadas en otros programas e incluso los procedimientos que los manipulan. De esta forma, el desarrollo de un programa puede llegar a ser una simple combinacin de objetos ya definidos donde estos estn relacionados de una manera particular.

Reutilizacin. Las clases se construyen a partir de otras clases. Sistemas ms fiables. Proceso de desarrollo apropiado. Desarrollo ms flexible. Modelos que reflejan mejor la realidad. Mejor independencia e interoperatividad de la tecnologa. Mejor informtica distribuida en cliente servidor. Bibliotecas de clases comerciales disponibles. Mejores relaciones con los clientes. Mejor calidad del producto de software terminado.

Que es una clase y Que es un objeto?

Concepto de Clase

Una clase es una agrupacin de datos (variables o campos) y de funciones (mtodos) que operan sobre esos datos. La definicin de una clase se realiza en la siguiente forma:

[public] class Class name{// Definicin de variables y mtodos...}Donde la palabra public es opcional: si no se pone, la clase tiene la visibilidad por defecto, esto es, slo es visible para las dems clases del paquete. Todos los mtodos y variables deben ser definidos dentro del bloque {...} de la clase.

Que es un objeto?

Un objeto (en ingls, instance) es un ejemplar concreto de una clase. Las clases son como tipos de variables, mientras que los objetos son como variables concretas de un tipo determinado.Classname unObjeto;ClassnameotroObjeto;

SEGUNDO TALLER

1. De acuerdo con el concepto de abstraccin mire su casa o apartamento y diga cul es la funcin de cada una de las partes.

2. Cul es la funcin de los descriptores private, public y protected.

3. Realiza un mapa conceptual con 15 trminos del tema de modularidad.

4. Cul es la funcin principal de la jerarqua en la POO.

5. Cul es la relacin que existe entre jerarqua y polimorfismo?

6. Mediante un ejemplo explique el concepto de herencia7. Realiza un rbol teniendo en cuenta las clases y subclases y lo que heredan de cada uno de las clases padres.

1. De acuerdo con el concepto de abstraccin mire su casa o apartamento y diga cul es la funcin de cada una de las partes.

El elemento esencial de la programacin orientada a objetos en java es la abstraccin.Nosotros normalmente miramos la complejidad a travs de la abstraccin. Por ejemplo como se puede observar en la figura vemos un conjunto de miles de partes individuales. Donde es un objeto bien definido con un comportamiento propio nico.

Una forma poderosa de gestionar la abstraccin es utilizando clasificaciones jerrquicas; esto nos permite dividir en niveles la semntica de los sistemas complejos, obteniendo sistemas ms manejables. Por ejemplo el paisaje desde el exterior es un sistema sencillo a simple vista pero una vez dentro, podemos ver que este sistema est compuesto por varios subsistemas: el clima, la vegetacin, los animales, el medio ambiente etc.

Cada parte de la casa cumple con una funcin especfica y hace parte de una clase o subclase segn su ubicacin por ejemplo:

La casa est compuesta por las alcobas y a su vez las alcobas estn compuestas por otros elementos que hace parte ella y cumplen con sus funciones; tambin est compuesta por la cocina, el bao, un comedor, una sala, etc. Y estos a su vez estn compuestos por diferentes elementos que forman parte de cada uno de ellos.

2. Cul es la funcin de los descriptores private, public y protected?

En ciertos lenguajes, se puede definir qu variables de instancia y mtodos de los objetos de una clase son visibles. En C++ y java esto se consigue con las especificaciones private, protected y public. Slo las variables y mtodos definidos como pblicos en un objeto sern visibles por todos los objetos. Dependiendo del lenguaje que se utilice, tambin se puede controlar qu miembros de las superclases son visibles en las subclases. En el caso de java y C++ los especificadores de acceso (private, protected, public) de los miembros de la superclase afectan tambin a la herencia: Private: ningn miembro privado de la superclase es visible en la subclase. Protected: los miembros protegidos de la superclase son visibles en la subclase, pero no visibles para el exterior. Public: los miembros pblicos de la superclase siguen siendo pblicos en la subclase.Public:Una variable/funcin pblica puede ser accedida desde fuera de la clase. Es decir, puedo acceder desde la instancia de la clase y no slo desde el cdigo interno de la clase. Ejemplo de funciones pblicas son los mtodos de una clase. Tambin es posible crear variables pblicas, para que puedan ser manejadas desde la instancia, pero no es algo comn o recomendable, entre otras cosas porque deja un hueco de seguridad en la clase, acabando con la idea de la encapsulacin. Para declarar una variable/funcin como pblica, se le antepone la palabra clave public.public: Los miembros declarados public son accesibles en cualquier lugar en que sea accesible la clase, y son heredados por las subclases.

Private:Al contrario que las pblicas, las variables/funciones privadas slo pueden ser accedidas desde dentro de la misma clase. Todo intento de llamarlas desde la una instancia de la misma es en vano. Mantener variables/funciones privadas permiten tener un mayor control sobre la clase, sobre el modo como procesa sus mtodos, como maneja sus variables, etc. Para declarar una variable/funcin como privada, se le antepone la palabra clave private.private: Los miembros declarados private son accesibles slo en la propia clase.

Protected:Existe un tipo intermedio de mbito, llamado protegido. Es un punto medio entre pblico y privado, porque -como ocurre con las privadas- no se puede acceder a ella desde una instancia de la clase, pero -como ocurre con las pblicas- puede ser accedido desde las subclases de sta, no importa si se encuentran o no en el mismo paquete. Bsicamente significa que, si una clase hereda de otra, tendr acceso a las variables/funciones protegidas de la super-clase, de lo contrario, no podr acceder a ellas. Para declarar una variable como protegida, se le antepone la palabra clave protected.protected: Los miembros declarados protected son accesibles slo para sus subclases

2. Realiza un mapa conceptual con 15 trminos del tema de modularidad.

3. Cul es la funcin principal de la jerarqua en la POO.

La funcin de la jerarqua en la POO es determinar la organizacin de las distintas clases de un programa. La representacin de dicha organizacin da lugar a los denominados rboles de herencia. El ms claro ejemplo dejerarqua es la herencia. Mediante la herencia una clase hija puede tomar determinadas propiedades de una clase padre. As se simplifican los diseos y se evita la duplicacin de cdigo al no tener que volver a codificar mtodos ya implementados. En trminos generales, la funcin principal es que permite ordenar los elementos de acuerdo a su nivel, es similar a una pirmide en la que en la cima se encuentra la parte primaria y en las dems se van ubicando sus partes secundarias o heredadas.

4. Cul es la relacin que existe entre jerarqua y polimorfismo?

Polimorfismo: Caracterstica que permite tomar como algo igual a un nivel superior dos cosas que a un nivel ms bajo son diferentes

Ejemplo: animal: Vaca y Caballo. Los dos son animales a un nivel alto de abstraccin (animal) pero diferentes a un nivel inferior.

El polimorfismo bsicamente permite olvidarse de ciertas caractersticas especficas de varios objetos para centrarse en lo que tengan en comn, en lo que los haga iguales.

Jerarqua: el concepto de jerarqua designa una forma de organizacin de diversos objetos de un determinado sistema, en el que cada uno es subordinado del elemento posicionado inmediatamente en el nivel superior.

As como la herencia est relacionada con las clases y su jerarqua, el polimorfismo se relaciona con los mtodos permitiendo que un mismo objeto pueda tomar diversas formas

5. Mediante un ejemplo explique el concepto de herencia

La herencia es uno de los mecanismos de la programacin orientada a objetos, por medio de la cual una clase se deriva de otra de manera que extiende su funcionalidad.

Una de sus funciones ms importantes es la de proveer polimorfismo. La herencia en la POO permite a una clase heredar las propiedades de una clase de objetos, donde la clase padre sirve como patrn a la clase derivada. Si un objeto hereda sus atributos de un nico padre, esto recibe el nombre de herencia simple, y si hereda atributos de mltiples padres es herencia mltiple, la ventaja de la herencia es permitir la reutilizacin de cdigo.

1. ejemploCLASES DE ANIMALES

Herbvoros AnfibiosMamferos

PerroSapoConejo

2. Ejemplo

Herencia madre hija, caractersticas como:

Color de ojos Color de cabello Color de piel Gustos

6. Realiza un rbol teniendo en cuenta las clases y subclases y lo que heredan de cada uno de las clases padres.

Deportes de Pelota(Clase Padre)

Con el Pie (Subclase hija2)

Con la Mano(Subclase hija1)

Futbol Sala(Subclase nieta 4)

Futbol (Subclase nieta 3)

Tenis(Subclase nieta 2)

Baloncesto(Subclase nieta 1)

REFERENCIAS

Modulo Programacin Orientada a Objetos http://www.alegsa.com.ar/Diccionario/C/12117.php