Aprender la programación orientada a objetos con

Anuncio
Aprender la programación orientada a objetos con el
lenguaje C#
Introducción a la POO
1. Historia de la POO
11
2. Historia de C#
13
El diseño orientado a objetos
1. Enfoque procedural y descomposición funcional
15
2. La transición hacia el enfoque orientado a objetos
16
3. Las características de la POO
17
3.1 El objeto, la clase y la referencia
3.1.1 El objeto
3.1.2 La clase
3.1.3 La referencia
3.2 La encapsulación
3.3 La herencia
3.4 El polimorfismo
3.5 La abstracción
17
17
18
19
20
20
22
23
4. El desarrollo orientado a objetos
24
4.1 Especificaciones del software
4.2 Modelización y representación UML
4.2.1 Diagramas de casos de uso
4.2.2 Diagramas de clases
4.2.3 Enumeraciones
4.2.4 Diagramas de secuencias
4.3 Redacción del código y pruebas unitarias
www.ediciones-eni.com
© Ediciones ENI
24
24
27
28
34
35
37
1/10
Aprender la programación orientada a objetos con el
lenguaje C#
Introducción al framework .NET y a VS
1. Introducción
39
2. Entorno de ejecución
39
3. La elección de los lenguajes
40
4. Utilizar varios lenguajes
40
5. Una librería muy completa
41
6. Instalaciones simplificadas
42
7. Una herramienta de desarrollo completa
44
Los tipos de C#
1. "En C#, todo está tipado"
51
2. "Todo el mundo hereda de System.Object"
56
2.1 Los tipos Valores
2.2 Los tipos Referencia
2.3 Boxing - Unboxing
2.4 Utilización de los métodos de System.Object
2.4.1 Equals
2.4.2 GetHashCode
2.4.3 ToString
2.4.4 Finalize
2.4.5 Object.GetType y los operadores typeof e is
2.4.6 Object.ReferenceEquals
2.4.7 Object.MemberwiseClone
www.ediciones-eni.com
© Ediciones ENI
56
60
61
62
63
66
68
69
70
71
72
2/10
Aprender la programación orientada a objetos con el
lenguaje C#
2.5 El tipo System.String y su alias string
3. Ejercicio corregido
75
79
3.1 Enunciado
3.2 Corrección
79
79
Creación de clases
1. Introducción
83
2. Los espacios de nombres
83
3. Declaración de una clase
90
3.1 Accesibilidad de los miembros
3.2 Atributos
3.2.1 Atributos constantes
3.2.2 Atributos en modo solo lectura
3.3 Propiedades
3.4 Constructor
3.4.1 Etapas en la construcción de un objeto
3.4.2 Sobrecarga de constructores
3.4.3 Constructores con valores de argumentos por defecto
3.4.4 Encadenamiento de constructores
3.4.5 Los constructores de tipo static
3.4.6 Los constructores de tipo private
3.4.7 Los inicializadores de objetos
3.5 Destructor
3.6 Otro uso de using
3.7 La palabra clave this
3.8 Métodos
3.8.1 Declaración
3.8.2 Paso de argumentos por valor y por referencia
3.9 Mecanismo de las excepciones
3.9.1 Presentación
www.ediciones-eni.com
© Ediciones ENI
91
92
93
94
95
103
103
105
105
106
107
108
110
111
113
114
117
117
121
136
136
3/10
Aprender la programación orientada a objetos con el
lenguaje C#
3.9.2 Principio de funcionamiento de las excepciones
3.9.3 Soporte a varias excepciones
3.9.4 try ... catch ... finally y using
3.10 Sobrecarga de los métodos
3.11 Ejercicio
3.11.1 Enunciado
3.11.2 Consejos
3.11.3 Corrección
4. Las interfaces
158
4.1 Introducción
4.2 El contrato
4.3 Declaración de una interfaz
4.4 Implementación
4.5 Visual Studio y las interfaces
4.6 Representación UML de una interfaz
4.7 Interfaces y polimorfismo
4.8 Ejercicio
4.8.1 Enunciado
4.8.2 Consejos
4.8.3 Corrección
4.9 Las interfaces de .NET
5. Asociación, composición y agregación
5.1 Las tablas
5.2 Las colecciones
5.2.1 List<> y LinkedList<>
5.2.2 Queue<T> y Stack<T>
5.2.3 Dictionary<TKey, TValue>
5.2.4 Los enumeradores
5.2.5 La magia del yield
5.3 Ejercicio
5.3.1 Enunciado
5.3.2 Corrección
www.ediciones-eni.com
137
147
148
152
154
154
155
155
158
159
160
161
162
165
166
166
166
167
169
173
176
182
189
190
193
193
194
195
197
197
198
© Ediciones ENI
4/10
Aprender la programación orientada a objetos con el
lenguaje C#
6. Las clases anidadas
200
7. Las estructuras
203
7.1 Declaración de una estructura
7.2 Instanciación de una estructura
203
205
8. Las clases parciales
208
9. Los métodos parciales
209
10. Los indexadores
210
11. Sobrecarga de operadores
214
Herencia y polimorfismo
1. Entender la herencia
219
2. Codificación de la clase de base y su heredada
220
2.1 Prohibir la herencia
2.2 Definir miembros heredables
2.3 Codificación de la herencia
2.4 Explotación de una clase heredada
220
221
221
222
3. Comunicación entre clase de base y clase heredada
3.1 Los constructores
3.2 Acceso a los miembros básicos desde la clase heredada
3.3 Ocultación o substitución de miembros heredados
3.3.1 Codificación de la ocultación
3.3.2 Codificación de la sustitución
www.ediciones-eni.com
© Ediciones ENI
223
223
227
229
231
233
5/10
Aprender la programación orientada a objetos con el
lenguaje C#
4. Ejercicio
234
4.1 Enunciado
4.2 Corrección
234
235
5. Las clases abstractas
237
6. Los métodos de extensión
238
7. El polimorfismo
241
7.1 Entender el polimorfismo
7.2 Explotación del polimorfismo
7.3 Los operadores is y as
241
242
243
Comunicación entre objetos
1. El evento: estar a la escucha
245
2. El pattern Observador
246
3. La solución C#: delegate y event
250
3.1 Utilización del delegate en el design pattern Observador
3.2 Utilización de un evento
3.3 Cómo acompañar al evento de datos
3.4 Recursos genéricos para simplificar todavía más
3.5 Las expresiones lambda
3.6 Ejemplo de uso de event
4. Llamadas síncronas, llamadas asíncronas
4.1 Enfoque 1
4.2 Enfoque 2
4.3 Enfoque 3
www.ediciones-eni.com
253
256
260
261
262
268
277
280
281
281
© Ediciones ENI
6/10
Aprender la programación orientada a objetos con el
lenguaje C#
4.4 Enfoque 3 con una expresión lambda
5. Ejercicio
284
286
5.1 Enunciado
5.2 Consejos para la realización
5.3 Corrección
286
287
287
El multithreading
1. Introducción
293
2. Entender el multithreading
293
3. Multithreading y .NET
297
4. Implementación en C#
298
4.1 Uso de un BackgroundWorker
4.1.1 Comunicación del thread principal con el thread secundario
4.1.2 Abandono desde el thread principal
4.1.3 Comunicación del thread secundario con el thread principal
4.1.4 Comunicación al final de la operación del thread secundario
4.1.5 Ejemplo de código
4.2 Utilización del pool de threads creado por .NET
4.3 Gestión «manual» con Thread/ParameterizedThreadStart
5. Sincronización entre threads
313
5.1 Necesidad de la sincronización
5.2 La simulación de la sincronización
5.3 La palabra clave lock
5.4 La clase Monitor
5.5 La clase Mutex
5.6 La clase Semaphore
www.ediciones-eni.com
298
301
302
302
302
303
305
308
© Ediciones ENI
313
316
317
319
320
321
7/10
Aprender la programación orientada a objetos con el
lenguaje C#
6. Comunicación entre threads
322
6.1 Join
6.2 Las sincronización de eventos
6.3 Comunicación entre threads secundarios e IHM
6.4 Ejercicio
6.4.1 Enunciado
6.4.2 Corrección
7. La programación asíncrona
322
324
331
335
335
335
340
7.1 La palabra clave async
7.2 Contenido de un método async
7.3 Evidencias
7.4 Resultados posibles de un método async
340
340
341
342
P-Invoke
1. Introducción
345
1.1 Recordatorio sobre las DLL no gestionadas
1.2 P-Invoke y su Marshal
2. El caso sencillo
346
346
347
2.1 Declaración y llamada
2.2 Ajuste de Visual Studio para la puesta a punto
348
351
3. Llamada con argumentos y retorno de función
352
4. Tratamiento con las cadenas de caracteres
354
4.1 Codificación de los caracteres
4.2 Codificación de las cadenas
4.3 Transmisión de las cadenas
354
355
356
5. Intercambio de tablas
www.ediciones-eni.com
359
© Ediciones ENI
8/10
Aprender la programación orientada a objetos con el
lenguaje C#
5.1 De C# a C/C++
5.2 De C# a C/C++ y después vuelta a C#
6. Compartición de estructuras
359
361
363
6.1 Declaración de las estructuras
6.2 Utilización de las estructuras
363
365
7. Las directivas [In] y [Out]
369
8. Realización de un "wrapper"
373
8.1 Una región "NativeMethods"
8.2 Almacenamiento de la información de la DLL nativa
8.3 Instanciación de DLL nativa
8.4 Métodos de uso de la DLL gestionada desde el wrapper
8.5 Uso del wrapper
9. Ejercicio
374
375
376
379
379
381
9.1 Enunciado
9.2 Corrección
381
382
Las pruebas
1. Introducción
385
2. Entorno de ejecución de las pruebas unitarias
387
3. El proyecto de pruebas unitarias
389
4. La clase de pruebas
390
5. Contenido de un método de prueba
391
www.ediciones-eni.com
© Ediciones ENI
9/10
Aprender la programación orientada a objetos con el
lenguaje C#
6. Tratamientos de preparación y limpieza
394
7. TestContext y fuente de datos
397
8. Automatización de las pruebas en la compilación
401
9. Automatización de las pruebas fuera de Visual Studio
402
10. CodedUI
404
11. Ejercicio
405
11.1 Enunciado
11.2 Corrección
405
405
índice
www.ediciones-eni.com
407
© Ediciones ENI
10/10
Descargar