Introducción a la Programación

Preview:

DESCRIPTION

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

Citation preview

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    

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  

•  eenriquelopez@gmail.com  

•  www.neo-­‐tech.es  

•  @eenriquelopez  

 

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  

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

¿Qué  es  la  programación?  

•  Diseño  

•  Codificación  

•  Depuración  

•  Mantenimiento  

 

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  

   

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    

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

Conceptos  clave:  programa  

•  Secuencia  de  instrucciones  

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  

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

Conceptos  clave:  aplicación  

•  Programa  (compilado)  con  funcionalidad  

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

Ejercicio  

•  Abrir  Eclipse.  

•  Escribir  HelloWorld  en  Java  y  compilar  

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)  

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

Ejemplo    

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

Ejemplo  

Nombre  de  paquete  

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

Ejemplo  

Declaración  de  clase  

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

Ejemplo  

Declaración  de  método  

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

Ejemplo  

Declaración  e  inicialización  de  variable  

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

Ejemplo  

Declaración  de  variable  

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

Ejemplo  

Asignación  y  expresión  

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

Ejemplo  

Llamada  a  función  con  parámetros  

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  

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  

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

Tipos  

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

Tipos  

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

Tipos  

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

Tipos  

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

Tipos  

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  

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

Funciones  y  métodos  

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

Funciones  y  métodos  

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

Funciones  y  métodos  

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

Funciones  y  métodos  

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

Funciones  y  métodos  

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

Funciones  y  métodos  

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

Funciones  y  métodos  

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();  

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

Operadores  

•  Establecen  relaciones  entre  variables  

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

Operadores  

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

Operadores  

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“  

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“  

 

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

Estructuras  de  control  

•  „Haz  X  mientras  ocurra  Z“  

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

Estructuras  de  control  

•  „Haz  X  mientras  ocurra  Z“  

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

Estructuras  de  control  

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.  

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

Estructuras  de  control  

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  

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

Estructuras  de  Datos  

•  Matrices  de  N  dimensiones  (N  al  menos  1)  

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

Estructuras  de  Datos  

•  Matrices  de  N  dimensiones  (N  al  menos  1)  

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  

 

 

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

Estructuras  de  datos  

•  ArrayList,    TreeSet,  Scanner...  

 

 

 

 

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.  

 

 

 

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  

 

 

 

 

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

Estructuras  de  datos  

 

 

 

 

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

Excepciones  

•  Ges?ón  de  errores  complejos  

 

 

 

 

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  

 

 

 

 

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“  

 

 

 

 

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

Orientación  a  Objetos  (POO)  

 

 

 

 

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

Orientación  a  Objetos  (POO)  

 

 

 

 

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

Orientación  a  Objetos  (POO)  

 

 

 

 

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

Orientación  a  Objetos  (POO)  

 

 

 

 

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

Orientación  a  Objetos  (POO)  

 

 

 

 

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

Orientación  a  Objetos  (POO)  

•  Relaciones  de  agregació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)  

 

 

 

 

 

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.  

 

 

 

 

 

 

 

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  

 

 

 

 

 

 

 

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  

 

 

 

 

 

 

 

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

Orientación  a  Objetos  -­‐  Herencia  

 

 

 

 

 

 

 

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  

 

 

 

 

 

 

 

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“  

 

 

 

 

 

 

 

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

Ejercicio  

•  Hacer  que  la  clase  persona  sea  abstracta.  

•  Probar  a  compilar  

 

 

 

 

 

 

 

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

Herencia  -­‐  Interfaces  

•  Sólo  definen  comportamiento  

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

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

Herencia  -­‐  Interfaces  

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

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  

 

 

 

 

 

 

 

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

 Mul?threading  -­‐  Ventajas  

•  Mejor  ?empo  de  respuesta  

•  Mejor  aprovechamiento  de  la  CPU  

 

 

 

 

 

 

 

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

 Mul?threading  -­‐  Ejemplo  

 

 

 

 

 

 

 

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

 Mul?threading    

 

 

 

 

 

 

 

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

 Mul?threading    

 

 

 

 

 

 

 

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

 Mul?threading    

 

 

 

 

 

 

 

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

 Mul?threading    

 

 

 

 

 

 

 

<

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

 Mul?threading    

 

 

 

 

 

 

 

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

 Mul?threading    

 

 

 

 

 

 

 

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

 Mul?threading    

 

 

 

 

 

 

 

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

 Mul?threading    

 

 

 

 

 

 

 

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

Ficheros  

•  Almacenamiento  en  Java  

•  Hoy  día  rudimentario  

 

 

 

 

 

 

 

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

Ficheros  -­‐  Escritura  

 

 

 

 

 

 

 

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

Ficheros  -­‐  Lectura  

 

 

 

 

 

 

 

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

 UML    

 

 

 

 

 

 

 

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

 JavaDoc    

 

 

 

 

 

 

 

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  eenriquelopez@gmail.com  

@eenriquelopez