Top Banner
Con la participación de Electronic Arts En colaboración con la Universidad de Alcalá Módulo 4: Creación y diseño de videojuegos móviles Introducción a la programación
90

Introducción a la Programación

Jun 13, 2015

Download

Education

Presentación para el módulo de Introducción a la Programación y Desarrollo con Android del Máster en Desarrollo de Videojuegos para Móviles de la IPECC
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Introducción a la Programación

Con la participación de Electronic Arts

En colaboración con la Universidad de Alcalá

Módulo 4: Creación y diseño de videojuegos móviles

Introducción  a  la  programación    

Page 2: Introducción a la Programación

2  Introducción  a  la  programación  –  Enrique  López  Mañas  

Profesor  

•  Enrique  López-­‐Mañas  

•  Ingeniero  Informá?ca  UCM  

•  Máster  CS  RWTH  

•  Developer  @  Sixt  

•  Android  &  iPhone  &  mobile  

•  [email protected]  

•  www.neo-­‐tech.es  

•  @eenriquelopez  

 

Page 3: Introducción a la Programación

3  Introducción  a  la  programación  –  Enrique  López  Mañas  

Planificación  

8     9   15   16   22   23  

Introducción  a  la  programación  

Introducción  a  la  programación    

Android   Android   Android   Android  

Page 4: Introducción a la Programación

4  Introducción  a  la  programación  –  Enrique  López  Mañas  

¿Qué  es  la  programación?  

•  Diseño  

•  Codificación  

•  Depuración  

•  Mantenimiento  

 

Page 5: Introducción a la Programación

5  Introducción  a  la  programación  –  Enrique  López  Mañas  

Conceptos  clave:  lenguaje  

•  Idioma  ar?ficial  para  expresar  procesos  computacionales  

•  Diferentes  lenguajes  

•  Diferentes  ?pos  

   

Page 6: Introducción a la Programación

6  Introducción  a  la  programación  –  Enrique  López  Mañas  

Conceptos  clave:  entorno  

•  Conjunto  de  herramientas  de  desarrollo  

•  No  sólo  programación  

•  Diferentes  entornos  para  diferentes  lenguajes  

•  SDK’s    

Page 7: Introducción a la Programación

7  Introducción  a  la  programación  –  Enrique  López  Mañas  

Conceptos  clave:  programa  

•  Secuencia  de  instrucciones  

Page 8: Introducción a la Programación

8  Introducción  a  la  programación  –  Enrique  López  Mañas  

Conceptos  clave:  compilar  

•  Compilar:  conver?r  el  programa  (código  fuente)  en  una  aplicación  (fichero  ejecutable)  

•  Diferentes  plataformas  de  compilación.  

•  (Generalmente)  código  depende  de  la  plataforma  

Page 9: Introducción a la Programación

9  Introducción  a  la  programación  –  Enrique  López  Mañas  

Conceptos  clave:  aplicación  

•  Programa  (compilado)  con  funcionalidad  

Page 10: Introducción a la Programación

10  Introducción  a  la  programación  –  Enrique  López  Mañas  

Ejercicio  

•  Abrir  Eclipse.  

•  Escribir  HelloWorld  en  Java  y  compilar  

Page 11: Introducción a la Programación

11  Introducción  a  la  programación  –  Enrique  López  Mañas  

Introducción  a  la  programación  

•  Variables  

•  Funciones  

•  Tipos  de  datos  

•  Operadores  

•  Expresiones  y  sentencias  

•  Estructuras  de  control  

•  Estructuras  de  datos  

•  Excepciones  

•  OO  (Orientación  a  objetos)  

Page 12: Introducción a la Programación

12  Introducción  a  la  programación  –  Enrique  López  Mañas  

Ejemplo    

Page 13: Introducción a la Programación

13  Introducción  a  la  programación  –  Enrique  López  Mañas  

Ejemplo  

Nombre  de  paquete  

Page 14: Introducción a la Programación

14  Introducción  a  la  programación  –  Enrique  López  Mañas  

Ejemplo  

Declaración  de  clase  

Page 15: Introducción a la Programación

15  Introducción  a  la  programación  –  Enrique  López  Mañas  

Ejemplo  

Declaración  de  método  

Page 16: Introducción a la Programación

16  Introducción  a  la  programación  –  Enrique  López  Mañas  

Ejemplo  

Declaración  e  inicialización  de  variable  

Page 17: Introducción a la Programación

17  Introducción  a  la  programación  –  Enrique  López  Mañas  

Ejemplo  

Declaración  de  variable  

Page 18: Introducción a la Programación

18  Introducción  a  la  programación  –  Enrique  López  Mañas  

Ejemplo  

Asignación  y  expresión  

Page 19: Introducción a la Programación

19  Introducción  a  la  programación  –  Enrique  López  Mañas  

Ejemplo  

Llamada  a  función  con  parámetros  

Page 20: Introducción a la Programación

20  Introducción  a  la  programación  –  Enrique  López  Mañas  

Variables  

•  Espacio  reservado  en  memoria  que  puede  variar  su  valor  

 

•  Constante:  parecido  a  las  variables,  pero  no  se  puede  modificar  el  valor  

Page 21: Introducción a la Programación

21  Introducción  a  la  programación  –  Enrique  López  Mañas  

Tipos  

•  Tipos  de  datos  primi?vos:  

                 short/int/long  

                 float/double  

                 char  (String)  

                 byte  

Page 22: Introducción a la Programación

22  Introducción  a  la  programación  –  Enrique  López  Mañas  

Tipos  

Page 23: Introducción a la Programación

23  Introducción  a  la  programación  –  Enrique  López  Mañas  

Tipos  

Page 24: Introducción a la Programación

24  Introducción  a  la  programación  –  Enrique  López  Mañas  

Tipos  

Page 25: Introducción a la Programación

25  Introducción  a  la  programación  –  Enrique  López  Mañas  

Tipos  

Page 26: Introducción a la Programación

26  Introducción  a  la  programación  –  Enrique  López  Mañas  

Tipos  

Page 27: Introducción a la Programación

27  Introducción  a  la  programación  –  Enrique  López  Mañas  

Funciones  y  métodos  

•  Posibles  entradas  

•  Posibles  salidas  

•  Define  un  comportamiento  

 

 

•  Pensar  en  función  matemá?ca  

Page 28: Introducción a la Programación

28  Introducción  a  la  programación  –  Enrique  López  Mañas  

Funciones  y  métodos  

Page 29: Introducción a la Programación

29  Introducción  a  la  programación  –  Enrique  López  Mañas  

Funciones  y  métodos  

Page 30: Introducción a la Programación

30  Introducción  a  la  programación  –  Enrique  López  Mañas  

Funciones  y  métodos  

Page 31: Introducción a la Programación

31  Introducción  a  la  programación  –  Enrique  López  Mañas  

Funciones  y  métodos  

Page 32: Introducción a la Programación

32  Introducción  a  la  programación  –  Enrique  López  Mañas  

Funciones  y  métodos  

Page 33: Introducción a la Programación

33  Introducción  a  la  programación  –  Enrique  López  Mañas  

Funciones  y  métodos  

Page 34: Introducción a la Programación

34  Introducción  a  la  programación  –  Enrique  López  Mañas  

Funciones  y  métodos  

Page 35: Introducción a la Programación

35  Introducción  a  la  programación  –  Enrique  López  Mañas  

Ejercicio  

•  Abrir  Eclipse  

•  Crear  un  método  que  sume  dos  números  y  los  escriba  con  System.out.println();  

Page 36: Introducción a la Programación

36  Introducción  a  la  programación  –  Enrique  López  Mañas  

Operadores  

•  Establecen  relaciones  entre  variables  

Page 37: Introducción a la Programación

37  Introducción  a  la  programación  –  Enrique  López  Mañas  

Operadores  

Page 38: Introducción a la Programación

38  Introducción  a  la  programación  –  Enrique  López  Mañas  

Operadores  

Page 39: Introducción a la Programación

39  Introducción  a  la  programación  –  Enrique  López  Mañas  

Estructuras  de  control  

•  Ejecutan  código  basándose  en  condiciones  

•  „Si  ocurre  X,  entonces  haz  Y.  Si  no,  haz  Z“  

•  „Haz  X  hasta  que  ocurra  Y“  

•  „Haz  X  mientras  ocurra  Z“  

Page 40: Introducción a la Programación

40  Introducción  a  la  programación  –  Enrique  López  Mañas  

Estructuras  de  control  

•  „Si  ocurre  X,  entonces  haz  Y.  Si  no,  haz  Z“  

 

Page 41: Introducción a la Programación

41  Introducción  a  la  programación  –  Enrique  López  Mañas  

Estructuras  de  control  

•  „Haz  X  mientras  ocurra  Z“  

Page 42: Introducción a la Programación

42  Introducción  a  la  programación  –  Enrique  López  Mañas  

Estructuras  de  control  

•  „Haz  X  mientras  ocurra  Z“  

Page 43: Introducción a la Programación

43  Introducción  a  la  programación  –  Enrique  López  Mañas  

Estructuras  de  control  

Page 44: Introducción a la Programación

44  Introducción  a  la  programación  –  Enrique  López  Mañas  

Ejercicio  

•  Abrir  Eclipse  

•  Declarar  una  variable  x  con  valor  igual  a  50.  

•  Reducir  su  valor  mediante  un  bucle  „while“  y  un  bucle  „for“  hasta  0.  

Page 45: Introducción a la Programación

45  Introducción  a  la  programación  –  Enrique  López  Mañas  

Estructuras  de  control  

Page 46: Introducción a la Programación

46  Introducción  a  la  programación  –  Enrique  López  Mañas  

Estructuras  de  Datos  

•  No  sólo  datos  primi?vos  –  Hay  datos  complejos  

•  Arrays  

•  Tipos  complejos  de  Java  

•  (Más  adelante)  Tipos  definidos  por  el  usuario  

Page 47: Introducción a la Programación

47  Introducción  a  la  programación  –  Enrique  López  Mañas  

Estructuras  de  Datos  

•  Matrices  de  N  dimensiones  (N  al  menos  1)  

Page 48: Introducción a la Programación

48  Introducción  a  la  programación  –  Enrique  López  Mañas  

Estructuras  de  Datos  

•  Matrices  de  N  dimensiones  (N  al  menos  1)  

Page 49: Introducción a la Programación

49  Introducción  a  la  programación  –  Enrique  López  Mañas  

Ejercicio  

•  Rellenar  un  array  de  dos  dimensiones  usando  dos  bucles  for  y  pintar  los  valores  por  pantalla  

 

 

Page 50: Introducción a la Programación

50  Introducción  a  la  programación  –  Enrique  López  Mañas  

Estructuras  de  datos  

•  ArrayList,    TreeSet,  Scanner...  

 

 

 

 

Page 51: Introducción a la Programación

51  Introducción  a  la  programación  –  Enrique  López  Mañas  

Ejercicio  

•  Rellenar  un  ArrayList  con  los  datos  que  teníamos  en  el  array  del  ejercicio  anterior.  

 

 

 

Page 52: Introducción a la Programación

52  Introducción  a  la  programación  –  Enrique  López  Mañas  

Estructuras  de  datos  

•  Clases  personalizadas  (introducción  muy  rápida)  

•  Uso  de  OO.  

•  Creación  de  clases  mul?-­‐atributo  complejas  con  propios  métodos  

 

 

 

 

Page 53: Introducción a la Programación

53  Introducción  a  la  programación  –  Enrique  López  Mañas  

Estructuras  de  datos  

 

 

 

 

Page 54: Introducción a la Programación

54  Introducción  a  la  programación  –  Enrique  López  Mañas  

Excepciones  

•  Ges?ón  de  errores  complejos  

 

 

 

 

Page 55: Introducción a la Programación

55  Introducción  a  la  programación  –  Enrique  López  Mañas  

Orientación  a  Objetos  (POO)  

•  Paradigma  de  desarrollo  básico  

•  Permite  representar  sistemas  complejos  

•  Objetos:  elemento  con  atributos  y  comportamiento  

•  Reu?lización,  conexión  entre  sistemas  

 

 

 

 

Page 56: Introducción a la Programación

56  Introducción  a  la  programación  –  Enrique  López  Mañas  

Orientación  a  Objetos  (POO)  

•  Otra  idea:  descomponer  programas  en  piezas  más  pequeñas  y  manejables  

       (un  coche  se  compone  de  ruedas,  volante,  etc)  

•  Nuestros  objetos  serán  „Clases“  

 

 

 

 

Page 57: Introducción a la Programación

57  Introducción  a  la  programación  –  Enrique  López  Mañas  

Orientación  a  Objetos  (POO)  

 

 

 

 

Page 58: Introducción a la Programación

58  Introducción  a  la  programación  –  Enrique  López  Mañas  

Orientación  a  Objetos  (POO)  

 

 

 

 

Page 59: Introducción a la Programación

59  Introducción  a  la  programación  –  Enrique  López  Mañas  

Orientación  a  Objetos  (POO)  

 

 

 

 

Page 60: Introducción a la Programación

60  Introducción  a  la  programación  –  Enrique  López  Mañas  

Orientación  a  Objetos  (POO)  

 

 

 

 

Page 61: Introducción a la Programación

61  Introducción  a  la  programación  –  Enrique  López  Mañas  

Orientación  a  Objetos  (POO)  

 

 

 

 

Page 62: Introducción a la Programación

62  Introducción  a  la  programación  –  Enrique  López  Mañas  

Orientación  a  Objetos  (POO)  

•  Relaciones  de  agregación  

 

 

 

 

 

Page 63: Introducción a la Programación

63  Introducción  a  la  programación  –  Enrique  López  Mañas  

Ejercicio  

•  Diseñar  y  programar  clases  para  representar  una  empresa  que  con?ene  trabajadores  (usar  array  o  ArrayList)  

 

 

 

 

 

Page 64: Introducción a la Programación

64  Introducción  a  la  programación  –  Enrique  López  Mañas  

Orientación  a  Objetos  (POO)  

•  Conceptos:  

–  Encapsulación:  organización  de  datos  y  métodos  

–  Herencia:  creación  de  clases  a  par?r  de  otras  ya  existentes  

–  Polimorfismo:  (varias  formas)  sobrecarga  de  métodos  con  mismo  nombre  y  dis?nta  funcionalidad.  

 

 

 

 

 

 

 

Page 65: Introducción a la Programación

65  Introducción  a  la  programación  –  Enrique  López  Mañas  

Orientación  a  Objetos  -­‐  Herencia  

•  Mecanismo  para  extender  clases  a  casos  más  par?culares.  

•  Ejemplo:    

–  Un  edificio  à  Un  hospital  

–  Un  vehículo  à  una  furgoneta  

–  Un  persona  à  un  niño  

 

 

 

 

 

 

 

Page 66: Introducción a la Programación

66  Introducción  a  la  programación  –  Enrique  López  Mañas  

Orientación  a  Objetos  -­‐  Herencia  

•  La  clase  hija  hereda  de  la  clase  padre.  

•  Puede  sobreescribir  o  ampliar  sus  métodos.  

•  Hereda  todos  los  atributos.  

•  Una  „furgoneta“  es  también  un  „vehículo“  

•  Herencia  simple  

 

 

 

 

 

 

 

Page 67: Introducción a la Programación

67  Introducción  a  la  programación  –  Enrique  López  Mañas  

Orientación  a  Objetos  -­‐  Herencia  

 

 

 

 

 

 

 

Page 68: Introducción a la Programación

68  Introducción  a  la  programación  –  Enrique  López  Mañas  

Ejercicio  

•  Crear  la  clase  Taxista,  que  hereda  de  persona.  

•  El  taxista  ?ene  licencia  

•  El  taxista  ?ene  un  coche.  

•  Crear  programa  de  ejemplo  

 

 

 

 

 

 

 

Page 69: Introducción a la Programación

69  Introducción  a  la  programación  –  Enrique  López  Mañas  

Orientación  a  objetos  –  Clases  abstractas  

•  No  se  pueden  crear  objetos  de  clases  abstractas.  

•  Se  usan  para  representar  „ideas“  o  „conceptos“  

 

 

 

 

 

 

 

Page 70: Introducción a la Programación

70  Introducción  a  la  programación  –  Enrique  López  Mañas  

Ejercicio  

•  Hacer  que  la  clase  persona  sea  abstracta.  

•  Probar  a  compilar  

 

 

 

 

 

 

 

Page 71: Introducción a la Programación

71  Introducción  a  la  programación  –  Enrique  López  Mañas  

Herencia  -­‐  Interfaces  

•  Sólo  definen  comportamiento  

•  (especifican  qué  hacer,  no  cómo)  

Page 72: Introducción a la Programación

72  Introducción  a  la  programación  –  Enrique  López  Mañas  

Herencia  -­‐  Interfaces  

Page 73: Introducción a la Programación

73  Introducción  a  la  programación  –  Enrique  López  Mañas  

Acceso  en  Java  

Misma clase Otra clase mismo paquete

Subclase de otro paquete

Otra clase de otro paquete

public X X X X protected X X X default X X private X

Page 74: Introducción a la Programación

74  Introducción  a  la  programación  –  Enrique  López  Mañas  

Mul?threading  

•  Hasta  ahora:  ejecución  secuencial.  

•  Pero:  existe  ejecución  de  múl?ples  hilos  

 

 

 

 

 

 

 

Page 75: Introducción a la Programación

75  Introducción  a  la  programación  –  Enrique  López  Mañas  

 Mul?threading  -­‐  Ventajas  

•  Mejor  ?empo  de  respuesta  

•  Mejor  aprovechamiento  de  la  CPU  

 

 

 

 

 

 

 

Page 76: Introducción a la Programación

76  Introducción  a  la  programación  –  Enrique  López  Mañas  

 Mul?threading  -­‐  Ejemplo  

 

 

 

 

 

 

 

Page 77: Introducción a la Programación

77  Introducción  a  la  programación  –  Enrique  López  Mañas  

 Mul?threading    

 

 

 

 

 

 

 

Page 78: Introducción a la Programación

78  Introducción  a  la  programación  –  Enrique  López  Mañas  

 Mul?threading    

 

 

 

 

 

 

 

Page 79: Introducción a la Programación

79  Introducción  a  la  programación  –  Enrique  López  Mañas  

 Mul?threading    

 

 

 

 

 

 

 

Page 80: Introducción a la Programación

80  Introducción  a  la  programación  –  Enrique  López  Mañas  

 Mul?threading    

 

 

 

 

 

 

 

<

Page 81: Introducción a la Programación

81  Introducción  a  la  programación  –  Enrique  López  Mañas  

 Mul?threading    

 

 

 

 

 

 

 

Page 82: Introducción a la Programación

82  Introducción  a  la  programación  –  Enrique  López  Mañas  

 Mul?threading    

 

 

 

 

 

 

 

Page 83: Introducción a la Programación

83  Introducción  a  la  programación  –  Enrique  López  Mañas  

 Mul?threading    

 

 

 

 

 

 

 

Page 84: Introducción a la Programación

84  Introducción  a  la  programación  –  Enrique  López  Mañas  

 Mul?threading    

 

 

 

 

 

 

 

Page 85: Introducción a la Programación

85  Introducción  a  la  programación  –  Enrique  López  Mañas  

Ficheros  

•  Almacenamiento  en  Java  

•  Hoy  día  rudimentario  

 

 

 

 

 

 

 

Page 86: Introducción a la Programación

86  Introducción  a  la  programación  –  Enrique  López  Mañas  

Ficheros  -­‐  Escritura  

 

 

 

 

 

 

 

Page 87: Introducción a la Programación

87  Introducción  a  la  programación  –  Enrique  López  Mañas  

Ficheros  -­‐  Lectura  

 

 

 

 

 

 

 

Page 88: Introducción a la Programación

88  Introducción  a  la  programación  –  Enrique  López  Mañas  

 UML    

 

 

 

 

 

 

 

Page 89: Introducción a la Programación

89  Introducción  a  la  programación  –  Enrique  López  Mañas  

 JavaDoc    

 

 

 

 

 

 

 

Page 90: Introducción a la Programación

Con la participación de Electronic Arts

En colaboración con la Universidad de Alcalá

Gracias  por  su  atención  Contacto  para  dudas  y  sugerencias  

Enrique  López  Mañas  [email protected]  

@eenriquelopez