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

  Introducción	
  a	
  la	
  programación	
  
                                         	
  
En colaboración con la                 Con la participación de
Universidad de Alcalá                          Electronic Arts
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	
  

	
  
       Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
                2	
  
Planificación	
  
8	
  	
                              9	
                                 15	
               16	
           22	
          23	
  
Introducción	
  a	
   Introducción	
  a	
   Android	
                                       Android	
      Android	
     Android	
  
la	
                  la	
  
programación	
   programación	
  
                      	
  




            Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
                                                3	
  
¿Qué	
  es	
  la	
  programación?	
  

•      Diseño	
  
•      Codificación	
  
•      Depuración	
  
•      Mantenimiento	
  
	
  


       Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
     4	
  
Conceptos	
  clave:	
  lenguaje	
  

•          Idioma	
  ar?ficial	
  para	
  expresar	
  procesos	
  
           computacionales	
  
•          Diferentes	
  lenguajes	
  
•          Diferentes	
  ?pos	
  
	
  	
  



           Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
     5	
  
Conceptos	
  clave:	
  entorno	
  

•    Conjunto	
  de	
  herramientas	
  de	
  desarrollo	
  
•    No	
  sólo	
  programación	
  
•    Diferentes	
  entornos	
  para	
  diferentes	
  lenguajes	
  
•    SDK’s	
  	
  




     Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
     6	
  
Conceptos	
  clave:	
  programa	
  

•    Secuencia	
  de	
  instrucciones	
  




     Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
     7	
  
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	
  



     Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
     8	
  
Conceptos	
  clave:	
  aplicación	
  
•    Programa	
  (compilado)	
  con	
  funcionalidad	
  




     Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
     9	
  
Ejercicio	
  
•    Abrir	
  Eclipse.	
  
•    Escribir	
  HelloWorld	
  en	
  Java	
  y	
  compilar	
  




     Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
                10	
  
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)	
  

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




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

Nombre	
  de	
  paquete	
  




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

Declaración	
  de	
  clase	
  




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

Declaración	
  de	
  método	
  




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

Declaración	
  e	
  inicialización	
  de	
  variable	
  




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

Declaración	
  de	
  variable	
  




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

Asignación	
  y	
  expresión	
  




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

Llamada	
  a	
  función	
  con	
  parámetros	
  




   Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
              19	
  
Variables	
  
•      Espacio	
  reservado	
  en	
  memoria	
  que	
  puede	
  
       variar	
  su	
  valor	
  
	
  
•      Constante:	
  parecido	
  a	
  las	
  variables,	
  pero	
  no	
  se	
  
       puede	
  modificar	
  el	
  valor	
  




       Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
                20	
  
Tipos	
  
•        Tipos	
  de	
  datos	
  primi?vos:	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  short/int/long	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  float/double	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  char	
  (String)	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  byte	
  



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




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




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




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




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




Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
            26	
  
Funciones	
  y	
  métodos	
  

•      Posibles	
  entradas	
  
•      Posibles	
  salidas	
  
•      Define	
  un	
  comportamiento	
  
	
  
	
  
•      Pensar	
  en	
  función	
  matemá?ca	
  
       Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
                27	
  
Funciones	
  y	
  métodos	
  




Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
                28	
  
Funciones	
  y	
  métodos	
  




Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
                29	
  
Funciones	
  y	
  métodos	
  




Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
                30	
  
Funciones	
  y	
  métodos	
  




Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
                31	
  
Funciones	
  y	
  métodos	
  




Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
                32	
  
Funciones	
  y	
  métodos	
  




Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
                33	
  
Funciones	
  y	
  métodos	
  




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

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




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

•    Establecen	
  relaciones	
  entre	
  variables	
  




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




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




Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
                 38	
  
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“	
  




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

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




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

•    „Haz	
  X	
  mientras	
  ocurra	
  Z“	
  




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

•    „Haz	
  X	
  mientras	
  ocurra	
  Z“	
  




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




Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
              43	
  
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.	
  




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




Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
              45	
  
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	
  



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

•    Matrices	
  de	
  N	
  dimensiones	
  (N	
  al	
  menos	
  1)	
  




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

•    Matrices	
  de	
  N	
  dimensiones	
  (N	
  al	
  menos	
  1)	
  




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

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




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

•      ArrayList,	
  	
  TreeSet,	
  Scanner...	
  
	
  
	
  
	
  
	
  


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

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



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

•      Clases	
  personalizadas	
  (introducción	
  muy	
  
       rápida)	
  
•      Uso	
  de	
  OO.	
  
•      Creación	
  de	
  clases	
  mul?-­‐atributo	
  complejas	
  
       con	
  propios	
  métodos	
  
	
  
	
  
       Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
                    52	
  
	
  
Estructuras	
  de	
  datos	
  

	
  
	
  
	
  
	
  




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

•      Ges?ón	
  de	
  errores	
  complejos	
  
	
  
	
  
	
  
	
  


       Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
                  54	
  
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	
  
	
  
	
  
       Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
     55	
  
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“	
  
	
  
	
  
       Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
     56	
  
	
  
Orientación	
  a	
  Objetos	
  (POO)	
  

	
  
	
  
	
  
	
  




       Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
     57	
  
Orientación	
  a	
  Objetos	
  (POO)	
  

	
  
	
  
	
  
	
  




       Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
     58	
  
Orientación	
  a	
  Objetos	
  (POO)	
  

	
  
	
  
	
  
	
  




       Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
     59	
  
Orientación	
  a	
  Objetos	
  (POO)	
  

	
  
	
  
	
  
	
  




       Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
     60	
  
Orientación	
  a	
  Objetos	
  (POO)	
  

	
  
	
  
	
  
	
  




       Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
     61	
  
Orientación	
  a	
  Objetos	
  (POO)	
  

•      Relaciones	
  de	
  agregación	
  
	
  
	
  
	
  
	
  
	
  
       Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
     62	
  
Ejercicio	
  

•      Diseñar	
  y	
  programar	
  clases	
  para	
  representar	
  
       una	
  empresa	
  que	
  con?ene	
  trabajadores	
  (usar	
  
       array	
  o	
  ArrayList)	
  
	
  
	
  
	
  
	
  
       Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
                63	
  
	
  
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.	
  

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

	
  
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	
  

	
  
       Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
              65	
  
	
  
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	
  
	
  
	
     Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
              66	
  
Orientación	
  a	
  Objetos	
  -­‐	
  
                                                                                Herencia	
  
	
  
	
  
	
  
	
  
	
  
	
  
	
     Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
              67	
  
Ejercicio	
  

•      Crear	
  la	
  clase	
  Taxista,	
  que	
  hereda	
  de	
  persona.	
  
•      El	
  taxista	
  ?ene	
  licencia	
  
•      El	
  taxista	
  ?ene	
  un	
  coche.	
  
•      Crear	
  programa	
  de	
  ejemplo	
  
	
  
	
  
	
     Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
                68	
  
Orientación	
  a	
  objetos	
  –	
  Clases	
  
                                                  abstractas	
  
•      No	
  se	
  pueden	
  crear	
  objetos	
  de	
  clases	
  
       abstractas.	
  
•      Se	
  usan	
  para	
  representar	
  „ideas“	
  o	
  
       „conceptos“	
  
	
  
	
  
	
  
       Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
     69	
  
	
  
Ejercicio	
  

•      Hacer	
  que	
  la	
  clase	
  persona	
  sea	
  abstracta.	
  
•      Probar	
  a	
  compilar	
  
	
  
	
  
	
  
	
  
	
     Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
                70	
  
Herencia	
  -­‐	
  Interfaces	
  
•    Sólo	
  definen	
  comportamiento	
  
•    (especifican	
  qué	
  hacer,	
  no	
  cómo)	
  




     Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
                      71	
  
Herencia	
  -­‐	
  Interfaces	
  




Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
                      72	
  
Acceso	
  en	
  Java	
  
                               Misma clase                       Otra clase    Subclase de          Otra clase de
                                                                 mismo paquete otro paquete         otro paquete
public                                      X                                      X         X            X
protected                                   X                                      X         X
default                                     X                                      X
private                                     X




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

•      Hasta	
  ahora:	
  ejecución	
  secuencial.	
  
•      Pero:	
  existe	
  ejecución	
  de	
  múl?ples	
  hilos	
  
	
  
	
  
	
  
	
  
	
     Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
                    74	
  
 Mul?threading	
  -­‐	
  Ventajas	
  

•      Mejor	
  ?empo	
  de	
  respuesta	
  
•      Mejor	
  aprovechamiento	
  de	
  la	
  CPU	
  
	
  
	
  
	
  
	
  
	
     Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
     75	
  
 Mul?threading	
  -­‐	
  Ejemplo	
  


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


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


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


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


	
  
	
                                                                                     <


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


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


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


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


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

•      Almacenamiento	
  en	
  Java	
  
•      Hoy	
  día	
  rudimentario	
  
	
  
	
  
	
  
	
  
	
     Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
               85	
  
Ficheros	
  -­‐	
  Escritura	
  


	
  
	
  
	
  
	
  
	
  
	
     Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
                              86	
  
Ficheros	
  -­‐	
  Lectura	
  


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


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


	
  
	
  
	
  
	
  
	
  
	
     Introducción	
  a	
  la	
  programación	
  –	
  Enrique	
  López	
  Mañas	
                     89	
  
Gracias	
  por	
  su	
  atención	
  
                                 Contacto	
  para	
  dudas	
  y	
  sugerencias	
  
                                                Enrique	
  López	
  Mañas	
  
                                       eenriquelopez@gmail.com	
  
                                                       @eenriquelopez	
  
                                                                             	
  




En colaboración con la            Con la participación de
Universidad de Alcalá                     Electronic Arts

Más contenido relacionado

PPTX
Estructura de un programa
PPT
Introducción A La Programación
PPT
Introducción a la programación
PPTX
Maquinas especiales 2da parte introduccion a programacion
PDF
Inducción: Introducción a la Programación en Misión Sucre
PDF
Introducción a la programación orientada objetos
PDF
Algoritmo fundamentos de la programación
PDF
Programación 1: fundamentos
Estructura de un programa
Introducción A La Programación
Introducción a la programación
Maquinas especiales 2da parte introduccion a programacion
Inducción: Introducción a la Programación en Misión Sucre
Introducción a la programación orientada objetos
Algoritmo fundamentos de la programación
Programación 1: fundamentos

Destacado (14)

PPT
Lección 1 Introducción a los Lenguajes de Programación
PPTX
Diapositiva mantenimiento de computadores
PDF
Introducción a los lenguajes - Fundamentos de la Programación
ODP
Introducción a la Programación con Java
PPTX
Introducción al Diseño Web
PPT
Estadistica
PDF
Variables y tipos de datos - fundamentos de la programación
PPT
Introducción a la Estadística
PPT
Tema 1.1 introudcción a la estadística
PDF
El Gran Libro de Diseño Web
PDF
Introducción al Diseño web
PDF
Tutorial 2
PPT
PPTX
Universo, población y muestra
Lección 1 Introducción a los Lenguajes de Programación
Diapositiva mantenimiento de computadores
Introducción a los lenguajes - Fundamentos de la Programación
Introducción a la Programación con Java
Introducción al Diseño Web
Estadistica
Variables y tipos de datos - fundamentos de la programación
Introducción a la Estadística
Tema 1.1 introudcción a la estadística
El Gran Libro de Diseño Web
Introducción al Diseño web
Tutorial 2
Universo, población y muestra
Publicidad

Similar a Introducción a la Programación (13)

PPT
Android: Interfaz de Usuario
PDF
Android: Almacenamiento de Datos
PDF
Algoritmos programacion
PDF
Algoritmos y programacion
PDF
Portafolio programacion
PPTX
Pteg g-grupo2-lista38-10-3-40-36-19-visita3-expo cap 6 tema lenguajes de prog...
PPTX
Lenguajes de programacion. Segun Glenn Brookshear
DOCX
Bajada auliaca de processdor de texto
PDF
Lenguajes de programacion
PPTX
PPTX
Programación
PDF
AED1-ppt-Tema1-2024-Introducción a la programacion PB (1).pdf
PDF
Sorribas
Android: Interfaz de Usuario
Android: Almacenamiento de Datos
Algoritmos programacion
Algoritmos y programacion
Portafolio programacion
Pteg g-grupo2-lista38-10-3-40-36-19-visita3-expo cap 6 tema lenguajes de prog...
Lenguajes de programacion. Segun Glenn Brookshear
Bajada auliaca de processdor de texto
Lenguajes de programacion
Programación
AED1-ppt-Tema1-2024-Introducción a la programacion PB (1).pdf
Sorribas
Publicidad

Más de Enrique López Mañas (10)

PDF
Droidcon IT 2015
PDF
Android Building, Testing and reversing
PDF
AnDevCon: Android Reverse Engineering
PDF
Android studio
PDF
Debugging Android - GDG Munich
PPT
Android: Dialogs
PPT
Android: Componentes (II)
PDF
Android: Componentes
PPT
Android: introducción
PPTX
Presentation android JUnit
Droidcon IT 2015
Android Building, Testing and reversing
AnDevCon: Android Reverse Engineering
Android studio
Debugging Android - GDG Munich
Android: Dialogs
Android: Componentes (II)
Android: Componentes
Android: introducción
Presentation android JUnit

Último (20)

DOCX
PLAN DE AREA DE CIENCIAS SOCIALES TODOS LOS GRUPOS
PDF
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
DOC
4°_GRADO_-_SESIONES_DEL_11_AL_15_DE_AGOSTO.doc
PPTX
LAS MIGRACIONES E INVASIONES Y EL INICIO EDAD MEDIA
PDF
Nadie puede salvarte excepto Tú - Madame Rouge Ccesa007.pdf
PDF
Como Potenciar las Emociones Positivas y Afrontar las Negativas Ccesa007.pdf
PDF
Jodorowsky, Alejandro - Manual de Psicomagia.pdf
PDF
informe tipos de Informatica perfiles profesionales _pdf
DOC
Manual de Convivencia 2025 actualizado a las normas vigentes
PDF
La Formacion Universitaria en Nuevos Escenarios Ccesa007.pdf
PDF
Ernst Cassirer - Antropologia Filosofica.pdf
PDF
RM2025 - FUNDAMENTOS TEÓRICOS - PEDIATRÍA.pdf
PDF
Mi Primer Millon - Poissant - Godefroy Ccesa007.pdf
PDF
La Inteligencia Emocional - Fabian Goleman TE4 Ccesa007.pdf
PDF
Iniciación Al Aprendizaje Basado En Proyectos ABP Ccesa007.pdf
PDF
MODULO I ENFERMERIA BASICA.pdf HIstoria en enfermeria
PDF
Modelo Educativo SUB 2023versión final.pdf
PDF
Introducción a la historia de la filosofía
PDF
E1 Guía_Matemática_5°_grado.pdf paraguay
PPTX
MATEMATICAS GEOMETRICA USO TRANSPORTADOR
PLAN DE AREA DE CIENCIAS SOCIALES TODOS LOS GRUPOS
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
4°_GRADO_-_SESIONES_DEL_11_AL_15_DE_AGOSTO.doc
LAS MIGRACIONES E INVASIONES Y EL INICIO EDAD MEDIA
Nadie puede salvarte excepto Tú - Madame Rouge Ccesa007.pdf
Como Potenciar las Emociones Positivas y Afrontar las Negativas Ccesa007.pdf
Jodorowsky, Alejandro - Manual de Psicomagia.pdf
informe tipos de Informatica perfiles profesionales _pdf
Manual de Convivencia 2025 actualizado a las normas vigentes
La Formacion Universitaria en Nuevos Escenarios Ccesa007.pdf
Ernst Cassirer - Antropologia Filosofica.pdf
RM2025 - FUNDAMENTOS TEÓRICOS - PEDIATRÍA.pdf
Mi Primer Millon - Poissant - Godefroy Ccesa007.pdf
La Inteligencia Emocional - Fabian Goleman TE4 Ccesa007.pdf
Iniciación Al Aprendizaje Basado En Proyectos ABP Ccesa007.pdf
MODULO I ENFERMERIA BASICA.pdf HIstoria en enfermeria
Modelo Educativo SUB 2023versión final.pdf
Introducción a la historia de la filosofía
E1 Guía_Matemática_5°_grado.pdf paraguay
MATEMATICAS GEOMETRICA USO TRANSPORTADOR

Introducción a la Programación

  • 1. Módulo 4: Creación y diseño de videojuegos móviles Introducción  a  la  programación     En colaboración con la Con la participación de Universidad de Alcalá Electronic Arts
  • 2. 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     Introducción  a  la  programación  –  Enrique  López  Mañas   2  
  • 3. Planificación   8     9   15   16   22   23   Introducción  a   Introducción  a   Android   Android   Android   Android   la   la   programación   programación     Introducción  a  la  programación  –  Enrique  López  Mañas   3  
  • 4. ¿Qué  es  la  programación?   •  Diseño   •  Codificación   •  Depuración   •  Mantenimiento     Introducción  a  la  programación  –  Enrique  López  Mañas   4  
  • 5. Conceptos  clave:  lenguaje   •  Idioma  ar?ficial  para  expresar  procesos   computacionales   •  Diferentes  lenguajes   •  Diferentes  ?pos       Introducción  a  la  programación  –  Enrique  López  Mañas   5  
  • 6. Conceptos  clave:  entorno   •  Conjunto  de  herramientas  de  desarrollo   •  No  sólo  programación   •  Diferentes  entornos  para  diferentes  lenguajes   •  SDK’s     Introducción  a  la  programación  –  Enrique  López  Mañas   6  
  • 7. Conceptos  clave:  programa   •  Secuencia  de  instrucciones   Introducción  a  la  programación  –  Enrique  López  Mañas   7  
  • 8. 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   Introducción  a  la  programación  –  Enrique  López  Mañas   8  
  • 9. Conceptos  clave:  aplicación   •  Programa  (compilado)  con  funcionalidad   Introducción  a  la  programación  –  Enrique  López  Mañas   9  
  • 10. Ejercicio   •  Abrir  Eclipse.   •  Escribir  HelloWorld  en  Java  y  compilar   Introducción  a  la  programación  –  Enrique  López  Mañas   10  
  • 11. 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)   Introducción  a  la  programación  –  Enrique  López  Mañas   11  
  • 12. Ejemplo     Introducción  a  la  programación  –  Enrique  López  Mañas   12  
  • 13. Ejemplo   Nombre  de  paquete   Introducción  a  la  programación  –  Enrique  López  Mañas   13  
  • 14. Ejemplo   Declaración  de  clase   Introducción  a  la  programación  –  Enrique  López  Mañas   14  
  • 15. Ejemplo   Declaración  de  método   Introducción  a  la  programación  –  Enrique  López  Mañas   15  
  • 16. Ejemplo   Declaración  e  inicialización  de  variable   Introducción  a  la  programación  –  Enrique  López  Mañas   16  
  • 17. Ejemplo   Declaración  de  variable   Introducción  a  la  programación  –  Enrique  López  Mañas   17  
  • 18. Ejemplo   Asignación  y  expresión   Introducción  a  la  programación  –  Enrique  López  Mañas   18  
  • 19. Ejemplo   Llamada  a  función  con  parámetros   Introducción  a  la  programación  –  Enrique  López  Mañas   19  
  • 20. Variables   •  Espacio  reservado  en  memoria  que  puede   variar  su  valor     •  Constante:  parecido  a  las  variables,  pero  no  se   puede  modificar  el  valor   Introducción  a  la  programación  –  Enrique  López  Mañas   20  
  • 21. Tipos   •  Tipos  de  datos  primi?vos:                    short/int/long                    float/double                    char  (String)                    byte   Introducción  a  la  programación  –  Enrique  López  Mañas   21  
  • 22. Tipos   Introducción  a  la  programación  –  Enrique  López  Mañas   22  
  • 23. Tipos   Introducción  a  la  programación  –  Enrique  López  Mañas   23  
  • 24. Tipos   Introducción  a  la  programación  –  Enrique  López  Mañas   24  
  • 25. Tipos   Introducción  a  la  programación  –  Enrique  López  Mañas   25  
  • 26. Tipos   Introducción  a  la  programación  –  Enrique  López  Mañas   26  
  • 27. Funciones  y  métodos   •  Posibles  entradas   •  Posibles  salidas   •  Define  un  comportamiento       •  Pensar  en  función  matemá?ca   Introducción  a  la  programación  –  Enrique  López  Mañas   27  
  • 28. Funciones  y  métodos   Introducción  a  la  programación  –  Enrique  López  Mañas   28  
  • 29. Funciones  y  métodos   Introducción  a  la  programación  –  Enrique  López  Mañas   29  
  • 30. Funciones  y  métodos   Introducción  a  la  programación  –  Enrique  López  Mañas   30  
  • 31. Funciones  y  métodos   Introducción  a  la  programación  –  Enrique  López  Mañas   31  
  • 32. Funciones  y  métodos   Introducción  a  la  programación  –  Enrique  López  Mañas   32  
  • 33. Funciones  y  métodos   Introducción  a  la  programación  –  Enrique  López  Mañas   33  
  • 34. Funciones  y  métodos   Introducción  a  la  programación  –  Enrique  López  Mañas   34  
  • 35. Ejercicio   •  Abrir  Eclipse   •  Crear  un  método  que  sume  dos  números  y  los   escriba  con  System.out.println();   Introducción  a  la  programación  –  Enrique  López  Mañas   35  
  • 36. Operadores   •  Establecen  relaciones  entre  variables   Introducción  a  la  programación  –  Enrique  López  Mañas   36  
  • 37. Operadores   Introducción  a  la  programación  –  Enrique  López  Mañas   37  
  • 38. Operadores   Introducción  a  la  programación  –  Enrique  López  Mañas   38  
  • 39. 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“   Introducción  a  la  programación  –  Enrique  López  Mañas   39  
  • 40. Estructuras  de  control   •  „Si  ocurre  X,  entonces  haz  Y.  Si  no,  haz  Z“     Introducción  a  la  programación  –  Enrique  López  Mañas   40  
  • 41. Estructuras  de  control   •  „Haz  X  mientras  ocurra  Z“   Introducción  a  la  programación  –  Enrique  López  Mañas   41  
  • 42. Estructuras  de  control   •  „Haz  X  mientras  ocurra  Z“   Introducción  a  la  programación  –  Enrique  López  Mañas   42  
  • 43. Estructuras  de  control   Introducción  a  la  programación  –  Enrique  López  Mañas   43  
  • 44. 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.   Introducción  a  la  programación  –  Enrique  López  Mañas   44  
  • 45. Estructuras  de  control   Introducción  a  la  programación  –  Enrique  López  Mañas   45  
  • 46. 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   Introducción  a  la  programación  –  Enrique  López  Mañas   46  
  • 47. Estructuras  de  Datos   •  Matrices  de  N  dimensiones  (N  al  menos  1)   Introducción  a  la  programación  –  Enrique  López  Mañas   47  
  • 48. Estructuras  de  Datos   •  Matrices  de  N  dimensiones  (N  al  menos  1)   Introducción  a  la  programación  –  Enrique  López  Mañas   48  
  • 49. Ejercicio   •  Rellenar  un  array  de  dos  dimensiones  usando   dos  bucles  for  y  pintar  los  valores  por  pantalla       Introducción  a  la  programación  –  Enrique  López  Mañas   49  
  • 50. Estructuras  de  datos   •  ArrayList,    TreeSet,  Scanner...           Introducción  a  la  programación  –  Enrique  López  Mañas   50  
  • 51. Ejercicio   •  Rellenar  un  ArrayList  con  los  datos  que   teníamos  en  el  array  del  ejercicio  anterior.         Introducción  a  la  programación  –  Enrique  López  Mañas   51  
  • 52. Estructuras  de  datos   •  Clases  personalizadas  (introducción  muy   rápida)   •  Uso  de  OO.   •  Creación  de  clases  mul?-­‐atributo  complejas   con  propios  métodos       Introducción  a  la  programación  –  Enrique  López  Mañas   52    
  • 53. Estructuras  de  datos           Introducción  a  la  programación  –  Enrique  López  Mañas   53  
  • 54. Excepciones   •  Ges?ón  de  errores  complejos           Introducción  a  la  programación  –  Enrique  López  Mañas   54  
  • 55. 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       Introducción  a  la  programación  –  Enrique  López  Mañas   55  
  • 56. 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“       Introducción  a  la  programación  –  Enrique  López  Mañas   56    
  • 57. Orientación  a  Objetos  (POO)           Introducción  a  la  programación  –  Enrique  López  Mañas   57  
  • 58. Orientación  a  Objetos  (POO)           Introducción  a  la  programación  –  Enrique  López  Mañas   58  
  • 59. Orientación  a  Objetos  (POO)           Introducción  a  la  programación  –  Enrique  López  Mañas   59  
  • 60. Orientación  a  Objetos  (POO)           Introducción  a  la  programación  –  Enrique  López  Mañas   60  
  • 61. Orientación  a  Objetos  (POO)           Introducción  a  la  programación  –  Enrique  López  Mañas   61  
  • 62. Orientación  a  Objetos  (POO)   •  Relaciones  de  agregación             Introducción  a  la  programación  –  Enrique  López  Mañas   62  
  • 63. Ejercicio   •  Diseñar  y  programar  clases  para  representar   una  empresa  que  con?ene  trabajadores  (usar   array  o  ArrayList)           Introducción  a  la  programación  –  Enrique  López  Mañas   63    
  • 64. 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.     Introducción  a  la  programación  –  Enrique  López  Mañas   64    
  • 65. 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     Introducción  a  la  programación  –  Enrique  López  Mañas   65    
  • 66. 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       Introducción  a  la  programación  –  Enrique  López  Mañas   66  
  • 67. Orientación  a  Objetos  -­‐   Herencia                 Introducción  a  la  programación  –  Enrique  López  Mañas   67  
  • 68. Ejercicio   •  Crear  la  clase  Taxista,  que  hereda  de  persona.   •  El  taxista  ?ene  licencia   •  El  taxista  ?ene  un  coche.   •  Crear  programa  de  ejemplo         Introducción  a  la  programación  –  Enrique  López  Mañas   68  
  • 69. Orientación  a  objetos  –  Clases   abstractas   •  No  se  pueden  crear  objetos  de  clases   abstractas.   •  Se  usan  para  representar  „ideas“  o   „conceptos“         Introducción  a  la  programación  –  Enrique  López  Mañas   69    
  • 70. Ejercicio   •  Hacer  que  la  clase  persona  sea  abstracta.   •  Probar  a  compilar             Introducción  a  la  programación  –  Enrique  López  Mañas   70  
  • 71. Herencia  -­‐  Interfaces   •  Sólo  definen  comportamiento   •  (especifican  qué  hacer,  no  cómo)   Introducción  a  la  programación  –  Enrique  López  Mañas   71  
  • 72. Herencia  -­‐  Interfaces   Introducción  a  la  programación  –  Enrique  López  Mañas   72  
  • 73. Acceso  en  Java   Misma clase Otra clase Subclase de Otra clase de mismo paquete otro paquete otro paquete public X X X X protected X X X default X X private X Introducción  a  la  programación  –  Enrique  López  Mañas   73  
  • 74. Mul?threading   •  Hasta  ahora:  ejecución  secuencial.   •  Pero:  existe  ejecución  de  múl?ples  hilos             Introducción  a  la  programación  –  Enrique  López  Mañas   74  
  • 75.  Mul?threading  -­‐  Ventajas   •  Mejor  ?empo  de  respuesta   •  Mejor  aprovechamiento  de  la  CPU             Introducción  a  la  programación  –  Enrique  López  Mañas   75  
  • 76.  Mul?threading  -­‐  Ejemplo               Introducción  a  la  programación  –  Enrique  López  Mañas   76  
  • 77.  Mul?threading                 Introducción  a  la  programación  –  Enrique  López  Mañas   77  
  • 78.  Mul?threading                 Introducción  a  la  programación  –  Enrique  López  Mañas   78  
  • 79.  Mul?threading                 Introducción  a  la  programación  –  Enrique  López  Mañas   79  
  • 80.  Mul?threading         <         Introducción  a  la  programación  –  Enrique  López  Mañas   80  
  • 81.  Mul?threading                 Introducción  a  la  programación  –  Enrique  López  Mañas   81  
  • 82.  Mul?threading                 Introducción  a  la  programación  –  Enrique  López  Mañas   82  
  • 83.  Mul?threading                 Introducción  a  la  programación  –  Enrique  López  Mañas   83  
  • 84.  Mul?threading                 Introducción  a  la  programación  –  Enrique  López  Mañas   84  
  • 85. Ficheros   •  Almacenamiento  en  Java   •  Hoy  día  rudimentario             Introducción  a  la  programación  –  Enrique  López  Mañas   85  
  • 86. Ficheros  -­‐  Escritura               Introducción  a  la  programación  –  Enrique  López  Mañas   86  
  • 87. Ficheros  -­‐  Lectura               Introducción  a  la  programación  –  Enrique  López  Mañas   87  
  • 88.  UML                 Introducción  a  la  programación  –  Enrique  López  Mañas   88  
  • 89.  JavaDoc                 Introducción  a  la  programación  –  Enrique  López  Mañas   89  
  • 90. Gracias  por  su  atención   Contacto  para  dudas  y  sugerencias   Enrique  López  Mañas   eenriquelopez@gmail.com   @eenriquelopez     En colaboración con la Con la participación de Universidad de Alcalá Electronic Arts