Sie sind auf Seite 1von 43

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: 14100119
Fecha:31 de Marzo 2015.

Tema
Composicion.
Agregacion.
DataGridView
GetEnumerator()
Clases Sealed
Webgrafa
Bibliografa

Pagina
1-8
9-16
17-29
30-34
35-39
40.
41

1. Composicin
En 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 clases
1. La clase del todo DEBE tener un atributo de tipo parte
a) Un objeto cuando es relacin 1..1
b) Una coleccin genrica si es relacin 1..*
2. La clase del todo DEBE tener un mtodo para insertarle objetos de tipo
parte
3. La clase del todo DEBE tener el destructor.

Mapa Mental.

Atributos de tipo
parte
Clase del Todo

Mtodos

Destructor
COMPOSICIN

Relacin Fuerte
entre un todo y sus
partes.

En UML se
representa como
un rombo negro.

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#.

Composicin.

Clase Persona.

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.

Silla

Patas

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

Ahora su codificacin en C#.

Esta es la Clase Silla.

Como la silla
tiene 4 patas,
agregamos 4
objetos tipo

Composicin

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.

Objetos
parte
de
Agregacin
Clase del
todo.

Atributo
s

Mtodos

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

10

Ejemplos.
Ejemplo 1.

Casa

Ventana

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.

Agregaci
n porque
no hay
destructor.

11

Clase Ventana.

Ahora en el Main()

12

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

13

Ejemplo 2.

Bandeja

Pastelillos.

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

Clase Pastelillos.

14

Ahora en el Main();

Al ejecutarlo le damos valores a lo que nos pide.

15

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.

16

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:

17

Permite agregar Columnas:

Numero de
Columnas a
insertar.

18

Permite agregar
RENGLONES.

Permite borrar
COLUMNAS.

Ancho de columna
automatico.

Como conectar un DataGridView a Access:


o Tendrs que aadir el using "System.Data.OleDb".

19

o 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.
o Ahora vamos a utilizar la cadena de conexin y obtener algunos
datos de nuestra base de datos.

20

o Ahora que tenemos un DataTable lleno de informacin de bases de


datos , vamos a ver cmo sincronizar con un DataGridView .

o 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.

21

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.

22

Este sera el diseo en Windows Forms.

Se crea una instancia de la clase Registro.

En el botn Insertar, contiene lo siguiente.

23

Al ejecutarlo quedara as

24

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.

25

Esta es el diseo En Windows Forms.

En el botn calcular calificaciones.

26

Decisin para ver si esta reprobado o no.

Probamos el programa y quedara as.

27

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.

28

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.

29

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
enumerable
Para 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<T>.

Utiliza
instruccin
return
devolver
elemento

la
yield
para
cada

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

Lo Contiene
System.Collections

GetEnumerator()

30

Se Utiliza por medio del


ciclo foreach.

Ejemplos
Ejemplo 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.

31

Al ejecutarlo mostrara lo siguiente.

32

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.

33

Conclusin.
Un
objeto
enumerable
implementa
los
mtodos
IEnumerable
e
IEnumerable<T>.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.

34

5. Clases Sealed
Qu es?
El modificador sealed, cuando se aplica a una clase, impide que otras clases se
hereden de l.

sealed class
Para 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.

Clase Sealed

Impide la derivacion
de la clase donde se
utilize.

Las
clases
sealed
(selladas) pueden ser
instanciadas.

Se utiliza la palabra
sealed antes de class
para indicarlo.

Una clase sealed no


puede ser tampoco una
clase abstracta.
35

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 .

36

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 2
En el siguiente ejemplo se muestra que una sealed class puede instanciarse,
veamoslo.

La sealed class sera Miclase.

37

Asi seria la Forma de la ventana.

En el la clase form.cs

Instancia
de la clase
Miclase.

38

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.

39

Webgrafa.

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

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

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

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

40

Bibliografia.

La Biblia de C#, Anaya.


CSharp Language Specification Ver. 3.0, Microsoft Corporation.

41

Das könnte Ihnen auch gefallen