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
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
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
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
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
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
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
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
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
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
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