Investigacion POO

51
Instituto Tecnológico de Nuevo Laredo Programaci ón Orientada a Objetos. Profesora: Ing. María Gloria Rodríguez Morales. Investigacion de temas: Composición. Agregación. DataGridView.

description

Invesitagacion sobre programacion orientada a objetos

Transcript of Investigacion POO

Instituto Tecnolgico de Nuevo Laredo

Programacin Orientada a Objetos.

Profesora: Ing. Mara Gloria Rodrguez Morales.

Investigacion de temas: Composicin. Agregacin. DataGridView. GetEnumerator(). Clases Sealed.

Alumno: Erik Alberto Aldeco Quintero.Numero de control: 14100119Fecha:31 de Marzo 2015.

TemaPagina

Composicion.1-8

Agregacion.9-16

DataGridView17-29

GetEnumerator()30-34

Clases Sealed35-39

Webgrafa40.

Bibliografa41

1. ComposicinEn informtica, la composicin de objetos o object composition (que no debe ser confundida con la composicin de funciones) es una forma de combinar objetos o tipos de datos simples en complejos.

Qu es?Es una relacin que representa a objetos compuestos por otros objetos. El objeto en el nivel superior de la jerarqua es el todo y los que estn en los niveles inferiores son sus partes o componentes. Un componente es parte esencial de una entidad. La relacin es fuerte al punto que si el componente es eliminado o desaparece, la clase mayor (el todo) deja de existir. Grficamente se representa colocando un rombo negro en el extremo de la clase constituida (parte del todo).

Para que sierve?Las composiciones son fundamentales en muchas estructuras de datos bsicas como las listas enlazadas, los rboles binarios, como tambin en los objetos utilizados en la programacin orientada a objetos.

Cundo se utiliza?Cuando se desee ocultar, o encapsular un objeto bajo una nueva interfaz.En los lenguajes de programacin, la composicin de objetos es usualmente expresada por medio de referencias de un objeto a otro; dependiendo del lenguaje, esas referencias pueden ser conocidas como campos, miembros, propiedades o atributos y la composicin resultante puede ser una estructura, tupla, tipo definido por el usuario o registro, La composicin permite implementar relaciones del tipo tiene un.Por ejemplo

La persona tiene un corazon.El corazon forma parte de una persona, pero, la persona no existe sin su corazn. Por tanto la relacin de la persona con su corazn es de composicin y se denota con el rombo relleno.Existen 3 reglas para que se presente una relacion de composicion entre 2 clases1. La clase del todo DEBE tener un atributo de tipo partea) Un objeto cuando es relacin 1..1b) Una coleccin genrica si es relacin 1..*

2. La clase del todo DEBE tener un mtodo para insertarle objetos de tipo parte3. La clase del todo DEBE tener el destructor.

Mapa Mental.

Atributos de tipo parte

Relacin Fuerte entre un todo y sus partes.En UML se representa como un rombo negro.Destructor

MtodosClase del TodoCOMPOSICIN

Ejemplos.Ejemplo 1.Tomando el ejemplo que vimos al principio.

La existencia del corazn depende de la persona porque si la persona no existe, el corazn tampoco, por lo tanto existe composicin. Adelante se muestra un ejemplo de composicin en c#. Clase Persona.Composicin.

La clase Corazn, la cual tendr un atributo.

Ahora nos vamos al Main.

Lo Ejecutamos y quedara as.

Ejemplo 2.En el siguiente ejemplo vemos que la clase Silla tiene como tipo parte Patas.

SillaPatas

La existencia de las Patas dependedme la Silla, por lo tanto es una composicin.

Ahora su codificacin en C#.

Esta es la Clase Silla.

ComposicinComo la silla tiene 4 patas, agregamos 4 objetos tipo parte de la clase Silla.

Ahora en el Main().

Al Ejecutarlo, le damos valores a el Material de la silla, que es string, y los largos de las patas que son souble.

Conclusin.La composicin de clases expresa el hecho de que se pueden componer o constituir clases nuevas a partir de objetos de otras clases. Lo mismo que en el mundo real, en donde observamos objetos formados por otros objetos: computadores formados por teclado, pantalla y unidad central de proceso; rectas formadas por puntos, vehculos formados por motor, transmisin y chasis, etc.La Composicin en la Programacin Orientada a Objetos no es ms que considerar la posibilidad de que los atributos o datos miembros de una clase sean objetos, es decir una clase puede tener como datos miembros a objetos de otras clases. Adems me quedo en claro que la composicin crea atributos de tipo tiene un que es algo fcil de comprender y puede servir como gua al momento de saber cundo utilizar la composicin.Dejando en claro el punto de Composicin, queda en claro que: Se utiliza para modelar un " todo" y sus " partes". El " todo" no puede existir si no existen sus " partes". Las " partes" desaparecen cuando se elimina el " todo. Tiene un atributo de tipo parte. Tiene un mtodo. Tiene un destructor.

2. Agregacin

Qu es?La agregacin es un tipo de asociacin que indica que una clase es parte de otra clase (composicin dbil). Los componentes pueden ser compartidos por varios compuestos (de la misma asociacin de agregacin o de varias asociaciones de agregacin distintas). La destruccin del compuesto no conlleva la destruccin de los componentes. Habitualmente se da con mayor frecuencia que la composicin.La agregacin se representa en UML mediante un diamante de color blanco colocado en el extremo en el que est la clase que representa el todo.

Para qu sirve?Este es un concepto que se utiliza para expresar tipos de relaciones entre objetos parte-de (part-of). El objeto componente, tambin a veces denominado continente o contenedor, es un objeto agregado que se compone de mltiples objetos.

Cundo se utiliza?Se utiliza para modelar un " todo" y sus "partes " donde: El " todo" se forma agregando sus" partes". Las " partes" pueden pertenecer a varios " todos". Si se elimina el " todo" pueden seguir existiendo sus" partes.Recordemos que la agregacin permite implementar relaciones del tipo parte de.Por ejemplo, un carro tiene llantas, pero la existencia del carro no depende de las llantas, y la existencia de las llantas no depende del carro.

Ah una regla bsica para saber si existe una relacin de agregacin: En la agregacin, la clase del todo NO es necesario que tenga el destructor, ya que si se elimina un objeto del todo, sus partes siguen existiendo porque pueden pertenecer a otros todos.

Mapa mental.Relacin Dbil entre clases.

En UML se representa mediante un rombo blanco al lado de la clase del todo.Mtodos Atributos Clase del todo.Agregacin

Objetos parte de

Ejemplos.Ejemplo 1.

CasaVentana

Tomaremos este ejemplo, una Ventana es parte de una Casa, por lo tanto si yo quito mi ventana, la Casa sigue existiendo, a esto se le conoce como agregacin.Este es el ejemplo, ya codificado en C#.

Clase Casa.Agregacin porque no hay destructor.

Clase Ventana.

Ahora en el Main()

Al Ejecutarlo le damos valores a los atributos de cada clase, y quedara as.

Ejemplo 2.

BandejaPastelillos.

En este ejemplo, estamos diciendo que, los pastelillos son parte de la bandeja, pero si quito los pastelillos, la bandeja sigue existiendo, esto es agregacin.Codificacin en C#. La clase Bandeja, digamos que la bandeja contiene 2 pastelillos, por lo tanto 2 objetos tipo parte de.No hay destructor para la clase Bandeja, por lo tanto es agregacin.

Clase Pastelillos.

Ahora en el Main();

Al ejecutarlo le damos valores a lo que nos pide.

Conclusin.Quedo en claro que la agregacin define una relacin donde una clase se puede formar de otras clases, sin embargo la existencia de vida de los objetos de dichas clases es independiente. He comprendido que la agregacin es una composicin sin destructor.

3. DataGridView

Qu es?El control DataGridView proporciona una forma eficaz y flexible de mostrar datos en formato de tabla, Muestra un conjunto de datos de tipo string y Es semejante a un arreglo bidimensional (matriz).Ejemplo de un DataGridView en Microsoft Visual Studio Express 2013

Para qu sirve?Puede utilizar el control DataGridView para mostrar vistas de slo lectura de una cantidad pequea de datos o puede ajustar su tamao para mostrar vistas modificables de conjuntos muy grandes de datos.Cundo se utiliza?Cuando desee Mostrar una pequea cantidad de datos, la cual no necesita provenir de ningn tipo de base de datos, uno mismo las puedo introducir por medio de herramientas en Windows Forms, pero no se descarta la posibilidad de que provengan de una base de datos.

Propiedades Importantes: Permite Agregar etiquetas a los renglones:

Permite agregar Columnas:

Numero de Columnas a insertar.

Ancho de columna automatico.Permite borrar COLUMNAS.Permite agregar RENGLONES.

Como conectar un DataGridView a Access: Tendrs que aadir el using "System.Data.OleDb".

Ahora estableceremos la conexin con la base de datos de Access. Si tu base de datos tiene alguna autentificacin MSDN tiene una muy buena documentacin para que puedas realizar la conexin correctamente.

La cadena de conexin, se rompe en 2 partes, el proveedor y el soporte de los datos. El proveedor es el motor que vamos a utilizar - en este caso, el motor Jet de Microsoft. La fuente de datos, para el acceso, es simplemente la ruta de acceso al archivo de base de datos.

Ahora vamos a utilizar la cadena de conexin y obtener algunos datos de nuestra base de datos.

Ahora que tenemos un DataTable lleno de informacin de bases de datos , vamos a ver cmo sincronizar con un DataGridView .

El objeto BindingSource es lo que va a mantener nuestra DataTable sincronizado con el DataGridView . As que pusimos el DataSource del BindingSource a dTable, a continuacin, establezca el DataSource del DataGridView al BindingSource . Ahora, cuando su programa se ejecuta, el DataGridView debe ser llenado con los resultados de la consulta SQL.

En el punto, autotomaticamente se harn los cambios realizados por el usuario en el DataGridView a la DataTable , dTable . Ahora necesitamos una manera de conseguir los cambios de nuevo en la base de datos. Todo lo que tienes que hacer es llamar a la funcin de actualizacin del OleDbDataAdapter con el DataTable como argumento para lograr esto.

Ejemplos.Ejemplo 1. Se tiene una clase registro, donde se crea una lista genrica de la clase rectngulo, con su respectivo mtodo para agregar un nuevo objeto a la lista, y el mtodo GetEnumerator(), para recorrer la lista.

Esta es la clase Rectngulo, con sus atributos de sus lados, y dos mtodos, calcular rea y permetro.

Este sera el diseo en Windows Forms.

Se crea una instancia de la clase Registro.

En el botn Insertar, contiene lo siguiente.

Al ejecutarlo quedara as

.

Ejemplo 2.El siguiente programa captura las calificaciones de un alumno, y valida si es aprobado o no. Esta es la clase Escuela.

Esta es la clase Alumno, con atributos para 5 materias y su nombre, con sus respectivas propiedades.

Esta es el diseo En Windows Forms.

En el botn calcular calificaciones.

Decisin para ver si esta reprobado o no.

Probamos el programa y quedara as.

Mapa Mental.

Puede operar sin tener ningn origen de datos enlazado.

Muestra un conjunto de datos de tipo string

DataGridView

Permite agregar RENGLONES.

Propiedades Importantes

Permite borrar COLUMNAS.

Ancho de columna automatico.

Conclusin.Puede ampliar el control DataGridView de varias maneras para construir comportamientos personalizados en las aplicaciones. Por ejemplo, puede especificar mediante programacin sus propios algoritmos de ordenacin y crear sus propios tipos de celdas. Puede personalizar con facilidad la apariencia del control DataGridView eligiendo entre varias propiedades. Se pueden utilizar muchos tipos de almacenes de datos como origen de datos o el control DataGridView puede operar sin tener ningn origen de datos enlazado.

4. GetEnumerator()

Qu es?Con GetEnumerator(),se devuelve un numerador que recorre en iteraciones una coleccin. En dicho tipo de implementacin, la primer vez que se invoca un mtodo GetEnumerator del objeto enumerable, se devuelve el mismo objeto enumerablePara qu sirve?El mtodo GetEnumerator del objeto enumerable devuelve un objeto del enumerador que encapsula el cdigo especificado en el bloque de iteradores.Cmo se utiliza?Cuando se utiliza un bloque de iteradores para implementar un miembro de funcin que devuelve un tipo de interfaz enumerable y se invoca el miembro de funcin, el cdigo de dicho bloque no se ejecuta inmediatamente. En su lugar se crea y se devuelve un objeto enumerable.

Mapa Conceptual.

Un objeto enumerable implementa los mtodos GetEnumerator de las interfaces IEnumerable e IEnumerable.

Lo Contiene System.Collections

Se Utiliza por medio del ciclo foreach.

Utiliza la instruccin yield return para devolver cada elemento

GetEnumerator()

Utiliza la instruccin yield break para finalizar la iteracin (ciclo) cuando sea necesario.

EjemplosEjemplo 1.

Este programa muestra cmo funciona el mtodo GetEnumerator del tipo de lista. En una lista ( int) , GetEnumerator devuelve un objeto enumerador de lista ( int) . Este objeto implementa IEnumerator ( int) . Podemos entonces escribir mtodos que reciben IEnumerator ( int) .Recorre la lista.Desplaza el enumerador al siguiente elemento de la coleccin.

Al ejecutarlo mostrara lo siguiente.

Ejemplo 2.En el siguiente ejemplo de cdigo se muestra la forma de utilizar GetEnumerator para enumerar los elementos de una matriz.

Al ejecutar el programa Mostrara lo siguiente.

Conclusin.Un objeto enumerable implementa los mtodos IEnumerable e IEnumerable.Los dos mtodos GetEnumerator comparten una implementacin comn que adquiere y devuelve un objeto de enumerador disponible.Adquiere y devuelve un objeto de enumerador disponible, porque recorre una lista de objetos.

5. Clases SealedQu es?El modificadorsealed, cuando se aplica a una clase, impide que otras clases se hereden de l.sealed classPara qu sirve?Impide la derivacin de la clase donde se utilize.Cundo se utiliza?El modificador sealed se utiliza principalmente para impedir la derivacin no intencionada, pero tambin permite algunas optimizaciones en tiempo de ejecucin. En particular, como una clase sealed no puede tener clases derivadas, es posible transformar las llamadas virtuales a miembros de funcin en instancias de clase sealed en llamadas no virtuales.

Mapa Conceptual.Se utiliza la palabra sealed antes de class para indicarlo.Una clase sealed no puede ser tampoco una clase abstracta.Las clases sealed (selladas) pueden ser instanciadas.Impide la derivacion de la clase donde se utilize.Clase Sealed

Ejemplos.Ejemplo 1.

Comprobaremos que la clase sealed, no puede derivarse con este pequeo y claro ejemplo. Tendremos 2 clases, la sealed clase Equipo y la clase Jugador. Clase Sealed Equipo.Sealed Class

Si analizamos la clase sealed equipo, yo quiero heredar de la clase Equipo los atributos name y numero a la clase Jugador, hagamoslo .

Como se menciono al principio de este tema, una clase sealed no puede ser heredada, pero si instanciada, este es el error.

Arreglamos la clase jugador, de tal forma que no herede nada de la clase sealed Equipo, y tendria sus propios atributos.

Ejemplo 2En el siguiente ejemplo se muestra que una sealed class puede instanciarse, veamoslo. La sealed class sera Miclase.

Asi seria la Forma de la ventana.

En el la clase form.cs

Instancia de la clase Miclase.

Conclusin.El modificador sealed se utiliza para impedir la derivacion de una clase, tambien este tipo de clases pueden ser instanciadas y no pueden ser abstractas.

Webgrafa.

Composicion y Agregacion http://www.itnuevolaredo.edu.mx/takeyas/Apuntes/POO/Apuntes/03.-%20Herencia.pdf http://webdelprofesor.ula.ve/ingenieria/gilberto/pr2/practica7-OxO-herencia-composicion.pdf http://www.didierperez.com/2012/02/diagrama-de-clases-uml-agregacion-y-composicion/ http://tensores.blogspot.mx/2007/08/relacin-de-agregacin-vs-composicin.html http://www.todoexpertos.com/categorias/ciencias-e-ingenieria/ingenieria-informatica/respuestas/2021345/uml-agregacion-y-composicion http://html.rincondelvago.com/poo_11.html http://www.seas.es/blog/informatica/agregacion-vs-composicion-en-diagramas-de-clases-uml/

GetEnumerator http://stackoverflow.com/questions/2486250/implementing-getenumerator-for-a-collection-inherited-from-liststring http://www.dotnetperls.com/getenumerator

DatagridView http://www.itnuevolaredo.edu.mx/takeyas/Apuntes/C_Sharp/Apuntes/7.-ProgramacionenC_SharpPorBLT28FormasdeWindows.pdf

Clases Sealed https://msdn.microsoft.com/es-es/library/88c54tsw.aspx https://msdn.microsoft.com/en-us/library/88c54tsw(VS.71).aspx

Bibliografia. La Biblia de C#, Anaya. CSharp Language Specification Ver. 3.0, Microsoft Corporation.