PDF de programación - 06a.- Composición Y Agregación - Programación Orientada a Objetos en C#

Imágen de pdf 06a.- Composición Y Agregación - Programación Orientada a Objetos en C#

06a.- Composición Y Agregación - Programación Orientada a Objetos en C#gráfica de visualizaciones

Publicado el 17 de Febrero del 2019
2.064 visualizaciones desde el 17 de Febrero del 2019
1,6 MB
40 paginas
Creado hace 5a (15/08/2018)
Programación Orientada a Objetos en C# .NET

CAPÍTULO 6

COMPOSICIÓN Y AGREGACIÓN

2

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

1

Programación Orientada a Objetos en C# .NET

Preguntas detonadoras

¿Qué es y para qué sirve una clase parametrizada?
Una clase parametrizada, ¿Qué tipo de parámetro recibe?
¿Cuáles con las colecciones genéricas incluidas en el framework?
¿Es posible insertar uno o varios objetos dentro de otro? ¿Cómo?
¿En qué se parece una composición a una agregación? ¿En qué

difieren?

¿Cuándo se recomienda implementar composición? ¿Cuándo

agregación?

Cuando una clase define una colección privada de objetos, ¿cómo

pueden consultarse sus datos desde el exterior?

¿Se puede implementar un iterador por medio de un método? ¿y de

una propiedad?

Relaciones entre clases:

Herencia, Composición y
Agregación

3

4

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

2

Programación Orientada a Objetos en C# .NET

Clases parametrizadas o genéricas

Ejemplo: Una empresa y una escuela desean
la clave y nombre de sus

almacenar
personas:
Clave: Entero ó String
Nombre: String

Pero en la empresa la clave es numérica

entera y en la escuela es una cadena.

5

6

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

3

Programación Orientada a Objetos en C# .NET

Clases parametrizadas o genéricas
(cont.)

Clases iguales

(excepto en el tipo de dato de la clave)

Escuela

Empresa

7

Clases parametrizadas o genéricas
(cont.)

Diseñar una clase parametrizada que sirva para ambos

casos:

8

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

4

Programación Orientada a Objetos en C# .NET

Codificación de la clase
parametrizada

class Persona<Tipo> // Clase parametrizada o genérica

{

// Atributos privados
private Tipo clave; // Se define el tipo de dato de la clave
private string nombre;

// Propiedades públicas
public Tipo Clave // Se define el tipo de dato de la propiedad
{

get { return clave; }
set { clave = value; }

}

public string Nombre
{

get { return nombre; }
set { nombre = value; }

}

}

9

Clases parametrizadas o genéricas
(cont.)
// Declaración y creación de los objetos

Persona<int> miEmpleado = new Persona<int>();
Persona<string> miEstudiante = new Persona<string>();

// Uso de los objetos

miEmpleado.Clave = int.Parse(txtClave.Text);

miEstudiante.Clave = txtClave.Text;

10

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

5

Programación Orientada a Objetos en C# .NET

Clases parametrizadas con varios
tipos

Ejemplo: Una empresa y una escuela
desean almacenar la clave y grupo de sus
personas:
Clave: Entero ó string
Grupo: Entero ó caracter

11

Clases parametrizadas con varios
tipos

Clases iguales

(excepto en los tipos de datos)

Escuela

Empresa

12

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

6

Programación Orientada a Objetos en C# .NET

Codificación de la clase
parametrizada con varios tipos

class Persona<Tipo1, Tipo2> // Clase parametrizada con varios tipos

{

// Atributos privados
private Tipo1 clave;
private Tipo2 grupo;

// Propiedades públicas
public Tipo1 Clave
{

get { return clave; }
set { clave = value; }

}

public Tipo2 Grupo
{

get { return grupo; }
set { grupo = value; }

}

}

13

Clases parametrizadas con varios
tipos (cont.)

// Declaración y creación de los objetos
Persona<int, int> miEmpleado = new Persona<int, int>();
Persona<string, char> miEstudiante = new Persona<string, char>();

// Uso de los objetos

miEmpleado.Clave = int.Parse(txtClave.Text);

miEmpleado.Grupo = int.Parse(txtGrupo.Text);

miEstudiante.Clave = txtClave.Text;

miEstudiante.Grupo =char.Parse(txtClave.Text);

14

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

7

Programación Orientada a Objetos en C# .NET

Colecciones genéricas en C#

Incluidas

en

el

namespace

System.Collection.Generic

Incorporadas a partir del .NET Framework

2.0

Contiene clases e interfaces que definen

tipos genéricos para instanciar colecciones

Permite modelar estructuras de datos

Estructuras de datos en C#

Colección (clase genérica)
ArrayList
Stack
Queue
List
LinkedList

Estructura de datos
Arreglos
Pilas
Colas
Listas enlazadas simples
Listas enlazadas dobles

15

16

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

8

Programación Orientada a Objetos en C# .NET

Listas enlazadas simples

Estructura de datos compuesta de nodos en

secuencia enlazados a través de una referencia
(apuntador).

Cada nodo se compone de 2 partes:

Datos
Referencia al siguiente nodo

Además, hay una referencia al primer nodo de la

lista y el último nodo apunta a nulo

17

La clase genérica List

Modela listas enlazadas en C#
Requiere un parámetro adicional para definir

el tipo de dato que almacena

El parámetro se coloca entre < y >
P. ejem.

List <int> miListaSimpleEnteros;
List <double> miListaReales;
List <Empleado> miListaEmpleados;

18

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

9

Programación Orientada a Objetos en C# .NET

Principales métodos y propiedades
de la clase genérica List

Método o propiedad Uso
Clear()
Add()
Remove()

Elimina la primera ocurrencia de un nodo de la
lista y devuelve un valor booleano para confirmar
la operación

Elimina todos los nodos de la lista

Agrega un nodo al final de la lista

Contains()

Count

Sort()
GetEnumerator()

Determina si un nodo se encuentra almacenado
en la lista

Devuelve la cantidad de nodos almacenados en la
lista

Ordena en forma ascendente los nodos de la lista

Recorre los nodos de la lista y devuelve un
enumerador.

19

Ejemplo de lista

Crear una clase para
modelar objetos con
datos de empleados

Crear una lista que
almacene muchos
empleados

20

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

10

Programación Orientada a Objetos en C# .NET

Creación de un objeto de una lista
genérica

Creación de un objeto de una lista genérica
List<Empleado> miEmpresa = new

List<Empleado>();

El objeto miEmpresa es una lista genérica
que almacena objetos de la clase Empleado

21

Captura de datos de un nodo de la
lista genérica

Capturar los datos de

un empleado en
textBoxes

Al oprimir el botón

insertar, crear un objeto
de la clase Empleado e
insertarlo en la lista
genérica

Mostrar los datos en un

dataGridView

22

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

11

Programación Orientada a Objetos en C# .NET

Creación de un empleado (nodo de
la lista)

Crear un objeto con los datos de un empleado para

agregarlo a la lista
Empleado miEmpleado = new Empleado();

Llenar los datos del empleado

miEmpleado.Numero = int.Parse(textBox1.Text);

miEmpleado.Nombre = textBox2.Text;

miEmpleado.Sueldo = double.Parse(textBox3.Text);

23

Insertar un empleado (agregar un
nodo a la lista)

Insertar el empleado en la lista

miEmpresa.Add(miEmpleado);

Crear el dataGridView

dataGridView1.Columns.Add("Número", "Número");

dataGridView1.Columns.Add("Nombre", "Nombre");

dataGridView1.Columns.Add("Sueldo", "Sueldo");

// Inicializa las propiedades del dataGridView1

dataGridView1.ReadOnly = true;

dataGridView1.AllowUserToAddRows = false;

dataGridView1.AllowUserToDeleteRows = false;

dataGridView1.AutoSizeColumnsMode =

DataGridViewAutoSizeColumnsMode.Fill;

24

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

12

Programación Orientada a Objetos en C# .NET

Iterador

Es un conjunto de instrucciones que
devuelve una secuencia de valores del
mismo tipo.

Puede

invocarse mediante

un

ciclo

foreach

P.ejem.

foreach(int Dato in X)

{

……

}

25

El ciclo foreach

Se utiliza para recorrer los elementos de una

colección y obtener la información deseada.

No se debe utilizar para modificar el contenido de

la colección.

foreach repite un grupo de instrucciones incluidas
en el cuerpo del ciclo para cada elemento de una
estructura de datos.

26

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

13

Programación Orientada a Objetos en C# .NET

Uso de un iterador para limpiar los
textBoxes

foreach(Control x in groupBox1.Controls)

if(x is TextBox)

x.Text=“”;

27

Ejemplo de un iterador en una colección
genérica de una lista

Para recorrer los nodos de una lista

foreach(Empleado miEmpleado in miEmpresa)

Donde:
Empleado: Clase que define los datos de los empleados
miEmpleado: Objeto de tipo Empleado que contiene

los datos de un empleado

miEmpresa: Objeto de la colección genérica

28

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

14

Programación Orientada a Objetos en C# .NET

Mostrar los datos de una lista en
un dataGridView

dataGridView1.Rows.Clear();

foreach(Empleado miEmpleado in miEmpresa)

{

dataGridView1.Rows.Add(miEmpleado.Numero,
miEmpleado.Nombre, miEmpleado.Sueldo)

}

Uso de iteradores

Recuerde que no es recomendable incluir

sentencias para desplegar datos en pantalla en un

método de una clase, ya que se restringe el uso
de dicha clase exclusivamente para la plataforma

en la que se está trabajando y no se puede

reutilizar en otras plataformas

29

30

Ing. Bruno López Takeyas, M.C.
http://www.itnuevolaredo.edu.mx/Takeyas

15

Programación Orientada a Objetos en C# .NET

La interfase IEnumerator

Incluida

en

el

espacio

de

nombres

System.Collections

Se utiliza para recorrer un conjunto
  • Links de descarga
http://lwp-l.com/pdf15266

Comentarios de: 06a.- Composición Y Agregación - Programación Orientada a Objetos en C# (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad