IA
R
A
Conceptos fundamentales
de
y
T
l
I
n
S
o
Java SE 7 IVER use
N NA
U
N AGE
I
AC ART
D
C I - Gua del Alumno
UN CVolumen
O
F
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
D67234CS20
Edicin 2.0
Noviembre de 2011
D81766
Autor
Copyright 2011, Oracle y/o sus filiales. Todos los derechos reservados.
Jill Moritz
Exencin de responsabilidad
Kenneth Somerville
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Cindy Church
Colaboradores y
revisores tcnicos
Mike Williams
Tom McGinn
Matt Heimer
Joe Darcy
Brian Goetz
Alex Buckley
Adam Messenger
Steve Watts
RIA y
A
Smita Kommini
SIT e onl
R
Aju Kumar
IVE A us
Richard Wallis
N
U EN
N
I
Diseadores grficos
AG
C
T
Seema M. Bopaiah
DA CAR
N
U CO
Rajiv Chandrabhanu
F
nd NAL
a
Editores
ity FE
s
r
Giri Venugopal
ive COM
n
Jayanthy Keshavamurthy
e U ICO
l
c
Ora OLOG
CN
E
T
Redactores
Oracle y Java son marcas comerciales registradas de Oracle y/o sus filiales. Todos
los dems nombres pueden ser marcas comerciales de sus respectivos propietarios.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Contenido
Introduccin
Objetivos del curso 1-2
Programa 1-5
Instalaciones de su ubicacin
Prueba 1-8
Entorno del curso 1-9
Resumen 1-10
1-7
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
2-10
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
iii
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
3
iv
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
vi
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Documentacin sobre System.out.println() 6-36
Uso de los mtodos print() y println() 6-37
Temas 6-38
Clase StringBuilder 6-39
Ventajas de StringBuilder sobre String para la concatenacin (o adicin) 6-40
StringBuilder: Declaracin e instanciacin 6-41
Adicin de StringBuilder 6-42
Prueba 6-43
Resumen 6-44
Visin general de la prctica 6-1: Creacin y manipulacin de objetos Java 6-45
Visin general de la prctica 6-2: Uso de la clase StringBuilder 6-46
vii
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
Construccin if 7-15
IT onl
S
R
Construccin if: Ejemplo 7-16
E use
V
I
N NA
Construccin if: Salida 7-18
U
N AGE
Sentencias if anidadas 7-19
I
Construccin if/else 7-21
AC ART
D
Construccin if/else: Ejemplo 7-22
UN CO C
F
L
Construccin if/else 7-24nd
A
a
N
Temas 7-25
ity FE
s
r
Encadenamiento
OM if/else 7-26
ivede construcciones
n
C
U CO
Temase7-28
l
I
c
a
Uso
de la construccin
switch 7-29
G
r
O
OUso de
L
Ola construccin switch: Ejemplo 7-31
N
C
TE Cundo utilizar construcciones switch 7-33
Prueba 7-34
Resumen 7-36
Visin general de la prctica 7-1: Escritura de una clase que utiliza la
sentencia if/else 7-37
Visin general de la prctica 7-2: Escritura de una clase que utiliza la
sentencia switch 7-38
viii
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
9
ix
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
Uso de continue con bucles 9-25
R
Temas 9-26
IVE A us
N
U EN
Codificacin de un bucle do/while 9-27
N
I
Temas 9-29
AG
C
T
A AR
Comparacin de construcciones de bucle D
9-30
N
U CO C
Prueba 9-31
F
nd NAL
Resumen 9-33
a
E
ity 9-1:FEscritura
Visin general de la prctica
de una clase que utiliza
s
r
M
e
O
un bucle for
niv9-34
C
U
Visinlgeneral
e deIClaOprctica 9-2: Escritura de una clase que utiliza
c
a
G 9-35
bucleO
while
Orun O
L
Visin
N general de la prctica de comprobacin 9-3: Conversin de
C
TE un bucle while en un bucle for 9-36
Uso de break con bucles 9-24
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
Variables static 10-24
IT onl
S
R
Mtodos estticos y variables estticas en la API de Java 10-25 E
se
V
u
I
Temas 10-27
N NA
U
N AGE
Firma de mtodo 10-28
I
Sobrecarga de mtodos 10-29
AC ART
D
Uso de la sobrecarga de mtodos 10-30
N OC
U
F
C
Sobrecarga de mtodos y la APIdde Java L10-32
n
A
a
Prueba 10-33
ty FEN
i
s
r
Resumen 10-34 e
M
v
O
i
n
C
Visin general
U deClaOprctica 10-1: Escritura de un mtodo con argumentos
e
l
y valores
10-35
I
c deGretorno
a
r
O
OVisinOgeneral
L de la prctica de comprobacin 10-2: Escritura de una clase que
N
Ccontenga un mtodo sobrecargado 10-36
E
T
Creacin de mtodos y variables static 10-22
11-9
xi
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
12 Uso de conceptos orientados a objetos avanzados
DA CAR
Objetivos 12-2
N
U CO
F
Temas 12-3
nd NAL
a
Jerarquas de clase 12-4
ity FE
s
r
Temas 12-5
M
e
v
O
i
n
C
Comportamientos
12-6
U Ccomunes
O
e
l
Duplicacin
de cdigo
12-7
I
c
a
G
r
O
OHerencia
L 12-8
O
N
Sustitucin de mtodos de superclase 12-9
C
E
T Superclase Clothing: 1 12-10
Superclase Clothing: 2 12-11
Superclase Clothing: 3 12-12
Declaracin de una subclase 12-13
Declaracin de una subclase (palabras claveextends, super y this)
Declaracin de una sublcase: 2 12-15
Clases abstractas 12-16
Superclase abstracta Clothing: 1 12-17
Superclase abstracta Clothing: 2 12-18
Relaciones de superclases y subclases 12-19
Otro ejemplo de herencia 12-20
Temas 12-21
xii
12-14
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
Llamada al mtodo toString() 12-39
N
U EN
N
Prueba 12-40
I
AG
C
T
Resumen 12-41
R
DyAuso de
Asuperclases
Visin general de la prctica 12-1: Creacin
N
C
U CO
F
y subclases 12-42
L
nd Uso
A
a
Visin general de la prctica
12-2:
de
N
ity FE una interfaz Java 12-43
s
r
M
e
v
O
i
n
C
13 Manejo deUerrores
le 13-2
CO
Objetivos
I
c
a
G
r L13-3
O
OTemas
O
N de excepciones 13-4
Informe
C
E
T Devolucin de excepciones 13-6
Tipos de excepciones 13-7
OutOfMemoryError 13-8
Temas 13-9
Pila de mtodos 13-10
Pila de llamadas: Ejemplo 13-11
Devolucin de objetos Throwable 13-12
Trabajar con excepciones en NetBeans 13-14
Captura de una excepcin 13-15
Excepcin no resuelta 13-16
Excepcin impresa en la consola 13-17
Resumen de los tipos de excepciones 13-18
xiii
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Prueba 13-19
Temas 13-21
Excepciones en la documentacin de la API de Java 13-22
Llamada a un mtodo que devuelve una excepcin 13-23
Trabajar con una excepcin comprobada 13-24
Prcticas recomendadas 13-25
Prcticas no recomendadas 13-26
Temas 13-28
Varias excepciones 13-29
Captura de IOException 13-30
Captura de IllegalArgumentException 13-31
Captura de las excepciones restantes 13-32
Resumen 13-33
Visin general de la prctica 13-1: Uso de un bloque try/catch para manejar
una excepcin 13-34
Visin general de la prctica 13-2: Captura y devolucin de una excepcin
personalizada 13-35
RIA y
A
SIT e onl
R
IVE A us
N
U
N
14 Despliegue y mantenimiento de la aplicacin Duke's
Choice E
N
G
Objetivos 14-2
CI RTA
A
Temas 14-3
ND O CA
U
F LC
Paquetes 14-4
d
n
A
Estructura del directorio de a
paquetesN14-5
y
t
E
si 14-6MF
Paquetes en NetBeans
r
e
O 14-7
Paquetes enn
eliv
cdigo fuente
C
U
Temas
le14-8GICO
c
a
r LO
14-9
ODukesChoice.jar
O
Definicin
N de la clase principal de un proyecto 14-10
C
E
T Creacin del archivo JAR con NetBeans 14-11
Temas 14-13
Arquitectura de cliente/servidor de dos niveles 14-14
Arquitectura de cliente/servidor de tres niveles 14-15
Temas 14-16
Aplicacin Duke's Choice 14-17
Clase Clothing 14-18
Niveles de Duke's Choice 14-20
Ejecucin del archivo JAR desde la lnea de comandos 14-21
Visualizacin de artculos en la lnea de comandos 14-22
Visualizacin de artculos en la aplicacin web de Duke's Choice 14-23
Temas 14-25
Mejora de la aplicacin 14-26
xiv
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
B Consejos para UMLet
IT onl
S
R
Interfaz por defecto de UML B-2
E use
V
I
N NA
U
C Recursos
N AGE
I
Java en Oracle Technology Network (OTN) C-2
AC ART
D
Descargas de Java SE C-3
UN CO C
Documentacin de Java C-4 d F
n NAL
Comunidad Java C-5 y a
FE C-6
sit extensivo
Comunidad Java:e
Enfoque
r
M
OC-7
Comunidad Java:
niv Java.net
C
U
le G
Tecnologas
Java
C-8
CO
I
c
a
r
OFormacin
LOde Java C-9
O
Oracle
N Learning Library C-10
C
E
T Java Magazine C-11
xv
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Introduccin
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
Copyright 2011, Oracle
L Todos los derechos reservados.
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
I Java
AG
C
T
integrantes del diseo de programas
A
R
ND O CA
U
F LC
d
Copyright 2011, Oracle
y/o sus filiales.
Todos los derechos reservados.
n
A
a
N
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
N AGE
I
AC ART
D
UN CO C
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
A ly
T
I
S e on
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Programa
Primer da
Leccin 1: Introduccin
Leccin 2: Introduccin a la tecnologa Java
Leccin 3: Consideraciones sobre los objetos
Leccin 4: Introduccin al lenguaje Java
Segundo da
Leccin 5: Declaracin, inicializacin y uso de variables
Leccin 6: Trabajar con objetos
Leccin 7: Uso de operadores y construcciones de decisin
RIA y
A
(solo leccin)
nl
SIT
R se o
E
IV A u
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
Copyright 2011, Oracle
L Todos los derechos reservados.
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Programa
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Tercer da
Leccin 7: Uso de operadores y construcciones de decisin
(solo prcticas)
Leccin 8: Creacin y uso de matrices
Leccin 9: Uso de construcciones de bucle
Cuarto da
Leccin 10: Trabajar con mtodos y sobrecarga de mtodos
Leccin 11: Uso de encapsulacin y constructores
Leccin 12: Introduccin a conceptos orientados a objetos
avanzados
RIA
A ly
T
I
S e on
Quinto da
R
IVE A us
Leccin 13: Manejo de errores
N
Ude la E
N
Leccin 14: Despliegue y mantenimiento
aplicacin
N
G
CI RTA
Duke's Choice
A
ND O CA
U
F LC
d
Copyright 2011, Oracle
y/o sus filiales.
Todos los derechos reservados.
n
A
a
N
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Instalaciones de su ubicacin
I TAG
C
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Prueba
a.
b.
c.
d.
Cmo se llama?
Cul es su trabajo y dnde trabaja?
Cul es el lugar ms interesante que ha visitado?
Por qu le interesa Java?
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Herramientas adicionales
Firefox
Glassfish Server
UMLet
Gua del alumno
Gua de actividades
Archivos de prcticas
Documentacin de API de Java y
especificacin del lenguaje Java
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COlosMsiguientes productos para las prcticas de las lecciones:
En este curso estnn
preinstalados
JDK 7: lJava
Kit incluye el compilador Java de lnea de comandos (javac)
e USE Development
CO (JRE),
I
c
y Java
Runtime
Environment
que proporciona el comando java necesario para
a
G
r LO
O
ejecutar aplicaciones Java.
NOse utiliza un explorador web para ver la documentacin HTML (documentacin
Firefox:
C
TEJava) para las bibliotecas de la plataforma Java SE.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Resumen
En esta leccin, ha revisado los objetivos del curso y el
programa de clases provisional. Ha conocido a sus
compaeros y ha obtenido una visin general del entorno
informtico que utilizar durante el curso.
Disfrute durante los prximos cinco das de los Conceptos
fundamentales de Java SE 7.
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Objetivos
Al finalizar esta leccin, debera estar capacitado para:
Describir varias caractersticas clave de la tecnologa Java
Describir e identificar caractersticas de la programacin
orientada a objetos
Tratar la diferencia entre los lenguajes compilados e
interpretados
Describir cmo descargar e instalar la plataforma Java
Describir cmo ejecutar una aplicacin Java mediante la
RIA y
lnea de comandos
A
SIT e onl
Identificar las distintas
R
E
s
tecnologas Java
NIV A u
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
Copyright 2011, Oracle
L Todos los derechos reservados.
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Objetivos
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OMJava es el nico lenguaje de desarrollo ms utilizado en el
iveperspectiva,
Para poner las cosas
en
n
C
Ucon ms
mundo hoy enle
da,
de desarrolladores que dicen que han pasado al menos
ICOde 9enmillones
c
algo de r
su
tiempo desarrollando
Java, segn un estudio reciente de Evans Data. Eso entre
a
G
O Omundial
LO de unos 14 millones de desarrolladores.
una poblacin
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Escritorios de Java
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M Java (Nielsen Online, Gartner 2010).
e
Oejecutan
ivescritorios
1.100 millonesnde
C
930 millones
e Ude descargas
l
CO de JRE al ao (agosto de 20092010): los usuarios finales
I
c
a
G
utilizan
r JRE
O(Java Runtime Environment).
O
L
9,5 millones
O de descargas de JDK al ao (agosto de 20092010): los desarrolladores de
Nutilizan
C
Java
JDK (Java Development Kit).
TE
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M
veno son
O
ique
Todos los telfonos
smartphones (telfonos de funciones) ejecutan Java.
n
C
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M ejecutan Java.
ive COBlu-Ray
El 100% de losnreproductores
71,2 millones
e Ude personas
l
CO se conectan a la web con dispositivos basados en Java (InStat
I
c
a
G
2010).
r LO
O
Se fabrican
NO 1.400 millones de Java Cards cada ao (InStat 2010).
C
TE
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Historia de Java
rase una vez
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M
O(anteriormente
ive Java
El lenguaje de programacin
Oak) tiene su origen en 1991 como parte de un
n
C
U
O desarrollar un lenguaje de programacin que salvar la distancia
proyecto de investigacin
le enGentre
Cpara
I
c
de comunicacin
dispositivos de consumo, como grabadores de vdeo (VCR) y
a
O unmuchos
Or O
televisores.
EnL
concreto,
equipo de desarrolladores de software altamente cualificados de Sun
NTeam, bajo la direccin de James Gosling) quera crear un lenguaje de programacin
(el Green
C
E
que
T permitiera a los dispositivos de consumo con distintos procesadores (CPU) compartir las
mismas mejoras de software.
Este concepto inicial se frustr despus de varios tratos con compaas de dispositivos de
consumo sin xito. El Green Team se vio obligado a buscar otro mercado para su nuevo lenguaje
de programacin. Afortunadamente, la World Wide Web era cada vez ms popular y el Green
Team reconoci que el lenguaje Oak era perfecto para desarrollar componentes multimedia web
para mejorar pginas web. Estas pequeas aplicaciones, llamadas applets, se convirtieron en el
uso inicial del lenguaje Oak y los programadores que utilizaban Internet adoptaron lo que se
convirti en el lenguaje de programacin Java.
El punto decisivo para Java fue en 1995, cuando Netscape incorpor Java en su explorador.
Saba que... El personaje de la diapositiva es Duke, la mascota de Java. El Duke original lo cre
el artista grfico del Green Team, Joe Palrang.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Orientado a objetos
Distribuido
Sencillo
Multithread
Seguro
Independiente de la plataforma
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM representan conceptos orientados a objetos. Tratar
iveen la diapositiva
Los trminos mostrados
n
C
estos trminos
eenUprofundidad
l
ICO y esto le ayudar a crear una base para comprender la tecnologa
c
Java. ra
G
O OLO
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Programacin de procedimiento
La programacin de procedimiento se basa en la secuencia.
1
Paso 1
Paso 2
Paso 3
IA
R
A
4 Paso 4
y
T
l
I
n
RS se o
E
IV A u
N
U EN
5 Paso 5
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OesMun lenguaje de programacin orientada a objetos porque
ive Java
El lenguaje de programacin
n
C
uno de los objetivos
del programador de tecnologa Java es crear objetos (partes de
e U principales
l
CO interactuar
I
c
cdigo autnomo)
que
pueden
con otros objetos para solucionar un problema. La
a
G
Or Oorientada
LO a objetos se inici con el lenguaje de programacin SIMULA-67 en 1967
programacin
N a lenguajes de programacin populares como, por ejemplo, C++, en el que se basa
y ha llevado
C
E
libremente
el lenguaje de programacin Java.
T
En el diagrama se muestra el enfoque en la secuencia del programa de procedimiento.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Orientado a objetos
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OMse diferencia de la programacin de procedimiento porque
ive a objetos
La programacin orientada
n
C
O
sta hace hincapi
de los pasos de codificacin necesarios para solucionar un
e Uen laICsecuencia
l
c
problema,
mientras
que
la
programacin
orientada a objetos lo hace en la creacin e interaccin
a
G
r
de losO
objetos. LO
NO de organizacin en mdulos: el cdigo fuente de un objeto se puede escribir y
Capacidad
C
TEmantener independientemente del cdigo fuente de otros objetos. Una vez creado, un objeto
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Distribuido
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
Copyright 2011, Oracle
L Todos los derechos reservados.
ndy/o susNfiliales.
A
a
ity FE
s
r
OesMun lenguaje distribuido porque proporciona soporte para
ive Java
El lenguaje de programacin
n
C
tecnologas de
Remote Method Invocation (RMI), Common Object Request
eredUdistribuidas,
l
CO y como
I
c
Broker Architecture
(CORBA)
el
localizador
de recursos (URL). Asimismo, las
a
G
O de clases dinmica de uniforme
Or OdeLcarga
capacidades
la tecnologa Java permiten descargar las partes de
N de Internet y ejecutarlas en una computadora personal.
cdigoC
a travs
E
T los trminos tecnologa Java y lenguaje de programacin Java no hacen referencia a lo
Nota:
mismo. La tecnologa Java hace referencia a una familia de productos de tecnologa Java, de los
cuales el lenguaje de programacin es solo una parte.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Sencillo
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OesMsencillo porque los diseadores han eliminado algunas de
ive Java
El lenguaje de programacin
n
C
las construcciones
y poco transparentes encontradas en otros
e Ude programacin
l
COpopulares.complejas
I
c
lenguajes
de
programacin
Como
ejemplo,
el lenguaje de programacin Java no
a
G
Ora losOprogramadores
LO
permite
manipular directamente punteros a ubicaciones de memoria (una
N compleja de los lenguajes de programacin C y C++). En su lugar, el lenguaje de
caracterstica
C
E
programacin
Java permite a los programadores manipular solo objetos mediante referencias de
T
objetos. El lenguaje de programacin tambin utiliza una funcin llamada recolector de basura
para supervisar y eliminar objetos a los que ya no se hace referencia. Otra caracterstica que
hace que el lenguaje de programacin Java sea sencillo es que un booleano de Java solo puede
tener un valor true o false, a diferencia de otros lenguajes en los que un booleano se representa
con 0 y 1.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Multithread
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
Copyright 2011, Oracle
L Todos los derechos reservados.
ndy/o susNfiliales.
A
a
ity FE
s
r
M multithread. Esto permite ejecutar varias tareas
Osoporta
ive Java
El lenguaje de programacin
n
C
Otiempo), como consultar una base de datos, realizar clculos de larga
simultneamente
e U(al mismo
l
Cmostrar
I
c
ejecucin
y
complejos,
y
una interfaz de usuario. La capacidad multithread permite a un
a
G
Or deOtecnologa
LO Java ser muy eficaz en el uso de recursos del sistema. En la imagen se
programa
N es multithread el lenguaje de programacin Java.
ilustra C
cmo
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Seguro
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M seguros porque el lenguaje de programacin Java, con el
Oson
ive Java
Los programas de tecnologa
n
C
entorno en ellque
los programas de tecnologa Java, utilizan medidas de seguridad
e Use ejecutan
COfrente
I
c
para proteger
los
programas
a ataques. Estas medidas incluyen:
a
G
r LO
O
Prohibicin
de que programas distribuidos, como applets, lean y escriban en un disco duro
Ocomputadora.
N
de
una
EC
T
Verificacin de que todos los programas de tecnologa Java contienen cdigo vlido.
Soporte de firmas digitales. El cdigo de tecnologa Java lo puede firmar una compaa o
una persona de forma que otra persona que reciba el cdigo pueda verificar la legitimidad
del mismo.
Prohibicin de la manipulacin de memoria mediante el uso de punteros.
En la imagen se ilustra cmo se protegen los programas de tecnologa Java al no permitir que se
ejecute cdigo no vlido en una computadora.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OMde lenguajes suelen necesitar numerosas modificaciones
ivene la mayora
Los programas escritos
n
C
para ejecutarse
deO
un tipo de plataforma de computacin (una combinacin de CPU y
eenUmsIC
l
c
sistema roperativo).
Esta
dependencia de la plataforma se debe a que la mayora de lenguajes
a
G
O que
LO cdigo especfico de la plataforma subyacente. Los lenguajes de
necesitan
escriba
O
N populares, como C y C++, necesitan que los programadores compilen y enlacen
programacin
C
E
sus
Tprogramas, cuyo resultado es un programa ejecutable nico en una plataforma. Un
compilador es una aplicacin que convierte un programa que escribe en un cdigo especfico de
CPU denominado cdigo de mquina. Estos archivos especficos de la plataforma (archivos
binarios) a menudo se combinan con otros archivos, como bibliotecas de cdigo escrito
previamente, que utilizan un enlace para crear un programa dependiente de la plataforma,
denominado ejecutable, que puede ejecutar un usuario final. A diferencia de C y C++, el lenguaje
de programacin Java es independiente de la plataforma.
En la imagen se ilustra cmo un compilador crea un archivo binario.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
e se enlaza
OM un archivo binario a bibliotecas para crear un ejecutable
ivcmo
En la imagen se ilustra
n
C
dependiente de
elaUplataforma.
l
CO
I
c
a
G
Or OLO
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M
e los O
ivcmo
En la imagen se ilustra
ejecutables dependientes de la plataforma se pueden ejecutar
n
C
solo en una plataforma.
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OMde tecnologa Java (compilador Java) que crea cdigo de
ivelecompilador
En la imagen se ilustra
n
C
byte Java. le U
CO
I
c
a
G
Un programa
se puede ejecutar en varias combinaciones de CPU y sistemas
O como elJava
Or OdeLtecnologa
operativos distintas,
sistema operativo Solaris en un chip SPARC, MacOS X en un chip
N Windows en un chip Intel, normalmente con pocas o ninguna modificacin.
Intel y C
Microsoft
E
T programas de tecnologa Java se compilan mediante un compilador de tecnologa Java. El
Los
formato resultante de un programa de tecnologa Java compilado es cdigo de byte de tecnologa
Java independiente de la plataforma en lugar de cdigo de mquina especfico de CPU. Una vez
creado el cdigo de byte, lo interpreta (ejecuta) un intrprete de cdigo de byte denominado
mquina virtual o VM. Una mquina virtual es un programa especfico de la plataforma que
comprende el cdigo de byte independiente de la plataforma y puede ejecutarlo en una
plataforma concreta. Por este motivo, el lenguaje de programacin Java se suele denominar
lenguaje interpretado y se dice que los programas de tecnologa Java son porttiles o ejecutables
en cualquier plataforma. Otros lenguajes interpretados incluyen Perl.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM
ivlaeejecucin
En la imagen se ilustra
de un archivo de cdigo de byte de tecnologa Java (cdigo
n
C
U
de byte Java)le
en varias plataformas
donde existe Java Runtime Environment.
CO
I
c
a
G
Una mquina
obtiene su nombre porque es una parte de software que ejecuta cdigo, una
Or Ovirtual
LOrealizada
tarea normalmente
por la CPU o la mquina de hardware. Para que los programas de
N
tecnologa
C Java sean independientes de la plataforma, es necesaria una mquina virtual
TE
denominada
Java Virtual Machine (JVM) en cada plataforma donde se ejecutar la programacin.
Java Virtual Machine es responsable de interpretar el cdigo de tecnologa Java, cargar las
clases Java y ejecutar programas de tecnologa Java.
Sin embargo, un programa de tecnologa Java necesita que se ejecute ms de una Java Virtual
Machine.
Un programa de tecnologa Java tambin necesita un juego de bibliotecas de clases Java
estndar para la plataforma. Las bibliotecas de clases Java son bibliotecas de cdigo escrito
previamente que se puede combinar con el cdigo que escribe para crear aplicaciones slidas.
Combinados, el software JVM y las bibliotecas de clases Java se denominan Java Runtime
Environment (JRE). Java Runtime Environment est disponible en Oracle para muchas
plataformas comunes.
Nota: pueden ser necesarias algunas modificaciones para que un programa de tecnologa Java
sea independiente de la plataforma. Por ejemplo, puede ser necesario modificar los nombres de
directorios para que utilicen los delimitadores adecuados (barras inclinadas e invertidas) para el
sistema operativo subyacente.
Conceptos fundamentales de Java SE 7 2-21
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Prueba
Se dice que el lenguaje de programacin Java es
independiente de la plataforma porque:
a. El cdigo compilado se ejecuta en varias plataformas con
pocas o ninguna modificacin.
b. No permite el uso de punteros para manipular la memoria.
c. El formato de un programa Java compilado es cdigo
especfico de CPU.
d. Es multithread.
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
Respuesta: a
n
U Ccorrecta
O pero una respuesta incorrecta porque no est relacionada con
eafirmacin
b es una
l
I
c
a
G
r LO de la plataforma.
la independencia
O
O porque un programa Java compilado no es cdigo especfico de CPU. Lo
c esN
incorrecta
C
interpreta
la mquina virtual que reside en el sistema.
E
T
d es una afirmacin correcta porque Java es multithread, pero no es el motivo por el que se
dice que es independiente de la plataforma.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
e completa
OM de productos de tecnologa Java, que van desde kits que
ivlnea
Oracle proporciona n
una
C
O Java hasta entornos de emulacin (prueba) para dispositivos de
crean programas
de tecnologa
eU
l
Cmviles.
I
c
consumo
como
telfonos
Como se indica en el grfico, todos los productos de tecnologa
a
G
r LlaObase del lenguaje
Java O
comparten
Java. Las tecnologas Java, como Java Virtual Machine, se
O
N
incluyen
distintas formas) en tres grupos diferentes de productos, cada uno diseado para
Clas(denecesidades
E
cumplir
de un mercado objetivo concreto. En la figura se ilustran los tres grupos
T
de productos de tecnologa Java y sus tipos de dispositivo objetivo. Cada edicin incluye un Java
Development Kit (JDK) [tambin denominado Software Development Kit (SDK)] que permite a los
programadores crear, compilar y ejecutar programas de tecnologa Java en una plataforma
concreta.
Nota: la API de JavaFX es un completo cliente para crear interfaces de usuario para el programa
Java. La API de MSA es la aplicacin de software mvil utilizada para crear interfaces de usuario
en dispositivos porttiles.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Java SE
Se utiliza para desarrollar applets que se ejecutan en
exploradores web y aplicaciones que se ejecutan en
computadoras de escritorio.
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OMSE) se utiliza para desarrollar applets y aplicaciones que se
iveEditionC(Java
Java Platform, Standard
n
O y en computadoras de escritorio. Por ejemplo, puede utilizar Java
ejecutan en exploradores
e U ICweb
l
c
SE JDK rpara
crear un
programa de procesador de texto para una computadora personal.
a
G
O
O OLaplicaciones
Utilizamos dos
de escritorio Java en este curso: NetBeans y UMLet.
N
C applets y las aplicaciones se diferencian en varios aspectos. Principalmente, los applets
Nota:
Elos
T
se inician en un explorador web, mientras que las aplicaciones se inician en un sistema operativo.
Aunque este curso se centra principalmente en el desarrollo de aplicaciones, la mayor parte de la
informacin se puede aplicar al desarrollo de applets.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Java EE
Se utiliza para crear grandes aplicaciones distribuidas de
empresa, de servidor y de cliente.
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M
O
iveEdition
Java Platform, Enterprise
(Java EE) se utiliza para crear grandes aplicaciones distribuidas
n
C
U Cy O
de empresa, de
de cliente. Por ejemplo, puede utilizar Java EE JDK para crear una
e servidor
l
I
c
aplicacin
de
compras
web
(eCommerce) para el sitio web de una compaa minorista.
a
G
r LO
O
Java EE se O
crea sobre la plataforma Java SE, amplindola con API adicionales que soportan las
N
necesidades
C de software de empresa de gran escala y de alto rendimiento. Las API se
TE
empaquetan
y agrupan para soportar distintos tipos de contenedores, como un contenedor web
para aplicaciones basadas en web, un contenedor de cliente para clientes gruesos y el
contenedor EJB para ejecutar componentes Java eficaces. Algunos tipos de funcionalidades
soportados por las distintas API incluyen objetos, IU, integracin, persistencia, transacciones y
seguridad.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Java ME
Se utiliza para crear aplicaciones para dispositivos de consumo
con recursos restringidos.
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M se utiliza para crear aplicaciones para dispositivos de
OME)
ive (Java
Java Platform, MicronEdition
C
U restringidos.
consumo conle
recursos
ejemplo, puede utilizar Java ME JDK para crear un juego
CO mvil.Por
I
c
que se ejecute
en
un
telfono
Las
aplicaciones Java de disco Blu-Ray y Java TV utilizan el
a
G
r queLO
OSDK
mismo
Java ME.
NO
C
TE
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Java Card
Java Card se suele utilizar en las siguientes reas (y muchas
ms):
Identidad
Seguridad
Transacciones
SIM de telfonos mviles
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM Java es una tarea sencilla. El JDK est disponible de
ive deCdesarrollo
La configuracin delnentorno
forma gratuitale
en U
el sitio web
COde Oracle Java.
I
c
a
G
Or OLO
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
1. Vaya a oracle.com/java.
n
2. Seleccione
el enlace
Java Platform, Standard Edition (Java SE).
eU
l
CO
I
c
a
G
r LO
3. O
Descargue
la versin para su plataforma.
O
4. SigaN
de instalacin.
C laselinstrucciones
E
5.
Defina
valor
PATH
de
Java.
T
6. Compile y ejecute una aplicacin Java de ejemplo.
Nota: en las actividades de prctica de esta leccin se muestra cmo realizar los pasos 5 y 6.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
dor
pila
m
o
C
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
e
OM
ivKit
Java SE Development
n
C
U COSE Development Kit, se instalan los siguientes elementos:
l
Al descargar
eeinstalar IJava
c
raRuntime
O
Java
Environment (JRE)
OG
L
O
JavaNVirtual Machine (JVM) para la plataforma que elija
C
EBibliotecas de clases Java para la plataforma que elija
T
Adems de la descarga de Java SDK, hay otros elementos disponibles como descarga
independiente, como la documentacin de la biblioteca de clases Java (API) y la especificacin
del lenguaje Java.
Nota: el compilador (javac) se encuentra en el directorio ../jdk<version>/bin.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Sus caractersticas
incluyen:
Integracin completa
Despliegue sencillo
Editor inteligente
Desarrollo sencillo de proyectos
Control de cdigo fuente incorporado
IN
RIA y
A
SIT e onl
R
IVE A us
N
U EN
AG
C
T
DA CAR
N
U CO
F
Copyright 2011, Oracle
L Todos los derechos reservados.
ndy/o susNfiliales.
A
a
ity FE
s
r
OMayudan a reducir el tiempo de desarrollo mediante las
ive integrados
Los entornos de desarrollo
n
C
siguientes caractersticas:
e U ICO
l
c
Automatizacin
ra LOGde tareas sencillas
O
Uso deO
terminacin automtica de cdigo
N
C
EIntegracin de la depuracin
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M
e para O
ivIDE
Utilizaremos NetBeans
las actividades del curso. Cuando est familiarizado con un IDE,
n
C
U Csus
Oconocimientos a cualquier IDE similar de su eleccin.
puede aplicarle
fcilmente
I
c
a
G
NetBeans
(y versiones posteriores) soporta Java SE 7, con el que es compatible. El
Or IDEIDE
L7.0Onecesita
instalador deO
un JDK para instalar el IDE en el sistema ya que NetBeans es una
N
aplicacin
C Java. Sin embargo, puede agregar versiones de JDK adicionales despus de que
TE est instalado y puede elegir qu versin de JDK utilizar al crear un proyecto de
NetBeans
NetBeans. El IDE est disponible con descargas especficas que soportan varias tecnologas
Java, como se muestra en el grfico. Por ejemplo, puede decidir descargar e instalar solo Java
SE o puede elegir el grupo All de NetBeans.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM
ienveel contexto
En NetBeans, trabaja
de un proyecto, que se compone de un grupo organizado de
n
C
U
archivos de origen
y metadatos
archivos de propiedades especficos del proyecto, un
ley una
CO asociados,
I
c
script Build
Ant
configuracin
de
ejecucin,
as como todas las herramientas que necesitar
a
G
r LO probar y depurar la aplicacin.
para O
escribir, compilar,
Puede crear un proyecto principal con
O
N
subproyectos
como enlazar proyectos mediante dependencias. Por lo tanto, empezar es tan
Ccomo as
E
sencillo
dar
un nombre al proyecto. Despus de indicar a NetBeans el nombre de un nuevo
T
proyecto, a continuacin:
Crea un rbol de origen con una clase de esqueleto opcional dentro.
Crea una carpeta para pruebas de unidad.
Define classpaths para la compilacin, ejecucin y prueba.
Define la plataforma Java en la que se ejecuta el proyecto.
Crea un script Build Ant (build.xml), que contiene instrucciones que el IDE utiliza cuando
ejecuta comandos en el proyecto, como compilar o ejecutar.
Explorar estas funciones durante las actividades de prctica de esta leccin.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Prueba
El grupo de productos de tecnologa Java que est diseado
para desarrollar aplicaciones para dispositivos de consumo es
_______.
a. Java SE JDK
b. Java ES SDK
c. Java EE SDK
d. Java ME SDK
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
Respuesta: d
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Anlisis
Diseo
Desarrollo
Prueba
Implantacin
Mantenimiento
Fin de vida
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M iterativo utilizado para desarrollar nuevos productos
ive esCunOproceso
El ciclo de vida del producto
n
mediante la solucin
problemas.
O
e U deIC
l
c
a
Anlisis:
proceso
de
investigacin de un problema que desea solucionar con el producto.
G
r LO
O
Entre otras
tareas, el anlisis consiste en:
O
- NDefinir claramente el problema que desea solucionar, el nicho de mercado que desea
C
TE abarcar o el sistema que desea crear. El lmite de un problema tambin se conoce
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
El ciclo de vida del producto es una parte importante del desarrollo del producto porque ayuda a
garantizar que los productos se crean y entregan para que se reduzca el tiempo de
comercializacin, la calidad del producto es alta y se maximiza el retorno de la inversin. Los
desarrolladores que no siguen el ciclo de vida del producto a menudo se encuentran problemas
con sus productos que son costosos de arreglar y que se podran haber evitado.
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Resumen
En esta leccin, debe haber aprendido lo siguiente:
Describir varias caractersticas clave de la tecnologa Java
Describir e identificar caractersticas de la programacin
orientada a objetos
Tratar la diferencia entre los lenguajes compilados e
interpretados
Describir cmo descargar e instalar la plataforma Java
Describir cmo ejecutar una aplicacin Java mediante la
RIA y
lnea de comandos
A
l
IT
Identificar las distintas tecnologas Java
RS e on
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Resumen
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
Copyright 2011, Oracle
L Todos los derechos reservados.
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
Copyright 2011, Oracle
L Todos los derechos reservados.
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Objetivos
Al finalizar esta leccin, debera estar capacitado para:
Analizar un problema mediante el anlisis orientado a
objetos
Identificar un dominio de problemas
Identificar los objetos
Definir criterios adicionales para reconocer objetos
Definir atributos y operaciones
Analizar la solucin de un caso prctico
IA
R
A
NI NA
U
N AGE
I
AC ART
D
UN CO C
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Importancia
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M
e
O
ivdetermina
Normalmente, primero
el mbito del elemento (las dimensiones externas del elemento
n
C
U COla forma en que debe encajar el elemento en el entorno [tamao del
[altura, ancho,le
profundidad],
c
lote], etc.).
DespusG
deIeso, puede empezar a dividir el elemento en sus principales
a
r
O
O Oque
L se suelen reconocer como sustantivos o cosas, como suelo, techo o cocina.
componentes,
N
Una taxonoma
es una clasificacin de organismos relacionados que tienen caractersticas (o
C
TE similares denominadas atributos, como:
funciones)
Aletas o branquias
Operaciones
Capacidad de nadar
Capacidad de caminar sobre dos pies
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM
ivune catlogo
Dukes Choice produce
en lnea de ropa cada tres meses y lo enva por correo
n
C
U
O Cada camisa del catlogo tiene un identificador (ID) de elemento,
electrnico a lsus
e suscriptores.
Cuno
I
c
uno o ms
colores
(cada
con un cdigo de color), una o ms tallas, una descripcin y un
a
G
Or OLO
precio.
N acepta todas las tarjetas de crdito. Los clientes pueden llamar a Dukes Choice
DukesC
Choice
E
T realizar un pedido directamente a un representante del servicio de atencin al cliente, o bien
para
pueden rellenar un formulario de pedido en lnea en el sitio web de Dukes Choice.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
e
Oel M
ivintroduce
A medida que el cliente
pedido en lnea, se verifica la disponibilidad de cada
n
C
U
elemento (cantidad
Si uno o ms elementos no estn disponibles actualmente (en el
le fsica).
ICO
cDukes
almacnrde
Choice),
el elemento se marca como pendiente hasta que llega al almacn.
a
G
O queOtodos
LOlos elementos estn disponibles, se verifica el pago y se enva el pedido al
Una vez
N su ensamblaje y envo a la direccin del cliente. Cuando se recibe el pedido, se da
almacn
para
C
E
al T
cliente un ID de pedido, que se utiliza para realizar un seguimiento del pedido a lo largo de todo
el proceso. Un representante del servicio de atencin al cliente introduce los pedidos que se
realizan por telfono.
Nota: en un anlisis real, trabajara mano a mano con una compaa que obtendra detalles sobre
cada aspecto de cmo realiza la compaa su negocio. Este caso prctico resume solo una
pequea parte de la informacin necesaria para crear un sistema para Dukes Choice.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M
e de
Oprogramacin
Puesto que Java esn
univlenguaje
orientada a objetos, uno de los objetivos
C
U
principales del
Java es crear objetos para crear un sistema o, ms
leprogramador
COde tecnologa
I
c
concretamente,
para
solucionar
un
problema.
a
G
Or problema
LO que solucionar se denomina dominio de problemas. La mayora de los
El mbito delO
proyectos
CNempiezan con la definicin del dominio de problemas, con la recopilacin de los
E
T
requisitos
del cliente y la escritura de una sentencia de mbito que indica brevemente lo que el
desarrollador desea lograr. Por ejemplo, una sentencia de mbito para el proyecto de Dukes
Choice puede ser: crear un sistema que permita el mtodo de introduccin de pedidos en lnea
para aceptar y verificar el pago de un pedido. Despus de determinar el mbito del proyecto,
puede empezar a identificar los objetos que interactuarn para solucionar el problema.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Identificacin de objetos
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OdeMproblemas, primero debe identificar las propiedades de
ivune dominio
Para validar objetosn
de
C
todos los objetos:
e U ICO
l
c
G ser fsicos o conceptuales. Una cuenta de cliente es un ejemplo de un
Los
pueden
raobjetos
O
O
L
objeto O
conceptual, porque no es algo que pueda tocar fsicamente. Un cajero automtico es
N
algo
que
C muchas personas tocan a diario y es un ejemplo de objeto fsico.
E
T
Los objetos tienen atributos (caractersticas) como el tamao, el nombre, la forma, etc., que
representan el estado del objeto. Por ejemplo, un objeto puede tener un atributo de color. El
valor de todos los atributos de un objeto se suele denominar estado actual del objeto. Un
objeto puede tener un atributo de color con el valor de rojo y un atributo de tamao con un
valor de grande.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Los objetos tienen operaciones (cosas que pueden hacer) como la definicin de un valor, la
visualizacin de una pantalla o el aumento de la velocidad, que representan el
comportamiento mediante el cual se puede modificar el estado del objeto. Las operaciones
suelen afectar a los atributos de un objeto. Las operaciones que un objeto realiza se suelen
denominar comportamiento. Por ejemplo, un objeto puede tener una operacin que permite
a otros objetos cambiar el atributo de color del objeto de un estado a otro, como de rojo a
azul.
Saba que... Los nombres de objetos a menudo son sustantivos, como cuenta o camisa. Los
atributos de objetos a menudo tambin son sustantivos, como color o tamao. Las operaciones
de objetos suelen ser verbos o combinaciones de sustantivo y verbo, como mostrar o enviar
pedido. Su capacidad para reconocer objetos en el mundo que le rodea le ayudar a definir
mejor los objetos cuando se enfrente a un problema mediante el anlisis orientado a objetos.
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Identificacin de objetos
Atributos
uea
rsal, peq
o
d
ta
le
A
l Tamao, g
Color, azu
rande
Operaciones
Migrar
Comunicar
r
Come
Buc
ear
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
Copyright 2011, Oracled
L Todos los derechos reservados.
n y/o susNfiliales.
A
a
ity FE
s
r
OM de una ballena que la convierten en un objeto.
ivlasecaractersticas
En la figura se ilustran
n
C
eporUla sala.
Anlisis: mire
Qu objetos hay en la sala en la que est sentado en este momento?
l
CO
I
c
a
G
r
Por ejemplo,
unaO
puerta puede ser un objeto del dominio de problemas de construir una casa.
O OL al menos un atributo que tiene un valor (abierto o cerrado) y una operacin como
Una puerta tiene
cerrarC
la N
puerta o abrir la puerta que permite cambiar el estado de una puerta.
E
T
Saba que... Un atributo con solo dos estados se denomina atributo booleano.
Un reloj puede ser un objeto. Un reloj tiene al menos un atributo (hora actual) que tiene un valor
(horas:minutos:segundos actuales) y una esfera que permite definir el valor de la hora actual (una
operacin).
Una silla puede ser un objeto. Una silla tiene al menos un atributo (altura) que tiene un valor
(altura en centmetros) y que puede tener una palanca que permita a otro objeto, como una
persona, cambiar el valor de altura (una operacin). Un instructor puede ser un objeto. Un
estudiante puede ser un objeto.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Existencia independiente
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M probando si algo se debe considerar un objeto de un
Oseguir
ive para
Utilice los siguientesncriterios
C
dominio de problemas:
e U ICO
l
c
Importancia
ra LOdelGdominio de problemas
O
Existencia
NO independiente
C
ParaE
T determinar si el objeto es relevante para el dominio de problemas, pregntese lo siguiente:
Nota: algunos elementos de un dominio de problemas pueden ser atributos de objetos o pueden
ser los propios objetos. Por ejemplo, la temperatura puede ser un atributo de un objeto de un
sistema mdico o puede ser un objeto de un sistema cientfico que realiza un seguimiento de los
patrones climatolgicos.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Para que un elemento sea un objeto y no un atributo de otro objeto, debe existir
independientemente en el contexto del dominio de problemas. Los objetos pueden estar
conectados y seguir teniendo una existencia independiente. En el caso prctico de Dukes
Choice, un cliente y un pedido estn conectados, pero son independientes el uno del otro, por lo
que ambos seran objetos.
Al evaluar objetos potenciales, pregntese si el objeto necesita existir de forma independiente, en
lugar de ser un atributo de otro objeto. La identificacin de objetos en un dominio de problemas
en un arte, no una ciencia. Cualquier objeto puede ser un objeto vlido si tiene importancia para
el dominio de un problema y tiene las caractersticas de un objeto, pero esto no significa que sea
un buen objeto. La persona que modela el sistema o la solucin debe entender el sistema
completo.
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Posibles objetos
en el caso prctico de Dukes Choice
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
Mdominio de problemas para el sistema de introduccin de
e objetosOdel
ivtres
En la figura se ilustran
n
C
pedidos de Dukes
Esta lista no es una respuesta exhaustiva ni acreditada. Esta lista es
e UChoice.
l
CO
I
c
solo un primer
anlisis
del
sistema.
a
G
Or OLO que probablemente no son objetos adecuados para este sistema son:
Algunos sustantivos
CN
EFax
T
Verificacin
Pago
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M
Oespecifique
ivloseobjetos,
Despus de identificar
sus atributos y operaciones.
n
C
U
Como se hacdescrito
los atributos definen el estado de un objeto. Los atributos
le Ganteriormente,
CO
I
a
pueden rser datos,
como
un
ID
de
pedido
e ID de cliente para un objeto de pedido, o bien pueden
O el cliente que tiene un
O OLcomo
ser otro objeto,
objeto de pedido completo como atributo en lugar de
N
solo elC
E ID de pedido.
T
Como se ha descrito anteriormente, las operaciones son comportamientos que normalmente
modifican el estado de un atributo. Por ejemplo, un pedido se puede imprimir, ofrece la posibilidad
de agregar o suprimir elementos, etc. (El cliente o el representante del servicio de atencin al
cliente inicializar esas acciones en la vida real, pero las operaciones pertenecen al objeto de
pedido.)
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Customer
Order
customer ID
name
address
phone number
email address
*Order
order ID
data
*Shirt(s)
total price
*Form of payment
*CSR
status
assign a customer ID
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
Copyright 2011, Oracled
L Todos los derechos reservados.
n y/o susNfiliales.
A
a
ity FE
s
r
vereferencia
OMa otro objeto. Por ejemplo, el objeto de cliente puede tener
iuna
Un atributo puede ser
n
C
U un objeto
un atributo que
esea
l
CO de pedido. Esta asociacin puede ser necesaria o no, segn el
I
c
problema
que
intenta
solucionar.
a
G
Or nombres
LO de atributos y operaciones que describan claramente el atributo o la
Nota: utiliceO
operacin.
CNEn la figura se ilustra el objeto de cliente que contiene un atributo de pedido. Los
E
T
asteriscos
(*) indican atributos que son otros objetos.
calculate order ID
calculate the total price
add shirt to order
remove shirt from order
submit the order
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
shirt ID
price
description
size
color code
Order
data
*Shirt(s)
total price
*Form of payment
*CSR
status
calculate order ID
calculate the total price
add shirt to order
remove shirt from order
submit the order
calculate shirt ID
display shirt information
Shirt
customer ID
name
address
phone number
email address
*Order
Customer
assign a customer ID
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
Copyright 2011, Oracled
L Todos los derechos reservados.
n y/o susNfiliales.
A
a
ity FE
s
r
e posibles
OM atributos y operaciones para los objetos de pedido,
ivalgunos
En la figura se ilustran
n
C
camisa y cliente.
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Clase
Order
Shirt
Customer
Form of
Payment
Catalog
CSR
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
Copyright 2011, Oracled
L Todos los derechos reservados.
n y/o susNfiliales.
A
a
ity FE
s
r
OlasMclases:
ivemuestra
La tabla de la diapositiva
n
C
U CO
Order le
c
ra LOGI
O
Shirt
Customer
NO
C
EForm of Payment
T
Catalog
CSR
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Order
Shirt
Customer
Atributos
order ID
date
*Shirt(s)
total price
*Form of payment
*CSR
status
shirt ID
price
description
size
color code
customer ID
name
address
phone number
email address
*Order
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Form of
Payment
Catalog
CSR
Atributos
customer ID
name
address
phone number
email address
*Order
*Shirt(s)
name
extension
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Order
Shirt
Customer
Atributos
customer ID
name
address
phone number
email address
*Order
*Shirt(s)
name
extension
Comportamientos
add a shirt
remove a shirt
process order
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Form of Payment
Catalog
CSR
Atributos
customer ID
name
address
phone number
email address
*Order
*Shirt(s)
name
extension
Comportamientos
add a shirt
remove a shirt
process order
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Diseo de clases
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OaM
ive ayuda
La identificacin de n
objetos
disear la clase o el plano para cada uno de los objetos de
C
U
un sistema. Por
de ventanas a menudo crean un nico plano para cada
le ejemplo,
ClosOfabricantes
I
c
uno de los
estilos
de
ventanas
que
crean.
planos definen el rango de colores y estilos que
a
G
O cuando se compra Estos
Or seleccionar
L
se pueden
la ventana.
NO estos planos son la base de cualquier nmero de ventanas con cualquier nmero
A continuacin,
C
E
deTcombinaciones de color y estilo. En trminos de diseo orientado a objetos, cada objeto
(ventana) creado con la clase (plano genrico) se denomina instancia de una clase. En concreto,
cada objeto creado de una clase puede tener un estado determinado (valores) para cada uno de
sus atributos, pero tendr los mismos atributos y operaciones.
Nota: el diccionario American Heritage Dictionary define la palabra clase como un grupo cuyos
miembros tienen determinados atributos en comn.
Las clases y los objetos a menudo se utilizan en el campo de la biologa. Por ejemplo, a un
bilogo marino que estudia criaturas marinas a menudo se le pide que las clasifique en una
familia, o clase, de criaturas marinas.
En trminos de anlisis orientado a objetos, cada animal (como una ballena azul) de una familia
(como ballenas) se puede considerar una instancia de objeto de la clase ballena.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Shirt
shirtID
price
description
size
colorCode R=Red, B=Blue, G=Green
calculateShirt ID ( )
displayShirtInformation ( )
IA
R
A
Clase
Objetos Shirt
y
T
l
I
n
Shirt
RS se o
E
IV A u
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M
O
ive de
En referencia al caso
prctico
Dukes Choice:
n
C
Ode definir un objeto. Las clases son categoras, plantillas o planos
Una clase
e esUla forma
l
C
I
c
a
G
descriptivos.
r LOShirt puede ser una clase que define todas las camisas que tienen un ID de
O
camisa,
Otamao, cdigo de color, descripcin y precio.
N
C objetos son instancias nicas de clases. El polo azul grande que cuesta 29,99 $ con el
Los
TEID de camisa 62467-B es una instancia de la clase Shirt, como lo es la camisa verde
pequea con el mismo precio y el ID de camisa 66889-C, o la camisa de cuadros de 39,99 $
con el ID 09988-A. Tambin puede tener dos objetos Shirt en memoria con exactamente los
mismos valores de atributos.
En el grfico se ilustra una clase y varios objetos basados en la clase.
Nota: volver a ver la clase Shirt a lo largo de este curso.
En el lenguaje de programacin Java, los atributos se representan mediante variables y las
operaciones se representan mediante mtodos. Las variables son el mecanismo del lenguaje de
programacin Java para contener datos. Los mtodos son el mecanismo del lenguaje de
programacin Java para realizar una operacin.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Modelado de clases
Sintaxis:
ClassName
attributeVariableName [range of values]
attributeVariableName [range of values]
attributeVariableName [range of values]
...
methodName()
methodName()
methodName()
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OMconsta de la organizacin visual o el modelado de un
ive deCdiseo
La primera fase de la
etapa
n
U C
O clase de un diseo se debe modelar para que est en un cuadro
programa y sus
Cada
eclases.
l
I
c
con el nombre
de
la
clase
en
la parte superior, seguido de una lista de variables de atributos
a
G
Ode los posibles
Orel rango
L
(incluido
valores) y una lista de mtodos.
O
N
La sintaxis
C para modelar una clase se muestra en la figura. La sintaxis utiliza lo siguiente:
E
T
ClassName es el nombre de la clase.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Modelado de clases
Ejemplo:
Shirt
shirtID
price
description
size
colorCode R=Red, B=Blue, G=Green
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M
O
ive Shirt
La figura contiene un
objeto
modelado.
n
C
e Ude modelado
Nota: esta tcnica
l
CO se basa libremente en una versin ligera de Unified Modeling
I
c
a
G
Language
es una herramienta para ayudar en el proceso de modelado (algunos de
Oque
Or (UML),
L
los detalles se
han
eliminado
para los nuevos programadores).
O
N
C de variables y de mtodos se escriben en un estilo tipogrfico especial denominado
Los E
nombres
T
CamelCase. CamelCase especifica que una variable o mtodo, que representa cualquier
calculateShirtID()
displayInformation()
atributo u operacin de varias palabras, empieza con una letra minscula y posteriormente las
palabras aparecen en mayscula. Por ejemplo, una operacin como calcular el precio total se
escribe calcTotalPrice(). Asimismo, un juego de parntesis cerrados indica un mtodo.
Nota: el modelado de clases es similar al modelado de estructuras de base de datos. De hecho,
los datos de objetos se pueden almacenar en una base de datos mediante la API de Java
Database Connectivity (JDBC). La API de JDBC permite leer y escribir registros mediante
sentencias de lenguaje de consulta estructurado (SQL) en los programas de tecnologa Java.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM orientados a objetos. No ensearemos UML en nuestros
ive programas
UML se utiliza para n
modelar
C
U podemos
cursos de Java,
e pero
l
CO mostrar algunas funciones de UML que puede utilizar para
I
c
solucionar
el
caso
prctico.
a
G
Or OLO para todos los objetos.
Elija sustantivos
CNverbos para todos los mtodos.
EElija
T
Elija adjetivos para todos los atributos.
Puede utilizar un editor de texto simple para realizar la prctica 3. Queremos que se acostumbre a
buscar los objetos que conforman las clases. UML es un buen mtodo para identificar las clases,
los objetos y los mtodos que incluye el caso prctico.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Prueba
Elija la respuesta que representa dos propiedades diferentes
de un objeto:
a. Mtodos y operaciones
b. Dominio de problemas
c. Atributos y operaciones
d. Variables y datos
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
Respuesta: c
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Prueba
Cul de las siguientes afirmaciones es cierta?
a. Un objeto es un plano de una clase.
b. Un objeto y una clase son exactamente lo mismo.
c. Un objeto es una instancia de una clase.
d. Un atributo no puede ser una referencia a otro objeto.
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
Respuesta: c
n
U una
eporque
a es falsa
l
COclase es un plano de un objeto.
I
c
a
G
r falsaLporque
O
b es
O un objeto es simplemente una instanciacin de una clase y una clase
O plano para el objeto.
sirveNcomo
EcC
es correcta.
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Resumen
En esta leccin, debe haber aprendido lo siguiente:
Analizar un problema mediante el anlisis orientado a
objetos
Identificar un dominio de problemas
Identificar los objetos
Definir criterios adicionales para reconocer objetos
Definir atributos y operaciones
Anlizar la solucin de un caso prctico
IA
R
A
NI NA
U
N AGE
I
AC ART
D
UN CO C
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Objetivos
Al finalizar esta leccin, debera estar capacitado para:
Definir una clase
Identificar los componentes de una clase
Explicar el trmino objeto
Describir el objetivo de una variable
Analizar mtodos y describir cmo utilizar un mtodo main
Describir los elementos que componen una clase Java,
como las declaraciones, los valores de retorno y el uso
correcto de los corchetes y las llaves
Identificar palabras clave y describir su objetivo
RIA y
Probar y ejecutar un programa simple
A
SIT e onl
Describir algunas causas comunes
R
de errores de sintaxis
IVE A us
N
U EN
Describir el objetivo y las
N
G
funciones de un depurador de A
IDE
CI
TA
D CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
y
T
l
I
n
RS se o
E
IV A u
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Importancia
Cmo prueba algo que ha creado, como una casa, un mueble
o un programa?
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M general de los componentes de una clase. Tambin
Ovisin
ive Cuna
En esta leccin se proporciona
n
U Cy ejecutar
O un programa de tecnologa Java que se compone de varias
describe cmo
ecompilar
l
I
c
clases. Necesitamos
comprender
de qu trata el desarrollo y la prueba de clases.
a
G
r LO
O
Hay varias formas
O de probar un programa. Puede probar distintos componentes (prueba de
N
unidad),
Cpuede probar todo el elemento y ver si encaja en el entorno, etc.
TE
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Shirt
Order
Date
Window
OrderEntry
Customer
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M definir los objetos de un programa. Por ejemplo, en la
Opara
iveque C
Las clases son los planos
crea
n
figura se ilustran
algunos de
eU
l
ICOlos objetos que pueden existir en el programa de introduccin de
c
pedidos rpara
DukesG
Choice.
a
O OLdeOescritorio suele estar compuesta por un objeto, a menudo denominado objeto
Una aplicacin
controlador,
CN objeto principal u objeto de prueba que es el punto de inicio del programa. En la
E
T anterior, el objeto OrderEntry puede interactuar con uno o ms objetos Window, objetos
figura
Button
Customer, objetos Order, etc. mientras se ejecuta el programa. Cada objeto de esta ilustracin es
una instancia de un plano o una clase. Por ejemplo, todos los objetos Window son instancias de
las clases Window. Algunas clases, como la clase Window (utilizada para crear ventanas de
interfaz grfica de usuario [GUI]), son clases de uso general y se proporcionan como parte de la
API de tecnologa Java. Otras clases, como la clase Shirt, pueden ser nicas para el programa
concreto, por lo que debe crearlas. En este curso se describe cmo utilizar las clases existentes y
cmo crear y utilizar las propias.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Estructuracin de clases
Declaracin de clase
Declaraciones de campo (los atributos de clase se
denominan campos)
Los campos tambin se pueden inicializar en el momento de
la declaracin.
Mtodos (opcionales)
Comentarios (opcionales)
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M
ive porCelO
Las clases estn formadas
cdigo de tecnologa Java necesario para instanciar objetos,
n
U En este
como objetosle
Shirt.
COcurso se divide el cdigo de un archivo de clase Java en cuatro
I
c
secciones
independientes:
a
G
Or OLOde clase.
Declaracin
CN
EDeclaraciones
de campo (los atributos de clase se denominan campos). Las variables
T contienen valores y los valores pueden cambiar durante el transcurso de la aplicacin. Los
campos son un tipo de variable y las variables locales son otro tipo de variable. Las
variables tambin se pueden inicializar en el momento de la declaracin.
Mtodos (opcionales).
Comentarios (opcionales).
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Estructuracin de clases
public class Shirt {
Declaraciones
de campo
Declaracin de clase
RIA y
A
Mtodo
SIT e onl
R
IVE A us
N
} // end of display method
U EN
N
} // end of class
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OMclase se incluye en un archivo de texto que debe cumplir una
ive paraCuna
El cdigo de programacin
n
U CEnOel ejemplo se muestra una clase Shirt para todas las camisas que
determinada estructura.
e
l
I de Dukes Choice. La clase Shirt tiene varios campos y un mtodo,
c
aparecern
en el catlogo
a
G
r
O
O OL
displayInformation,
para imprimir los valores de los campos.
N
C
TE
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Llaves
Parntesis
Puntos y comas
Comas
Comillas simples
Comillas dobles
Comentario de una lnea
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM de cdigo. Las llaves incluyen el cdigo de un mtodo
ive unCbloque
Las llaves {} significan
n
Uuna C
O completa. (Estos son solo algunos de los usos de las llaves).
concretole
o de
clase
I
c
a
G
Los
( ) se utilizan para indicar datos de entrada (tambin denominados
r parntesis
O que
O
L
argumentos)
se pueden transferir a un mtodo.
O
N
Los
C puntos y comas (;) significan el final de una sentencia.
TE
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Unin de todo
Ejemplo de clase:
public class Shirt{
public double price;
Llaves de
apertura y
public void setPrice(double priceArg){de cierre
para la
price = priceArg;
clase Shirt
RIA y
A
}
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M diseada para el dominio de problemas. Para cada
Oclase
ivepara cada
Debe declarar una clase
n
C
O
clase, debe escribir
de clase. La sintaxis para declarar una clase es:
e U unaICdeclaracin
l
c
a
G
[modifiers]
r LO class class_identifier
O
La variable
O [modifiers] determina la accesibilidad que otras clases tienen a esta clase.
N
C
Los
modificadores
se abordan con ms detalle ms adelante en este curso. La variable
TE[modifiers] es opcional (se indica con corchetes) y puede ser pblica, abstracta o final.
}
Los nombres de clases deben contener palabras completas. Evite los acrnimos y
abreviaturas (a menos que la abreviatura se utilice mucho ms que la forma extendida,
como JVM o UML).
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Prueba
Seleccione la declaracin de clase que cumple las
instrucciones de nomenclatura
de clases.
a. class Shirt
b. public Class 501Pants
c. public Shirt
d. public Class Pants
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
Respuesta: a
n
e Ude clase
La definicin
l
COva seguida de una llave de apertura ({) que indica el principio de
I
c
a
G
class_body,
r LO las variables de atributos y los mtodos que forman la clase. Las llaves { }
O
alrededor
O de class_body definen dnde empieza y acaba la clase.
N
EbC
es incorrecta porque la palabra class tiene la inicial en mayscula.
T
c es incorrecta porque la clase no se utiliza en el nombre de clase.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
int shirtID = 0;
String description = "-description required-";
char colorCode = 'U';
double price = 0.0;
int quantityInStock = 0;
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM de campos va despus de la primera llave de
ive y asignaciones
El bloque de declaraciones
n
C
apertura ({). Normalmente,
e U ICOse configuran todas las variables de atributos para la clase despus
l
c
de esta r
llave. Observe el punto y coma al final de cada lnea de cdigo de este ejemplo.
O a OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Comentarios
Tradicional:
/*******************************************
* Attribute Variable Declaration Section
*******************************************/
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M que cree para facilitar la determinacin de la accin que
Oclase
iveen cada
Debe poner comentarios
n
C
O
realiza el programa.
son especialmente importantes en programas ms grandes
e U LosICcomentarios
l
c
desarrollados
por
grandes
equipos
en
los que varios programadores tienen que leer el cdigo.
a
G
Or OLO
Los comentarios
ayudan con el mantenimiento de un programa cuando nuevos programadores
Ndeterminar la accin que realiza el cdigo.
tienen C
que
E
SeTpueden utilizar dos estilos principales de comentarios:
Comentarios de una sola lnea: un marcador // indica al compilador que ignore todo
hasta el final de la lnea actual. Muchos programadores tambin hacen ms sencilla la
lectura de sus programas utilizando comentarios de una sola lnea para comentar la primera
y ltima lneas de cada clase y mtodo. Por ejemplo, la clase Shirt contiene un comentario
de fin de lnea para indicar el final del mtodo de visualizacin (lnea 18):
-
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
/*****************************************
* Attribute Variable Declaration Section *
******************************************/
Los programadores a menudo utilizan comentarios tradicionales para proporcionar
detalles de un gran bloque de cdigo. En grandes programas, puede resultar muy
difcil encontrar las llaves de la clase. Al comentar la estructura a la que pertenece
cada llave de cierre, la lectura y correccin de errores resulta mucho ms sencilla.
Saba que... Hay un tercer tipo de comentario denominado comentario de documentacin. Puede
utilizar una herramienta de tecnologa Java, la herramienta Javadoc, para crear documentacin
para cualquiera de las clases que utilizarn otros programadores. De hecho, toda la
documentacin de la biblioteca de clases que se incluye con Java SE JDK se ha creado con la
herramienta Javadoc. Los comentarios de documentacin deben empezar por una barra inclinada
y dos asteriscos (/**) y deben terminar con un asterisco y una barra inclinada (*/). El ejemplo
anterior de un comentario tradicional tambin sera un comentario de documentacin vlido.
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
y
T
l
I
n
RS se o
E
IV A u
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Mtodos
Sintaxis:
Ejemplo:
RIA y
A
SIT e onl
R
} // end of display method
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OdeMlas declaraciones de variables de atributos de una clase. La
ivedespus
Los mtodos se colocan
n
C
U C
sintaxis de losle
mtodos
esO
la siguiente:
I
c
a
[modifiers]
return_type method_identifier ([arguments]) {
G
Or Omethod_code_block
LO
CN }
E
T
donde:
[modifiers] representa varias palabras clave nicas de tecnologa Java que modifican la
forma en que se accede a los mtodos. Los modificadores son opcionales (se indican con
corchetes).
return type indica el tipo de valor (si lo hay) que ejecuta el mtodo. Si el mtodo
devuelve un valor, se debe declarar el tipo del valor. Los valores devueltos los puede utilizar
el mtodo de llamada. Cualquier mtodo puede devolver al menos un valor. Si el mtodo no
devuelve nada, se debe utilizar la palabra clave void para return type.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
y
T
l
I
n
RS se o
E
IV A u
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Palabras clave
abstract
default
for
package
synchronized
assert
do
if
private
this
boolean
double
implements
protected
throw
break
else
import
public
throws
byte
enum
instanceof
return
transient
case
extends
int
short
true
IA
R
A
char
final
long
strictfp
void IT
y
l
n
RS se o
E
class
finally
native
super
u
IV volatile
N
A
U EN
N
continue
float
new
switch
G while
I
A
AC ART
D
UN CO C
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
e
OM reservadas en el lenguaje de programacin Java
ivpalabras
Las palabras clave son
especiales
n
C
O
para dar instrucciones
Las palabras clave no se deben utilizar como identificadores
e U IalCcompilador.
l
c
de clases,
mtodos,
variables,
etc.
En
la tabla se incluyen todas las palabras clave de la
a
G
O
Or Java.
tecnologa
true, false y null pueden parecer palabras clave, pero en realidad son
L
NO
literales;
no
puede utilizarlas como identificadores en los programas.
C
E
T
catch
false
interface
static
try
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
y
T
l
I
n
RS se o
E
IV A u
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
}
N
I
AG
}
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OaM
iveque cree
La mayora de las clases
lo largo de este curso no se pueden utilizar (ejecutar y
n
C
U
probar) por sle
solas. En suO
lugar, debe ejecutar otra clase para crear una instancia de objeto de la
Cla clase.
I
c
clase para
poder
probar
En este curso, utilizar una clase de prueba o principal para
a
G
r unaLO
Ocada
probar
de las clases. El cdigo de la diapositiva es un ejemplo de una clase de prueba
NOShirt.
para la clase
C
E
AT
cada clase de prueba de este curso se le debe asignar un nombre para que se pueda
myShirt.displayInformation();
reconocer como clase de prueba de una clase concreta escrita. En concreto, cada nombre de
clase de prueba est formado por el nombre de la clase de prueba, seguido de la palabra Test.
Por ejemplo, la clase diseada para probar la clase Shirt se llama ShirtTest. Las clases de
prueba tienen dos tareas distintas que realizar:
Proporcionar un punto de inicio, denominado mtodo main, para el programa
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Mtodo main
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
e especial
OM que Java Virtual Machine reconoce como punto de inicio
El mtodo main es n
univ
mtodoC
de cada programa
Java que se ejecuta desde la lnea de comandos o desde un
e Ude tecnologa
l
ICO programa
c
smbolo rdel
sistema.G
Cualquier
que desee ejecutar desde una lnea de comandos o un
a
O del O
smbolo
sistema
LO debe tener un mtodo main.
N Muchas de las clases de tecnologa Java que crean los ingenieros no se ejecutan en
Saba C
que...
E
unTsistema operativo. Recuerda los applets? Los applets se ejecutan en un explorador web y
tienen su propio mtodo de inicio nico.
La sintaxis del mtodo main es la siguiente:
public static void main (String[] args)
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Compilacin de un programa
1. Vaya al directorio donde estn almacenados los archivos
de cdigo fuente.
2. Introduzca el siguiente comando para cada archivo .java
que desee compilar.
Sintaxis:
javac filename
Ejemplo:
javac Shirt.java
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
Copyright 2011, Oracled
L Todos los derechos reservados.
n y/o susNfiliales.
A
a
ity FE
s
r
OM
ivlaeactividad
Esta es una revisinnde
de la leccin titulada Introduccin a la tecnologa Java. La
C
U
compilacin convierte
los archivos
de clase que escribe en cdigo de byte que ejecuta Java
le Recuerde
CO
I
c
Virtual Machine.
las
reglas
de nomenclatura de los archivos de origen Java. Si un
a
G
r origen
Ocontiene una clase pblica,
Ode
L
archivo
el archivo de origen debe utilizar el mismo nombre
O
N
que la clase
pblica, con una extensin .java. Por ejemplo, la clase Shirt se debe guardar en
EC denominado Shirt.java.
unTarchivo
Para compilar los archivos de cdigo fuente Shirt y ShirtTest:
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Sintaxis:
java classname
Ejemplo:
java ShirtTest
Salida:
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
Una vez compiladosncorrectamente
los archivos de cdigo fuente, puede ejecutarlos y probarlos
U
mediante Java
leVirtualGMachine.
CO
I
c
a
Para ejecutar
O el programa:
Or OyLprobar
1.NVaya al directorio en el que estn almacenados los archivos de clase.
C
Introduzca el siguiente comando para el archivo de clase que contiene el mtodo
TE 2. main:
Shirt ID: 0
Shirt description:-description requiredColor Code: U
Shirt price: 0.0
Quantity in stock: 0
java classname
Ejemplo:
java ShirtTest
Este comando ejecuta la clase ShirtTest. Como se ha mencionado anteriormente, la clase
ShirtTest crea una instancia del objeto Shirt mediante la clase Shirt. Todos los objetos Shirt
tienen un mtodo, el mtodo display, que imprime los valores de las variables de atributos,
como en este ejemplo:
Shirt ID: 0
Shirt description:-description requiredColor Code: U
Shirt price: 0.0
Quantity in stock: 0
Conceptos fundamentales de Java SE 7 4-24
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
Run equivale a java.
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
e <classname(s)>
OM
ivjavac
Save llama al comando
para todos los archivos .java del proyecto.
n
C
U
El botn Run File
Run llama
java <classname>. Asegrese de observar
le o de
CO alrojacomando
I
c
cualquier
indicador
burbuja
del
editor
de cdigos para localizar errores de sintaxis.
a
G
Or OLO
CN
E
T
Save equivale a javac.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
y
T
l
I
n
RS se o
E
IV A u
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
e comprueban
OM la sintaxis del cdigo y muestran alertas mediante
ivJava
La mayora de editores
n
C
O rojo donde hay errores en el cdigo.
iconos y subrayados
color
e U deIC
l
c
a
G
Para evitar
O de sintaxis, asegrese de llevar a cabo lo siguiente:
Or problemas
L
Observe
NOcualquier indicador de burbuja roja del editor de cdigos para localizar errores de
C
sintaxis.
E
T
Ponga un punto y coma al final de cada lnea donde sea necesario.
En la captura de pantalla se muestra un error en la lnea 13, en la que falta un punto y coma. Si
coloca el cursor sobre la burbuja roja, el editor ofrece una sugerencia para corregir el error.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
y
T
l
I
n
RS se o
E
IV A u
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ve C
OMde ruptura en el cdigo fuente, agregar recursos de
icolocar
Un depurador permite
puntos
n
comprobacinle
deU
campos,O
desplazarse por el cdigo, ejecutar mtodos, realizar instantneas y
Cmedida
I
c
supervisar
la
ejecucin
a
que se produce. Tambin puede conectar el depurador de
a
G
O que ya est
Or a O
NetBeans
unL
proceso
en ejecucin.
N
Otras funciones
incluyen:
C
E
T
Depurador configurable: puede configurar el comportamiento de ruptura/suspensin,
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Resumen
En esta leccin, debe haber aprendido lo siguiente:
Definir una clase
Identificar los componentes de una clase
Explicar el trmino objeto
Describir el objetivo de una variable
Analizar mtodos y describir cmo utilizar un mtodo main
Describir los elementos que componen una clase Java,
como declaraciones, valores de retorno y el uso correcto
de los corchetes y las llaves
Identificar palabras clave y describir su objetivo
IA
R
A
UN CO C
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Objetivos
Al finalizar esta leccin, debera estar capacitado para:
Identificar los usos de las variables y definir la sintaxis de
una variable
Enumerar los ocho tipos de dato primitivos del lenguaje de
programacin Java
Declarar, inicializar y utilizar variables y constantes segn
las instrucciones del lenguaje de programacin Java y los
estndares de codificacin
Modificar valores de variables mediante operadores
RIA y
A
Utilizar la ampliacin y la conversin de tipo
l
IT
S e on
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Importancia
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
// This method displays the values for an item
SIT e onl
R
public void displayInformation() {
IVE A us
N
U EN
System.out.println("Shirt ID: " + shirtID); N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM y recuperar datos del programa. Los objetos almacenan
ivepara almacenar
Las variables se utilizan
n
C
sus estados individuales
e U ICenOcampos. Los campos tambin se denominan variables de instancia
l
c
porque sus
son
a valores
G nicos para cada instancia individual de una clase. El ejemplo de cdigo
OShirt
Oruna
muestra
clase
que declara varios campos no estticos (como price, shirtID y
L
Ode la clase Shirt).
N
colorCode
Cuando se instancia un objeto de una clase, estas variables
C
E
contienen
datos especficos de una instancia de objeto concreta de la clase. Por ejemplo, una
T
instancia de la clase Shirt puede tener el valor 7 asignado al campo no esttico
public int quantityInStock = 0; // Default quantity for all shirts
quantityInStock, mientras que otra instancia de la clase Shirt puede tener el valor 100
asignado al campo no esttico quantityInStock.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
e variables
OM definidas en mtodos. Estas variables se denominan
ivtienen
Los programas tambin
n
C
variables locales
porque solo
eU
l
CO estn disponibles de forma local en el mtodo en el que se
I
c
declaran.
a
G
Or Ocurso,
LO los trminos variables o campos se utilizan para hacer referencia a
Nota: en este
variables.
CNSi la situacin lo necesita, se utilizar variable local cuando corresponda.
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OMen el lenguaje de programacin Java para tareas como, por
iveampliamente
Las variables se utilizan
n
C
ejemplo:
e U ICO
l
c
Gde atributos nicos para una instancia de objeto (como ha visto con las
Contener
ra Ldatos
O
O
variables
O price e ID)
N
C el valor de una variable a otra
EAsignar
T
Representar valores en una expresin matemtica
Mostrar los valores en la pantalla. Por ejemplo, la clase Shirt utiliza las variables price e
ID para imprimir los valores de precio e identificador de la camisa:
System.out.println("Shirt price: " + price);
System.out.println("Shirt ID: " + shirtID);
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Sintaxis (campos):
[modifiers] type identifier [= value];
Ejemplos:
public
public
public
public
public
int shirtID = 0;
String description = "-description required-";
char colorCode = 'U';
double price = 0.0;
int quantityInStock = 0;
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
Copyright 2011, Oracle
L Todos los derechos reservados.
ndy/o susNfiliales.
A
a
ity FE
s
r
M
ive C
La declaracin e inicializacin
deO
variables de atributos sigue la misma sintaxis general. La
n
O campos es la siguiente:
sintaxis para ldeclarar
inicializar
e U eIC
c
a
[modifiers]
type identifier [= value];
G
r LO
O
La sintaxis para
inicializar una variable en un mtodo es la siguiente:
NOidentifier
C
= value;
E
T
La sintaxis para declarar e inicializar una variable en un mtodo es la siguiente:
type identifier [= value];
donde:
[modifiers] representa varias palabras clave especiales de tecnologa Java, como
public y private, que modifican el acceso que otro cdigo tiene a un campo. Los
modificadores son opcionales (se indican con corchetes). Por ahora, todos los campos que
cree deben tener un modificador public.
type representa el tipo de informacin o datos que contiene la variable. Algunas variables
contienen caracteres, otras contienen nmeros y otras son booleanos y solo pueden
contener uno de dos valores. Todas las variables deben tener asignado un tipo para indicar
el tipo de informacin que contienen.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
int shirtID = 0;
String description = "-description required-";
char colorCode = 'U';
double price = 0.0;
int quantityInStock = 0;
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM de tecnologa Java se almacenan como tipos de dato
ivdeelos programas
Muchos de los valores
n
C
U COse muestran los ocho tipos primitivos incorporados en el lenguaje de
primitivos. Enle
la diapositiva
c
programacin
Java.GI
a
r
O OLO
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Longitud
Rango
Ejemplos de
valores literales
permitidos
byte
8 bits
De 27 a 27 1
2
(de 128 a 127,
114
o 256 posibles valores) 0b10 (nmero
binario)
short
16 bits
De 215 a 215 1
(de 32.768 a 32.767,
o 65.535 posibles
valores)
2
32699
IA
R
A
int
32 bits
De
a
1
2
y
T
l
I
n
(tipo por
(de 2.147.483.648 a
o
147334778 RS
e
defecto para
E
s
2.147.483.647, o
IV A u
123_456_678
literales
4.294.967.296 posibles UN
integrales)
EN
N
valores)
G
CI RTA
A
ND O CA
U
F LC
d
Copyright 2011, Oracle
y/o sus filiales.
Todos los derechos reservados.
n
A
a
N
ity FE
s
r
OMen el lenguaje de programacin Java, identificados con las
ive integrales
Hay cuatro tipos primitivos
n
C
U short,
palabras claveebyte,
y long. Estos tipos almacenan nmeros que no tienen comas
l
CO int las
I
c
decimales.
Si
necesita
almacenar
edades de personas, por ejemplo, servir una variable de
a
G
Or yaOque
tipo byte
los tipos byte pueden aceptar valores de ese rango. Al especificar un valor
LO
Nun tipo long, ponga una L mayscula a la derecha del valor para indicar
literal para
C
E
explcitamente
que es un tipo long. El compilador asume que los literales integrales son de tipo
T
int a menos que especifique lo contrario mediante una L que indique el tipo long.
231
231
Una nueva funcin de SE 7 permite expresar cualquiera de los tipos integrales como binarios
(ceros y unos). Por ejemplo, una expresin binaria del nmero 2 se muestra como un valor
permitido del tipo integral byte. El valor binario es 0b10. Observe que este valor empieza por 0b
(es decir, cero seguido de una letra B minscula o mayscula). Esto indica al compilador que, a
continuacin, viene un valor binario.
Otra nueva funcin de SE 7 se puede ver en la fila int. La posibilidad de incluir caracteres de
subrayado en un nmero int largo ayuda a la lectura del cdigo. Por ejemplo, puede utilizar esto
para facilitar la lectura de un nmero integral largo mediante la sustitucin de los caracteres de
subrayado con comas. El uso del carcter de subrayado no tiene ningn efecto en el valor
numrico de int ni aparece si la variable se imprime en la pantalla.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Longitud Rango
long
64 bits
De 263 a 263 1
(de
9.223.372.036.854.775.808 a
9.223.372.036.854.775.807, o
18.446.744.073.709.551,616
posibles valores)
Ejemplos de
valores literales
permitidos
2
2036854775808L
1L
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OMde tipo int para incluir los valores de shirtID y la
ivedos atributos
La clase Shirt contiene
n
C
Umientras
Oque los valores literales se utilizan para proporcionar un valor de
cantidad en stock,
e
l
IC(0)
c
inicio porra
defecto deG
cero
para cada uno.
O Opublic
LO int shirtID = 0; // Default ID for the shirt
CN public int quantityInStock = 0; // Default quantity for all shirts
E
T el nico motivo para utilizar los tipos byte y short en programas es ahorrar consumo de
Nota:
memoria. Puesto que la mayora de computadoras de escritorio modernas tienen mucha
memoria, la mayora de programadores de aplicaciones de escritorio no utilizan los tipos byte y
short. En este curso se utilizan principalmente los tipos int y long en los ejemplos.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Longitud Float
float
32 bits
99F
327456,99.01F
4.2E6F (notacin de ingeniera para
4,2 * 106)
double
(tipo por
defecto de
los
literales
de coma
flotante)
64 bits
1111
2.1E12
99970132745699.999
RIA y
A
SIT e onl
R
E us
IV
public double price = 0.0; // Default price
for all
N
A shirts
U
N
E
N AG
I
AC ART
D
UN CO C
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM
ive de coma
Hay dos tipos de nmeros
flotante: float y double. Estos tipos se utilizan para
n
C
U
O a la derecha del punto decimal, como 12.24 o 3.14159. Al
almacenar nmeros
con valores
levalor G
Cpara
I
c
especificar
un
literal
tipo float, ponga una F mayscula (float) a la derecha del
a
r LOexplcitamenteunque
valor O
para indicar
es un tipo float y no un tipo double.
O
N
Se asume
C que los valores literales para tipos de coma flotante son de tipo double a menos que
E
T
especifique
lo contrario mediante la F que indique el tipo float. La clase Shirt muestra el uso
de un valor literal double para especificar el valor por defecto del precio:
Nota: utilice el tipo double cuando sea necesario un rango o precisin mayor.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM
iveutilizaCpara
Otro tipo de dato que
se
almacenar y manipular datos es la informacin de un nico
n
U
carcter. El tipo
O para almacenar un nico carcter (como y) es char, que tiene
le16primitivo
Cutilizado
I
c
un tamao
de
bits.
La
clase
Shirt muestra el uso de un valor literal textual para especificar el
a
G
r LO
valor O
por defecto
de colorCode:
NOpublic char colorCode = 'U';
C
E
AlT
asignar un valor literal a una variable char, como t, debe utilizar comillas simples alrededor
del carcter: 't'. El uso de comillas simples alrededor del carcter aclara al compilador que la t
es solo el valor literal t, en lugar de una variable t que representa otro valor.
El tipo char no almacena el carcter real escrito, como la t mostrada. La representacin char se
reduce a una serie de bits que corresponde a un carcter. Las asignaciones de carcter de
nmero se configuran en el juego de caracteres que utiliza el lenguaje de programacin.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Saba que... Muchos lenguajes informticos utilizan ASCII (American Standard Code for
Information Interchange), un juego de caracteres de 8 bits que tiene una entrada para cada
carcter ingls, signo de puntuacin, nmero, etc.
El lenguaje de programacin Java utiliza un juego de caracteres de 16 bits denominado Unicode
que puede almacenar todos los caracteres visualizables necesarios para la gran mayora de
idiomas utilizados en la actualidad. Por lo tanto, los programas se pueden escribir de forma que
funcionen correctamente y se muestren en el idioma correcto de la mayora de pases. Unicode
contiene un subjuego de ASCII (los primeros 128 caracteres).
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OMdeben tomar decisiones. El resultado de una decisin, si la
ive a menudo
Los programas informticos
n
C
U CesOtrue o false, se puede guardar en variables booleanas. Las variables
sentencia en lel
programa
e
I
c
de tipo boolean
solo
pueden
almacenar:
a
G
r
O
O
L
Los literales
O del lenguaje de programacin Java true o false.
N
ElCresultado de una expresin que se evala solo en true o false. Por ejemplo, si la
TErespuesta a la variable es igual a 42, la expresin if answer < 42 se evala en un
resultado false.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OMdebe asignar un identificador o nombre a cada variable del
ive o mtodo,
Al igual que con unanclase
C
programa. Recuerde
elO
objetivo de la variable es actuar como mecanismo para almacenar y
e U que
l
Ctanto,
I
c
recuperar
valores.
Por
lo
debe hacer que los identificadores de variables sean simples pero
a
G
Or OPorLO
descriptivos.
ejemplo, si almacena el valor de un ID de elemento, puede asignar a la variable
el nombreN
myID, itemID, itemNumber o cualquier otro que le aclare el uso de la variable a
C
E
usted
T y a otras personas que lean el programa.
Saba que... Muchos programadores siguen la convencin de utilizar la primera letra del tipo
como identificador: int i, float f, etc. Esta convencin es aceptable para programas pequeos
que son fciles de descifrar, pero en general debe utilizar identificadores ms descriptivos.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Ejemplo:
double price = 12.99;
Ejemplo (booleano):
boolean isOpen = false;
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OMal declarar la variable o asignar la variable ms tarde. Para
ivaeuna variable
Puede asignar un valor
n
C
asignar un valor
O durante la declaracin, agregue un signo igual (=) despus de la
e aUuna Ivariable
l
Cvalor
c
declaracin,
seguido
del
que se va a asignar. Por ejemplo, al campo de precio de la clase
a
G
O
Oser puede
Shirt
asignar el valor 12.99 como precio para un objeto Shirt.
L
NOdouble price = 12.99;
C
E
UnTejemplo de declaracin y asignacin de variable booleana es el siguiente:
boolean isOpen = false;
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Sintaxis:
type identifier = value [, identifier =
value];
Ejemplo:
double price = 0.0, wholesalePrice = 0.0;
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ve variables
OM
Puede declarar una n
o ims
en la misma lnea de cdigo, pero solo si todas son del
C
U
mismo tipo. La
para
varias variables en una lnea de cdigo es la siguiente:
lesintaxis
COdeclarar
I
c
a
type
identifier
=
value
[, identifier = value];
G
r LO
O
Por lo tanto,O
de minorista y de mayorista independientes en la clase Shirt, se
N si haydeprecios
C
pueden
declarar
la
siguiente
forma:
TE
double price = 0.0, wholesalePrice = 0.0;
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
int ID = 0;
float pi = 3.14F;
char myChar = 'G';
boolean isOpen = false;
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M mediante varios enfoques distintos.
e aOvariables
ivvalores
Tambin puede asignar
n
C
Asignacin
de valores
eU
l
COliterales directamente a variables (como se ha descrito en esta
I
c
a
G
leccin):
r LO
O
Oint ID = 0;
N
C float pi = 3.14F;
TE
char myChar = 'G';
boolean isOpen = false;
La primera lnea de cdigo crea un entero denominado ID y lo utiliza para almacenar el nmero 0.
La segunda lnea de cdigo crea otro entero denominado saleID y lo utiliza para almacenar el
mismo valor como ID (0). Si el contenido de ID se cambia posteriormente, el contenido de
saleID no cambia automticamente. Incluso aunque los dos enteros tienen actualmente el
mismo valor, se pueden cambiar de forma independiente en un programa.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
A ly
T
I
S e on
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M
ive C
Asignacin delnresultado
deO
una expresin a variables de tipo integral, de coma flotante o
booleano:
e U ICO
l
c
G lneas de cdigo, el resultado de todo lo que est a la derecha del
ralas siguientes
O
OEn
L
operador
O = se asigna a la variable situada a la izquierda del operador =.
N
C float numberOrdered = 908.5F;
TE
float casePrice = 19.99F;
float price = (casePrice * numberOrdered);
int hour = 12;
boolean isOpen = (hour > 8);
Asignacin del valor de retorno de una llamada a mtodo a una variable (este enfoque se
describe posteriormente en el curso).
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Constantes
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
e
OlasMvariables que tienen valores que se pueden cambiar. En
ivexplicado
En esta leccin, se han
n
C
esta seccin,laprender
utilizar constantes para representar valores que no pueden cambiar.
e U ICa O
c
a
G
Supongamos
queO
parte de una aplicacin de programacin y necesita hacer
Or nmero
L estdeescribiendo
referencia alO
meses de un ao. Convierta la variable en una constante mediante el uso
de la palabra
CN clave final para informar al compilador de que no desea que se cambie el valor de
E
la T
variable una vez inicializada. Asimismo, por convencin, asigne al identificador de la constante
un nombre con todas las letras en mayscula y con caracteres de subrayado para separar las
palabras, de forma que sea fcil determinar que es una constante:
final int NUMBER_OF_MONTHS = 12;
Cualquier valor que tienda a cambiar en rara ocasin, si lo llega a hacer, es un buen candidato
para ser una variable constante (por ejemplo, MAX_COUNT, PI, etc.).
Si alguien intenta cambiar el valor de una constante despus de que ya se haya asignado un
valor, el compilador mostrar un mensaje de error. Si modifica el cdigo para proporcionar otro
valor para la constante, tiene que volver a compilar el programa.
Instrucciones para asignar nombres a constantes
Debe asignar nombres a constantes para que se puedan identificar fcilmente. Por norma
general, las constantes deben ir en mayscula, con las palabras separadas con un carcter de
subrayado (_).
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
Nmontn
Memoria de pila
Memoria Ide
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
e o crea
OM
ivliteral
Cuando utiliza un valor
una variable o constante y le asigna un valor, el valor se
n
C
U
almacena en lla
ememoriaICdeOla computadora.
c
a
G que las variables locales se almacenan de forma separada (en la pila) de
r se Lmuestra
En la figura
O
O
los campos O
(en el montn). Los objetos y sus campos y mtodos se suelen almacenar en la
N
memoria
C de montn. La memoria de montn se compone de fragmentos de memoria asignados
TE
dinmicamente
que contienen informacin utilizada para incluir objetos (incluidos sus campos y
mtodos) mientras los necesita el programa. Otras variables se suelen almacenar en la memoria
de pila. La memoria de pila almacena elementos que se utilizan solo durante un breve perodo de
tiempo (menor que la vida de un objeto), como las variables declaradas en un mtodo.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Prueba
La declaracin de variable public int myInteger=10;
cumple la sintaxis de declaracin e inicializacin de variables.
a. Verdadero
b. Falso
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
Respuesta: a
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Operador Ejemplo
Suma
Resta
diff = num1
num2;
Si num1 es 10 y num2
es 2, diff es 8.
Multiplicacin
prod = num1 *
num2;
Si num1 es 10 y num2
es 2, prod es 20.
Comentarios
RIA y
A
IT onl
S
R
/
quot = num1 /
Divisin
La divisin
devuelve
se
u
IVE
num2;
unN
valor
entero
(sin
A
U
N
Si num1 es 31 y num2
resto).
E
N AG
es 6, quot es 5. I
AC ART
D
UN CO C
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Operador Ejemplo
Resto
Comentarios
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
e clculos
OM matemticos, desde simples hasta complejos. Los
ivmuchos
Los programas realizan
n
C
operadores aritmticos
especificar cmo se deben evaluar y combinar los valores
e U Ipermiten
l
COLos operadores
c
numricos
en
las
variables.
matemticos estndar (a menudo llamados
a
G
Or O
LO utilizados en el lenguaje de programacin Java se muestran en las tablas de
operadores
binarios)
esta seccin.
CN
E
T el operador % se conoce como mdulo.
Nota:
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
e
OMes sumar o restar 1 al valor de una variable. Para ello,
Un requisito comn n
eniv
los programas
C
U C+Ode la siguiente forma:
puede utilizar e
el operador
l
I
c
a
age = G
age + 1;
r
O
O OL
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Objetivo
Ejemplo
++
Aumento previo
(++variable)
int i = 6;
int j = ++i;
i is 7, j is 7
Aumento posterior
(variable++)
int i = 6;
int j = i++;
i is 7, j is 6
Notas
El valor i se asigna a
j antes de aumentar i.
Por lo tanto, a j se
asigna 6.
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM en 1 es una accin tan comn que hay operadores
iveo la disminucin
Sin embargo, el aumento
n
C
unarios especficos
O los operadores de aumento (++) y disminucin (). Estos
e U paraICello:
l
c
operadores
pueden
ir
antes
(aumento previo y disminucin previa) o despus (aumento posterior
a
G
Or Oposterior)
LO de una variable.
y disminucin
La lnea
CdeNcdigo de la diapositiva anterior, en la que la edad se aumenta en 1, tambin se
E
T escribir de la siguiente forma:
puede
age++; o ++age;
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Operador
Objetivo
--
Ejemplo
int i = 6;
int j = i--;
i is 5, j is 6
Notas
El valor i se asigna a j
antes de disminuir i. Por
lo tanto, a j se asigna 6.
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM con cuidado. Con la forma de prefijo, la operacin
iveen unaCexpresin
Utilice estos operadores
n
(aumento o disminucin)
e U ICseOaplica antes que cualquier clculo o asignacin siguiente. Con la
l
c
forma dera
sufijo, la operacin
despus de los clculos u operaciones siguientes, de forma
OGoriginal,sey aplica
OutilizaOelLvalor
que se
no el valor actualizado, en los clculos o asignaciones siguientes.
En la tabla
CNse muestran los operadores de aumento y disminucin.
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M el uso bsico de los operadores de aumento y
ive CseOmuestra
En el ejemplo de la n
diapositiva
disminucin: le U
CO
I
c
a
int
count=15;
G
Or OintLOa, b, c, d;
CN a = count++;
E
T
b = count;
c = ++count;
d = count;
System.out.println(a + ", " + b + ", " + c + ", " + d);
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Prioridad de operadores
A continuacin se presenta un ejemplo de la necesidad de
reglas de prioridad.
La respuesta del siguiente problema es 34 o 9?
c = 25 - 5 * 4 / 2 - 10 + 4;
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Prioridad de operadores
Reglas de prioridad:
1. Operadores delimitados por un par de parntesis
2. Operadores de aumento y disminucin
3. Operadores de multiplicacin y divisin, evaluados de
izquierda a derecha
4. Operadores de suma y resta, evaluados de izquierda a
derecha
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM con varios operadores en la misma lnea, cmo
ive compleja
En una sentencia matemtica
n
C
selecciona la lcomputadora
e U ICOel operador que debe utilizar primero? Para realizar operaciones
c
matemticas
consistentes,
G el lenguaje de programacin Java sigue las reglas matemticas
OraenO
LOa la prioridad de los operadores. Los operadores se procesan en el siguiente
estndar
cuanto
orden: CN
T
1. EOperadores delimitados por un par de parntesis
2. Operadores de aumento y disminucin
3. Operadores de multiplicacin y divisin, evaluados de izquierda a derecha
4. Operadores de suma y resta, evaluados de izquierda a derecha
Si en una sentencia aparecen sucesivamente operadores matemticos estndar con la misma
prioridad, los operadores se evalan de izquierda a derecha.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
El resultado real de la expresin cuando se evala segn las reglas de prioridad, indicadas
por los parntesis: 9
c = 25 - ((5 * 4) / 2)) - 10 + 4;
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Uso de parntesis
Ejemplos:
c
c
c
c
c
c
=
=
=
=
=
=
(((25 - 5) * 4) / (2 - 10)) + 4;
((20 * 4) / (2 - 10)) + 4;
(80 / (2 - 10)) + 4;
(80 / -8) + 4;
-10 + 4;
-6;
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM con las reglas de prioridad. Sin embargo, debe utilizar
iveautomticamente
La expresin se evaluar
n
C
U CO la estructura que desea:
parntesis para
eproporcionar
l
I - 5) * 4) / (2 - 10)) + 4;
c
a
c = (((25
G
r
O
O Oc L= ((20 * 4) / (2 - 10)) + 4;
CN c = (80 / (2 - 10)) + 4;
E
T
c = (80 / -8) + 4;
c = -10 + 4;
c = -6;
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ve C
OM a otra variable puede producir que no coincidan los
ivariable
La asignacin de una
o expresin
n
tipos de dato ldel
clculo y O
ubicacin de almacenamiento que utiliza para guardar el resultado.
eU
C lareconocer
I
c
En concreto,
el
compilador
que se perder la precisin y no permitir compilar el
a
G
Or oO
LO
programa,
bien
el resultado ser incorrecto. Para corregir este problema, los tipos de variables
se tienen
que ampliar a un tipo de tamao mayor o convertir el tipo en un tipo de tamao menor.
CN
E
Tejemplo, considere la siguiente asignacin:
Por
int num1 = 53; // 32 bits of memory to hold the value
int num2 = 47; // 32 bits of memory to hold the value
byte num3; // 8 bits of memory reserved
num3 = (num1 + num2); // causes compiler error
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Este cdigo debe funcionar, porque byte, aunque es menor que int, es lo suficientemente
grande para almacenar un valor 100. Sin embargo, el compilador no realizar esta asignacin y,
en su lugar, emitir un error de posible prdida de precisin porque un valor byte es menor que
un valor int. Para corregir este problema, puede convertir el tipo del tipo de dato de la derecha
para que coincida con el tipo de dato de la izquierda, o bien declarar la variable de la izquierda
(num3) para que sea un tipo de dato mayor, como int.
Para corregir este problema, se debe cambiar num3 a int:
int num1 = 53;
int num2 = 47;
int num3;
num3 = (num1 + num2);
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Ampliacin
Ampliaciones automticas:
Si asigna un tipo ms pequeo a un tipo mayor.
Si asigna un tipo integral a un tipo de coma flotante.
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM cambia el tipo de una variable a un tipo que soporta un
ive el compilador
En algunas circunstancias,
n
C
U C
Oaccin se denomina ampliacin. Algunas ampliaciones las realiza
valor de tamao
Esta
e mayor.
l
I
c
automticamente
el
compilador
si los datos no se pierden al hacerlo. Las ampliaciones se
a
G
Or OLO
producen:
N un tipo ms pequeo (a la derecha de =) a un tipo mayor (a la izquierda de =).
SiCasigna
E
T
Si asigna un tipo integral a un tipo de coma flotante (porque no hay ningn decimal que se
pueda perder).
El siguiente ejemplo contiene un literal (int) que se ampliar automticamente a otro tipo (long)
antes de que se asigne el valor (6) a la variable (big del tipo long).
long big = 6;
Puesto que 6 es un tipo int, la ampliacin funciona porque el valor int se convierte a un valor
long.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Atencin: antes de que se asigne a una variable, el resultado de una ecuacin se coloca en una
ubicacin temporal de la memoria. El tamao de la ubicacin siempre es igual al tamao de un
tipo int o al tamao del tipo de dato mayor utilizado en la expresin o sentencia. Por ejemplo, si
la ecuacin multiplica dos tipos int, el tamao del contenedor ser un tipo int en cuanto al
tamao o de 32 bits.
Si los dos valores que multiplican producen un valor que est ms all del mbito de un tipo int,
(como 55555 * 66666 = 3.703.629.630, que es demasiado grande para encajar en un tipo int), el
valor int se debe truncar para que encaje el resultado en la ubicacin temporal de la memoria.
Este clculo finalmente produce una respuesta incorrecta porque la variable de la respuesta
recibe un valor truncado (independientemente del tipo utilizado para la respuesta).
Para solucionar este problema, defina al menos una de las variables de la ecuacin en el tipo
long para asegurar el mayor tamao de contenedor temporal posible.
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Conversin de tipo
Sintaxis:
identifier = (target_type) value
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M de un valor. Para ello, lo corta literalmente hasta un
ve CelOrango
idisminuye
La conversin de tipo
n
U CelO
tamao menorey cambia
tipo del valor (por ejemplo, convierte un valor long en un valor int).
l
I
c
Esto permite
utilizar
mtodos
que acepten solo determinados tipos como argumentos, de forma
a
G
Ovalores a una
Or asignar
L
que pueda
variable de un tipo de dato menor o de forma que pueda ahorrar
O
memoria.N
Ponga target_type (el tipo al que se va a convertir el tipo) entre parntesis delante
EC cuyo tipo est cambiando. La sintaxis para convertir el tipo de un valor es la
del
Telemento
int num1 = 53; // 32
int num2 = 47; // 32
byte num3; // 8 bits
num3 = (byte)(num1 +
siguiente:
donde:
identifier es el nombre asignado a la variable.
value es el valor que desea asignar al identificador.
(target_type) es el tipo al que desea convertir el valor. Tenga en cuenta que
target_type debe estar entre parntesis.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
El error del compilador se corrige mediante la conversin del tipo del resultado a byte.
int num1 = 53; // 32
int num2 = 47; // 32
byte num3; // 8 bits
num3 = (byte)(num1 +
Atencin: utilice la conversin de tipo con cuidado. Por ejemplo, si se utilizaron nmeros
mayores para num1 y num2, la conversin de tipo a byte truncar parte de los datos, lo que
producir una respuesta incorrecta.
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Conversin de tipo
Ejemplos:
int myInt;
long myLong = 99L;
myInt = (int) (myLong); // No data loss, only zeroes.
// A much larger number would
// result in data loss.
int myInt;
long myLong = 123987654321L;
myInt = (int) (myLong); // Number is "chopped"
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M
iveson C
Otros posibles problemas
losO
siguientes:
n
int
e UmyInt;
l
CO
I
c
a
G
myLong = 99L;
O
Or Olong
L
= (int) (myLong); // No data loss, only zeroes.
N myInt
C
//
A
much
larger number would
TE
// result in data loss.
int myInt;
long myLong = 123987654321L;
myInt = (int) (myLong); // Number is "chopped"
Si convierte el tipo de un valor float o double con una parte de fraccin a un tipo entero como
int, se perdern todos los valores decimales. Sin embargo, este mtodo de conversin de tipo a
veces resulta til si desea truncar el nmero para reducirlo al nmero entero (por ejemplo, 51,9 se
convierte en 51).
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
a, b, c;
;
;
+ b ; //compiler error
int c;
Convertir el tipo del resultado de (a+b) en la lnea de RIA
A ly
T
asignacin:
I
n
S
R se o
E
IV A u
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M
O
ive Java
El compilador de tecnologa
realiza determinadas suposiciones cuando evala expresiones.
n
C
O
Debe comprender
para realizar las conversiones de tipo adecuadas y otras
e UestasICsuposiciones
l
c
adaptaciones.
a
G
O
Or OLintegrales
Tipos de dato
y operaciones
N
La mayora
EC de las operaciones dan como resultado int o long:
T
Los valores byte, char y short se amplan a int antes de la operacin.
c = (short)(a+b);
Si alguno de los argumentos es del tipo long, el otro tambin se ampla a long y el
resultado es del tipo long.
byte b1 = 1, b2 = 2, b3;
b3 = b1 + b2;
// Error: result is an int but b3 is a byte
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
En el siguiente ejemplo, se produce un error porque dos de los tres operandos (a y b) se amplan
automticamente de un tipo short a un tipo int antes de que se sumen:
short
a = 1
b = 2
c = a
a, b, c;
;
;
+ b ; //compiler error
En la ltima lnea, los valores a y b se convierten a tipos int y los valores convertidos se suman
para proporcionar un resultado int. A continuacin, el operador de asignacin (=) intenta asignar
el resultado int a la variable short (c). Sin embargo, esta asignacin no es vlida y produce un
error del compilador.
El cdigo funciona si realiza lo siguiente:
Declarar c como int en la declaracin original:
int c;
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M por defecto en int en determinadas circunstancias,
ive CseOdefinen
Al igual que los tiposnintegrales
U aC
los valores asignados
O de coma flotante siempre se definen por defecto en un tipo double,
e
l
I tipos
c
a menosra
que indique
especficamente
que el valor es de tipo float.
G
O
O
L
Por ejemplo,O
la siguiente lnea provoca un error del compilador. Puesto que se supone que 27.9
N
es un tipo
double,
se produce un error del compilador porque un valor de tipo double no puede
C
E
T en una variable float.
encajar
float float1 = 27.9;//compiler error
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Ejemplo
public class Person {
public int ageYears = 32;
public void calculateAge() {
int ageDays = ageYears * 365;
long ageSeconds = ageYears * 365 * 24L * 60 * 60;
System.out.println("You are " + ageDays + " days old.");
System.out.println("You are " + ageSeconds + " seconds
old.");
RIA y
A
SIT e onl
R
} // end of calculateAge method
IVE A us
N
U EN
} // end of class
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OMde esta seccin para calcular la edad de una persona en
ive principios
El ejemplo de cdigo
utiliza
n
C
das y segundos.
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Prueba
Qu afirmacin es verdadera?
a. Hay ocho tipos primitivos incorporados en el lenguaje de
programacin Java.
b. byte, short, char y long son los cuatro tipos de dato
primitivos integrales del lenguaje de programacin Java.
c. Una variable de tipo boolean contiene true, false y
nil.
d. long=10; es un nombre de variable vlido que cumple la
sintaxis de declaracin e inicializacin de variables.
RIA
A ly
T
I
S e on
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
Respuesta: a
n
e U ICO
a es correcta.
l
c
raincorrecta.
O
b es
OGDebe ser byte, short, int y long.
L
O porque una variable de tipo boolean solo contiene true y false.
c esN
incorrecta
C
Ed es incorrecta porque la palabra long es una palabra clave reservada.
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Resumen
En esta leccin, debe haber aprendido lo siguiente:
Identificar los usos de las variables y definir la sintaxis de
una variable
Enumerar los ocho tipos de dato primitivos del lenguaje de
programacin Java
Declarar, inicializar y utilizar variables y constantes segn
las instrucciones del lenguaje de programacin Java y los
estndares de codificacin
Modificar valores de variables mediante operadores
RIA y
A
SIT e onl
Utilizar la ampliacin y la conversin
R
de tipo
IVE us
N NA
U
N AGE
I
AC ART
D
UN CO C
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Objetivos
Al finalizar esta leccin, debera estar capacitado para:
Declarar, instanciar e inicializar variables de referencia de
objetos
Comparar cmo se almacenan las variables de referencia
de objetos en relacin con las variables primitivas
Acceder a campos de objetos
Llamar a mtodos de objetos
Crear un objeto String
Manipular datos mediante la clase String y sus mtodos
IA
Manipular datos mediante la clase StringBuilder y sus AR
y
T
l
I
n
mtodos
RS se o
E
IV A u
Utilizar la documentacin de la
N
U EN
N
API de Java para explorar los
I
AG
T
mtodos de una clase base AC
R
ND O CA
U
F LC
d
Copyright 2011, Oracle
y/o sus filiales.
Todos los derechos reservados.
n
A
a
N
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
El control remoto es como la
IVE A us
referencia utilizada para
N
U EN
acceder a la cmara (objeto).
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OqueMacceder a l a travs de una referencia. Una buena
ive tiene
Para trabajar con unnobjeto,
C
Ude unCcontrol
O remoto para manejar un dispositivo electrnico. Los botones del
analoga es elle
uso
I
c
control remoto
se
pueden
utilizar
para modificar el funcionamiento del dispositivo (en este caso,
a
G
Or OPor
LOejemplo, puede utilizar el control remoto para que la cmara se pare,
una cmara).
reproduzca
CNo grabe al interactuar con el control remoto.
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Clase Shirt
public class Shirt {
public int shirtID = 0; // Default ID for the shirt
public String description =
"-description required-"; // default
// The color codes are R=Red, B=Blue, G=Green, U=Unset
public char colorCode = 'U';
public double price = 0.0; // Default price all items
// This method displays the details for an item
public void display() {
System.out.println("Item ID: " + shirtID);
System.out.println("Item description:" +
description);
System.out.println("Color Code: " + colorCode);
System.out.println("Item price: " + price);
} // end of display method
} // end of class
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
e aOunMobjeto simple basado en la clase Shirt mostrada en la
ielvacceso
En este tema se trata
n
C shirtID, description, colorCode y price, y un mtodo,
U
diapositiva. Tiene
cuatro
campos,
O
e enIcuenta
C que los mtodos se suelen escribir de esta forma, con el nombre
clTenga
display().
a
G
r
O seguido
LOpor un par de parntesis para indicar que es un mtodo.
de mtodo
O
N que el mtodo anteriormente denominado displayInformation() ahora se
Puede C
observar
E
T
denomina
solo display(). Aunque normalmente es mejor dar a los mtodos nombres ms
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Instanciacin:
new Classname();
Asignacin:
Object reference
RIA y
A
SIT e onl
R
E us
IlaVasignacin
Operador
Identificador
N
Para realizar
A a una
U
N
de
del paso de
referencia,
la
creacin
y
asignacin
E
N estarAenGla mismalasentencia.
asignacin
declaracin
deben
I
AC ART
D
UN CO C
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
e una
OM
ivobtener
Existen tres pasos para
referencia de objeto:
n
C
U
1. Declararle
la referencia.
CO
I
c
a
G
r LelOobjeto.
2. O
Instanciar
3. Asignar
NOel objeto a la referencia.
C
Tenga
TE en cuenta que, como se indica en la diapositiva, el funcionamiento del operador de
=
new Classname();
asignacin (smbolo =) necesita que la referencia y el objeto recin creado estn en la misma
sentencia. (Las sentencias acaban con el smbolo de punto y coma y no son lo mismo que lneas.
El final de una lnea no significa nada para el compilador Java; solo ayuda a que el cdigo se
pueda leer mejor).
El operador de asignacin para asignar objetos a referencias es exactamente el mismo que el
operador de asignacin para asignar valores primitivos. No lo confunda con el smbolo ==
(igualdad). Aprender ms tarde para qu se utiliza el smbolo de igualdad en Java.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Declarar una
referencia para
el objeto.
2
Crear la instancia
del objeto.
Shirt myShirt;
myShirt =
new Shirt();
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M
ive C
La declaracin e inicializacin
deO
una variable de referencia es muy similar a la declaracin e
n
U variable
inicializacin lde
e una
COde tipo primitivo.
I
c
a
G
La principal
diferencia
es que debe crear una instancia del objeto (de una clase) para que la
Or O
LO apunte
variable de referencia
a ella antes de inicializar la instancia del objeto.
N
C instanciar e inicializar una variable de referencia de objeto:
ParaE
declarar,
T
1. Declare una referencia al objeto y especifique su identificador y el tipo de objeto al que
3
Asignar el
objeto a la
variable de
referencia.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Obtener el valor
del campo
shirtId del
objeto.
RIA y
A
IT onl
S
R
Llamar al
E use
V
I
mtodo
N NA
display()
U
N AGE
del objeto.
I
AC ART
D
UN CO C
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M importantes. Observe cmo la primera lnea declara e
Opuntos
ivealgunos
En el diagrama se ilustran
n
C
O en una sola lnea (frente a dos lneas en la diapositiva anterior).
inicializa la referencia
e U deICobjeto
l
c
a
G
ObservertambinO
uso del operador de punto (.) con una referencia de objeto para manipular
O para
L elllamar
los valores oO
a los mtodos de un objeto concreto. En el ejemplo de la diapositiva se
N
utiliza la
Cnotacin de puntos para acceder a un campo del objeto, en este caso mediante su
TE a una variable denominada shirtId.
asignacin
La lnea final de cdigo del ejemplo muestra el uso de la notacin de puntos para llamar a un
mtodo en el objeto.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
1
Coger el control
remoto para
obtener acceso
a la cmara.
myShirt.display();
RIA y
A
SIT e onl
2
R
2
VE A us
Llamar a un mtodo
I
Pulsar los controles
N
para que el U
objeto Shirt N
remotos para que la
N
haga
algo. GE
cmara haga algo.
I
C RTA
A
ND O CA
U
F LC
d
Copyright 2011, Oracle
y/o sus filiales.
Todos los derechos reservados.
n
A
a
N
ity FE
s
r
e uso deOunMcontrol remoto para manejar un dispositivo electrnico.
ivdel
Volvamos a la analoga
n
C
O
Para manejarle
un U
dispositivo
electrnico con un control remoto, necesita:
IC (y posiblemente encenderlo)
cel controlGremoto
a
1. Coger
r
O
O unLbotn
2. PulsarO
del control remoto para hacer algo en la cmara
N
C
Igualmente,
TE para hacer algo con un objeto Java, necesita:
1.
2.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
remote2
Solo hay
un objeto
Camera.
RIA y
A
SIT e onl
remote1
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM importante del funcionamiento de las referencias. En este
ive otroCaspecto
En el diagrama se muestra
n
ejemplo, se crea
un objetoO
Camera y la referencia se asigna a una referencia de Camera,
eU
l
ICesta
c
remote1.ra
A continuacin,
referencia se asigna a otra referencia de Camera, remote2. Ahora
G
Oestn asociadas
Oreferencias
L
ambas
al mismo objeto Camera y los mtodos llamados en
O
N
cualquiera
C de las referencias afectarn al mismo objeto Camera.
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Televisor
Control remoto
del televisor
Videocmara
RIA y
A
IT onl
S
R
Control remoto
E use
V
de la videocmara
I
N NA
U
N AGE
I
AC ART
D
UN CO C
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M
O
iveun poco
Para ampliar la analoga
ms, para trabajar con otro objeto (por ejemplo, un televisor de
n
C
U CunOcontrol remoto para dicho objeto. En el mundo de Java, necesita una
pantalla plana),
enecesita
l
I para el objeto al que hace referencia.
c
referencia
del tipo correcto
a
G
r
O
O OelL hecho de que existen los controles remotos universales, aunque ms adelante
Puede ignorar
en el curso
CNdescubrir que Java tambin tiene el concepto de referencias que no se limitan a un
E
T tipo de objeto. Por el momento, digamos simplemente que una referencia del mismo tipo
nico
que un objeto es uno de los tipos de referencias que se pueden utilizar y que es un buen punto de
partida para explorar el mundo de los objetos Java.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
El tipo de
referencia es Shirt.
El tipo de objeto
es Shirt.
RIA y
A
SIT e onl
R
El tipo de referencia
El tipo de objeto
IVE A us
N
es Trousers.
es Trousers.
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM se muestran objetos a los que se accede con tipos de
ivede la diapositiva
En el cdigo de ejemplo
n
C
referencias coincidentes.
e U ICO
l
c
En el ejemplo,
el tipo
Gde referencia Shirt se utiliza para hacer referencia a un objeto Shirt y un tipo
Ora OTrousers
LO se utiliza para hacer referencia a un objeto Trousers.
de referencia
Posteriormente,
CN ver que el tipo de la referencia no tiene que ser idntico al tipo del objeto, sino
E
T tiene que ser compatible con l. Esta flexibilidad es un gran punto fuerte de Java y aprender
que
ms sobre ella en la leccin titulada Descripcin de conceptos orientados a objetos avanzados.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
0x034009
Pila
12
15.99
B
shirtID
Montn
price
colorCode
IA
R
A
shirtID
y
myShirt
T
0x034009
12
l
I
n
price
RS se o
15.99
E
0x99f311
yourShirt
IV A u
colorCode
B
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM
ive cmo
En este diagrama senmuestra
las referencias apuntan a un objeto concreto en memoria.
C
U
Tenga en cuenta
hay dos
en memoria, aunque ambos son de tipo Shirt. Tenga
le que
COdosobjetos
Ihay
ccuenta
tambinren
que
referencias Shirt que apuntan a estos dos objetos Shirt.
a
G
O se muestran dos tipos de memoria que utiliza Java: la pila y el montn.
O OLtambin
En el diagrama
N variables locales, primitivas o tipos de referencia, mientras que el montn
La pilaC
contiene
E
T objetos. Ms adelante en este curso, aprender un poco ms sobre las variables locales,
contiene
counter
10
0x99f311
pero por el momento es suficiente saber que las variables locales no son campos de un objeto.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
myShirt = yourShirt;
12
15.99
B
IA
R
A
shirtID
y
myShirt
T
0x99f311
12
l
I
n
price
RS se o
15.99
E
0x99f311
yourShirt
IV A u
colorCode
B
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM si la referencia myShirt, despus de tener su propio
ive quCsucede
En el diagrama se muestra
n
U C
objeto (en la diapositiva
O se asigna ahora a la referencia yourShirt. Cuando esto
e
l
I anterior),
c
sucede, rlaareferenciaG
myShirt
dejar su objeto actual y se reasignar al mismo objeto que tiene
O OComo
yourShirt.
LO resultado, dos referencias, myShirt y yourShirt, apuntan ahora al mismo
objeto.C
SeN
puede acceder a cualquier cambio en el objeto realizado con una referencia mediante
E
la T
otra referencia, y viceversa.
counter
10
0x99f311
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
Salida del fragmento de cdigo:
IVE A us
N
U EN
Shirt color: G
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M
O
ive qu
Este ejemplo ahora n
muestra
sucede si utiliza una de las referencias para realizar un cambio u
C
U objeto.
obtener un valor
OLas referencias yourShirt y myShirt hacen referencia al mismo
e del
l
Cun
I
c
objeto, por
lo
que
realizar
cambio u obtener un valor de campo con una es exactamente igual
a
G
Or O
LlaOotra.
que hacerlo
con
CN
E
T
System.out.println("Shirt color: " + myShirt.colorCode);
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
myShirt.colorCode = 'R';
yourShirt.colorCode = 'G';
12
15.99
B
IA
R
A
shirtID
y
myShirt
T
0x99f311
12
l
I
n
price
RS se o
15.99
E
0x99f311
yourShirt
IV A u
colorCode
G
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
e
OM
iyvyourShirt
Puesto que myShirt
ahora hacen referencia al mismo objeto despus de que
n
C
U
termine el cdigo
colorCode del objeto ser G. Y, por supuesto,
le deGlaIdiapositiva,
COsi utilizael campo
obtendrra
elc
mismo resultado
un cdigo de los siguientes:
OSystem.out.println(myShirt.colorCode);
LO
O
N
CSystem.out.println(yourShirt.colorCode);
E
T
Volviendo
al ejemplo del control remoto del televisor, es lo mismo que si usted y un amigo hacen
counter
10
0x99f311
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Prueba
Cul de las siguientes lneas de cdigo instancia un objeto
Boat y lo asigna a una referencia de objeto sailBoat?
a. Boat sailBoat = new Boat();
b. Boat sailBoat;
c. Boat = new Boat()
d. Boat sailBoat = Boat();
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
Respuesta: a
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Clase String
La clase String soporta alguna sintaxis no estndar.
Se puede instanciar un objeto String sin utilizar la palabra
clave new; se prefiere esto:
String hisName = "Fred Smith";
Se puede utilizar la palabra clave new, pero no se
recomienda:
String herName = new String("Anne Smith");
N AGE
I
AC ART
D
UN CO C
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M clases incluidas en las bibliotecas de clases Java. La
e de lasOmuchas
ivuna
La clase Stringnes
C
clase String
de almacenar una secuencia de caracteres. Utilizar
e Uproporciona
l
CO la capacidad
I
c
la clase
String
frecuentemente
en
sus
programas. Por lo tanto, es importante comprender
a
G
r LO
O
algunas de
las caractersticas especiales de las cadenas en el lenguaje de programacin
NO
Java.
C
EAl crear un objeto String con la palabra clave new, se crean dos objetos String en memoria,
T
mientras que al crear un objeto String con un literal string, se crea solo un objeto; por lo
tanto, esta ltima prctica es ms eficaz en cuanto a la memoria. Para evitar la duplicacin
innecesaria de objetos String en memoria, cree los objetos String sin la palabra clave new.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Concatenacin de cadenas
Cuando utiliza un literal de cadena en el cdigo Java, se
instancia y se convierte en una referencia String.
Concatenar cadenas:
String name1 = "Fred"
theirNames = name1 + " and " +
"Anne Smith";
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M
ive el C
Los objetos String soportan
usoO
de un operador de concatenacin especial (+) para la
n
Ocadenas. Puesto que una cadena de literales devuelve una
concatenacin
edeUdos oICms
l
c
referencia
String,
los
literales
de cadena y las referencias String se pueden mezclar en una
a
G
O un nmero
Or que
L
expresin
concatena
de cadenas, como se muestra en la diapositiva.
O
N
C
TE
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Concatenacin de cadenas
0x034009
Hello
RIA y
A
myString
0x034009
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M
ive ClaOconcatenacin
Puesto que String es
inmutable,
de dos cadenas necesita la creacin de una
n
U
nueva cadena.
le GICO
c
a
En el diagrama
Or OLseOmuestra un objeto String que contiene la cadena Hello.
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Concatenacin de cadenas
0x034009
RIA y
A
myString
0x99f311
SIT e onl
R
"Hello World"
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM a la cadena original. Aqu se utiliza el mtodo
ive concatenada
Aqu est a cadena n
World
C
concat(), pero
tanto si utiliza
O ste mtodo como el operador de concatenacin (+), se crea un
eU
l
Cdevuelve
I
c
nuevo objeto
String
y
se
una nueva referencia String que apunta a este nuevo objeto.
a
G
r LO
O
En el diagrama,
O esto se muestra con el hecho de que la referencia String myString ya no es
N
0x034009
C y porque ya no se hace referencia a ese objeto, ahora es inaccesible y ser basura
TE
recopilada.
0x99f311
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Concatenacin de cadenas
String myString = "Hello";
myString = myString.concat(" World");
myString = myString + "!"
0x99f311
RIA y
A
myString
0x74cd23
SIT e onl
R
"Hello World!"
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM esta vez con el operador de concatenacin, vuelve a
iveotraCcadena,
Finalmente, al concatenar
n
suceder lo mismo.
e USe crea
l
COun nuevo objeto y la referencia de este objeto se asigna a myString.
I
c
a
G
Or OLO
CN
E
T
0x74cd23
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM
ive laC
Como la mayora denclases,
clase
String tiene una serie de mtodos tiles. Casi todos estos
U
O
mtodos hacen
til con la devolucin de un nico valor (Java solo permite un nico
esu trabajo
lmtodo).
Ctipo
I
c
retorno de
un
El
de retorno (esencialmente el tipo del mtodo) puede ser primitivo o
a
G
Or OLa O
una referencia
un objeto.
Para poder
CNutilizar el valor de retorno en el cdigo, normalmente utilizar el operador de
E
T
asignacin
para asignar el valor (o la referencia) a un tipo que haya declarado para este objetivo.
El ejemplo de la diapositiva muestra el uso de la referencia hello para llamar al mtodo
length(). Puesto que el objeto al que hace referencia esta referencia es la cadena Hello
World, esta llamada a mtodo devolver el valor 11 y lo colocar en la variable stringLength.
int es el tipo de la llamada a mtodo length().
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM
ive varias
En este ejemplo se n
muestran
llamadas a mtodo que devuelven referencias de objetos.
C
U
En primer lugar,
le se instancia
COel objeto de cadena " HOW " y se llama a trim en l. A medida
I
c
a
G
que un literal
una referencia de objeto, es exactamente lo mismo que llamar
Oen la devuelve
Or OdeLcadena
al mtodo trim()
referencia. Observe que la cadena " HOW " tiene dos espacios a
N de la palabra. La cadena devuelta ser solo de tres caracteres porque estos
ambosC
lados
E
T se eliminarn. Se har referencia a esta cadena nueva mediante greet.
espacios
En el siguiente ejemplo se muestra una llamada a mtodo que no se asigna a un tipo, sino que
simplemente se utiliza en una expresin. Se llama a toLowerCase() en la cadena "DY", que
devuelve "dy". lc ahora hace referencia a un objeto que contiene "HOWdy".
Finalmente, observe cmo una versin alternativa con parntesis garantiza que las dos cadenas
estn concatenadas (creando una nueva cadena) antes de que se llame a toLowerCase(). lc
ahora hace referencia a un objeto que contiene "howdy".
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Transferir un objeto
boolean endWorld =
"Hello World".endsWith("World");
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM transferir un argumento al mtodo.
ive necesitan
Algunas llamadas a n
mtodos
C
U substring()
O
Por ejemplo, lelemtodoIC
que se muestra en el ejemplo necesita un ndice (int)
c
a
G
r
para indicar
dnde
dividir
la
cadena.
Devuelve
nueva cadena que consta de la parte restante
O que
LOempieza en W, por lo que enuna
de la cadenaO
este caso devuelve "World". (La subcadena se
N de 0, empieza con el carcter del ndice especificado y se ampla hasta el final de
indexaC
a partir
E
T cadena. W est en el ndice 6).
esta
El mtodo endsWith() necesita que se transfiera una referencia String como argumento.
Devuelve un valor boolean porque simplemente determina si la cadena finaliza con la secuencia
de caracteres transferidos. En este caso lo hace, por lo que se devolver true.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M
Ocontienen
ive Java
Todos los JDK de tecnologa
una serie de clases escritas previamente que puede
n
C
U
O bibliotecas de clases de tecnologa Java se incluyen en la
utilizar en loslprogramas.
Estas
e
Cde
I
c
documentacin
de
la
API
Java para la versin del JDK que utiliza. La especificacin de
a
G
Or deOclases
LO es una serie de pginas web HTML que puede cargar en el explorador web.
biblioteca
Una especificacin
de biblioteca de clases Java es un documento muy detallado que describe las
CN
E
T de la API. Cada API incluye documentacin que describe el uso de las clases, as como
clases
sus campos y mtodos. Cuando busca una forma de realizar un determinado juego de tareas,
esta documentacin es la mejor fuente de informacin sobre las clases desarrolladas previamente
en las bibliotecas de clases Java.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
En este panel se
muestran detalles sobre la
clase seleccionada.
IA
R
A
Segn lo que
y
T
l
I
n
seleccione, aqu se
RS se o
E
muestran las clases
IV A u
de un paquete
N
U EN
concreto o todas las
N
clases.
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM puede ver los tres paneles principales de la pgina
ivede laCdiapositiva,
En la captura de pantalla
n
web.
e U ICO
l
c
a O
G permite seleccionar un paquete. Las clases Java se organizan en
El panelrsuperior
derecho
O
L
paquetes, pero
O si no sabe el paquete de una clase concreta, puede seleccionar All Classes.
N
El panel
ECinferior izquierdo ofrece la lista de clases de un paquete, o bien todas las clases si ha
T
seleccionado la opcin correspondiente. En este panel, se ha seleccionado la clase String,
rellenando el panel principal de la derecha con los detalles de la clase String.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
e contiene
OM mucha informacin sobre la clase, por lo que tiene que
El panel principal denlaiv
derecha
C
O acceder a la informacin que necesita.
desplazarse hacia
e UabajoICpara
l
c
a
G
Or OLO
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Tipo del
parmetro que se
debe transferir al
mtodo.
Tipo del mtodo
(tipo que se
devuelve).
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
e los detalles
OM de la clase String, llegar a la lista de mtodos (aqu solo
ivpor
Si sigue desplazndose
n
C
U C
O de esta lista).
se muestra unle
pequeo
subjuego
I
c
a
G
Esta lista
de mtodos proporciona los detalles bsicos del mtodo. En este caso, puede
Omtodo
Or maestra
L
ver que el tipo
de
se llama charAt(), su tipo es char y necesita que se transfiera un
O
ndice C
(deN
tipo int). Tambin hay una breve descripcin que indica que este mtodo devuelve el
TEchar en un ndice concreto de la cadena.
valor
Nombre del
mtodo.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
e
OM
ivmtodos,
Para cualquiera de los
se
hiperenlazan el nombre de mtodo y los tipos de parmetros
n
C
U
para que pueda
obtener ms
En este ejemplo, se muestra la descripcin detallada
lemtodos
CO informacin.
I
c
de uno de
los
indexOf()
de
String.
a
G
Or OLO
CN
E
T
Se muestran ms
detalles sobre los
parmetros y el valor
de retorno en la lista de
mtodo.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Mtodos System.out
Para encontrar todos los detalles de
System.out.println(), considere lo siguiente:
System es una clase (en java.lang).
out es un campo de System.
out es un tipo de referencia que permite llamar a
println() en el tipo de objeto al que hace referencia.
Para buscar la documentacin:
I
nl
S
o
R
2. Vaya a la documentacin de dicho campo.E
se
V
u
I
3. Revise los mtodos disponibles. N UN ENA
I TAG
C
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M
O
ive se
En las siguientes diapositivas
muestra cmo puede utilizar la documentacin de la API de Java
n
C
Uinformacin
para obtener ms
O sobre System.out.println(). Como ver, esto es poco
e
l
C
I
c
comn, porque
la
clase
cuyos
mtodos necesita investigar no es System. En su lugar, es la clase
a
G
Oelr tipoOdel
que es
campo out del objeto System.
LO
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Algunos de los
mtodos de
PrintStream
RIA y
A
El campo out de System es
SIT e onl
R
de tipo PrintStream.
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M
O
ive Field
En el diagrama se muestra
Summary para la clase System. Aqu, puede ver que
n
C
Uun campo
efectivamentee
hay
out y que es de tipo PrintStream. Al hacer clic en
l
CO llamado
I
c
PrintStream,
ahora
puede
ver
los
detalles
esa clase y, si se desplaza hacia abajo hasta
a
G
Oencontrar (entre muchos de
OrSummary,
Method
otros mtodos) el mtodo print() y el mtodo
L
NO
println().
C
TE
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Mtodo println:
System.out.println(data_to_print);
Ejemplo:
System.out.print("Carpe diem ");
System.out.println("Seize the day");
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ve COM
iSystem.out
Tenga en cuenta que
es de tipo PrintStream, pero PrintStream no es solo
n
U
OEs solo que el valor por defecto para este campo es una referencia a
para imprimirlen
e la consola.
Cque
I
c
un objeto
PrintStream
una salida en la consola, pero puede cambiar la referencia
a
G
r que
Ola salida vayamuestra
Odesea
out si
a otro lugar.
L
NOentre el mtodo print() y el mtodo println() es que print() no crea una
La diferencia
C
TE lnea despus de imprimir String, mientras que println() s lo hace. Por consiguiente,
nueva
en el ejemplo de la diapositiva, Seize the day aparece en la misma lnea que Carpe
diem.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Clase StringBuilder
StringBuilder proporciona una alternativa variable a String.
StringBuilder:
Es una clase normal. Utilice new para instanciarla.
I
AG
C
T
StringBuilder.
DA AR
UN CO C
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OMmtodo abreviado para instanciar la clase StringBuilder.
ivnoehay ningn
A diferencia de String,
n
C
U Ccomo
Simplemente se
O cualquier otro objeto mediante el uso de la palabra clave new.
e instancia
l
I
c
StringBuilder
no
es
una
sustitucin
de String, pero es ms adecuada si es probable que
a
G
O modificaciones completa
Or muchas
L
se realicen
en la cadena representada por el tipo de dato.
NO
C
TE
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
de nuevos
objetos
0x99f311
RIA y
A
myString
0x74cd23
SIT e onl
R
"Hello World"
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ve unCrecordatorio
OM
iofrece
En esta diapositiva se
de lo que sucede cuando las cadenas "Hello" y "
n
U
World" se concatenan.
le GICSeOcrea un nuevo objeto String y la referencia de ese objeto se asigna a
c
myString.
a
Or OLO
CN
E
T
0x74cd23
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
0x034009
"Hello"
RIA y
A
mySB
0x034009
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OMde una secuencia que implica un objeto StringBuilder. Se
ive elCinicio
En este diagrama senmuestra
UobjetoCStringBuilder,
instancia un nuevo
relleno con la cadena "Hello" y la referencia de este
O
e
l
I
c
nuevo objeto
se
asigna
a
mySB.
a
G
Or OLO
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Adicin de StringBuilder
0x034009
"Hello World"
RIA y
A
mySB
0x034009
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M lo que tiene que hacer es llamar al mtodo append() y
e
Otodo
ivWorld,
Para agregar la cadena
n
C
transferir World.
Ocuenta que no es necesaria ninguna asignacin porque ya hay una
e UTenga
l
Cen
I
c
referencia
al
objeto
StringBuilder
y este objeto StringBuilder ahora contiene una representacin
a
G
r
O
de lasO
cadenasLcombinadas
"Hello World".
O
InclusoC
siN
asign el tipo de retorno del mtodo append() (que es StringBuilder), seguir sin
TEningn costo de creacin de objeto; el mtodo append() modifica el objeto actual y
haber
devuelve la referencia a ese objeto, el que ya se incluye en mySB. (Esto puede resultar til para
saber si se utiliza la llamada a mtodo completa como tipo).
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Prueba
Cules de las siguientes afirmaciones son ciertas?
(Seleccione todas las respuestas posibles).
a. El operador de punto (.) crea una nueva instancia de
objeto.
b. La clase String proporciona la capacidad de almacenar
una secuencia de caracteres.
c. La especificacin de la API de Java contiene
documentacin para todas las clases de un producto de
tecnologa Java.
RIA y
A
d. Los objetos String no se pueden modificar.
SIT onl
R se
E
V
u
I
N
A
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
e
OM
Respuesta: b, c, d niv
C
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Resumen
Se accede a los objetos a travs de referencias:
Los objetos son versiones instanciadas de su clase.
Los objetos constan de atributos y operaciones:
En Java, son campos y mtodos.
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Objetivos
Al finalizar esta leccin, debera estar capacitado para:
Utilizar un operador relacional
Probar la igualdad entre cadenas
Utilizar un operador condicional
Crear construcciones if e if/else
Anidar una sentencia if
Encadenar una sentencia if/else
Utilizar una sentencia switch
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Importancia
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
e que
OM
ivtenemos
En nuestra vida diaria,
tomar muchas decisiones y a menudo utilizamos la palabra
n
C
U
O tomamos esas decisiones. Por ejemplo, si la casa es azul, me
si con alguna
ICOcuando
clecondicin
dar unara
vuelta
por G
ella.
si el coche es deportivo y seguro, lo compar. Pensamos en
O debien,
L
estosO
tipos de decisiones
forma inconsciente cada da.
NO
C
TE
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M
O
iva e
Una de las tareas que
menudo
realizan los programas es evaluar una condicin y, segn el
n
C
resultado, ejecutar
o ramas de cdigo. Por ejemplo, el programa puede
e Udistintos
l
CunaObloques
I
c
comprobar
si
el
valor
de
variable
es igual al valor de otra y, si es as, hacer algo. En la
a
G
O
Orse ilustra
L
imagen
el tipo de decisin que las personas toman todos los das. Adems de los
NO
operadores
aritmticos, como el signo ms (+) y el aumento (++), el lenguaje de programacin
C
E
Java
T proporciona varios operadores relacionales, incluidos < y > para menor que y mayor que,
respectivamente, y && para AND. Estos operadores se utilizan cuando se desea que el
programa ejecute diferentes bloques o ramas de cdigo segn las distintas condiciones, como la
comprobacin de si el valor de dos variables es el mismo.
Nota: cada uno de estos operadores se utiliza en el contexto de una construccin de decisin,
como una construccin if o if/else, que se presentarn ms adelante.
Ejemplo de ascensor
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Abrir la puerta.
RIA y
A
SIT e onl
R
Cerrar
VlaE A us
I
N
Upuerta.EN
N
I TAG
...
C
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OMEmpecemos por un ascensor que solo tiene la siguiente
ive funciones.
Un ascensor tiene muchas
n
C
U funcionalidad
funcionalidad.le
(Esta
CO se mejorar a medida que veamos ms ejemplos en lecciones
I
c
posteriores).
a
G
Or Odel
LOascensor en esta leccin son:
Las funciones
CN
ELas
puertas del ascensor se pueden abrir.
T
Las puertas del ascensor se pueden cerrar.
public void closeDoor() {
System.out.println("Closing door.");
doorOpen = false;
System.out.println("Door is closed.");
}
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
d A{L
ngoDown()
public void
a
ity FEN
System.out.println("Going
down one floor.");
s
r
M
e
O
niv currentFloor--;
C
U
System.out.println("Floor:
" + currentFloor);
O
e
l
C
I
c
Ora O} LOG}
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Archivo ElevatorTest.java
public class ElevatorTest {
public static void main(String args[]) {
Elevator myElevator = new Elevator();
myElevator.openDoor();
myElevator.closeDoor();
myElevator.goDown();
myElevator.goUp();
myElevator.goUp();
myElevator.goUp();
myElevator.openDoor();
myElevator.closeDoor();
myElevator.goDown();
myElevator.openDoor();
myElevator.goDown();
myElevator.openDoor();
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
}
I
AG
C
T
}
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM
ive a C
Una clase de pruebansimilar
la del
ejemplo realiza algunas pruebas de Elevator.
U
le GICO
c
a
Or OLO
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Operadores relacionales
Condicin
Operador
Ejemplo
Es igual a
==
int i=1;
(i == 1)
Es distinto de
!=
int i=2;
(i != 1)
Es menor que
<
int i=0;
(i < 1)
Es menor o igual
que
<=
int i=1;
(i <= 1)
Es mayor que
>
RIA y
A
SIT e onl
R
>=
int i=1; IVE
Es mayor o igual
us
N
A
(i >=
que
U1) EN
N
I TAG
C
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM dos valores para determinar su relacin. En la tabla se
ive comparan
Los operadores relacionales
n
C
O
muestran las ldiferentes
condiciones
que puede probar mediante operadores relacionales. El
e U IC
c
resultado
de
todos
los
operadores
relacionales
es un valor booleano. Los valores booleanos
a
G
Orser true
L
pueden
oO
false. Por ejemplo, todos los ejemplos de la tabla producen un resultado
O
Ntrue.
booleano
C
TEel signo igual (=) se utiliza para realizar una asignacin.
Nota:
int i=2;
(i > 1)
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
}
IVE A us
N
}
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
e comparar
OM referencias de objetos con objetos String, el operador
ivpara
Si utiliza el operadorn==
C
prueba si las ldirecciones
e U ICdeOlas referencias de objetos String de la memoria son iguales, no su
c
contenido.
ra LOG
O
Anlisis: Son
O iguales todas las referencias de objetos String siguientes?
N
C String helloString1 = ("hello");
TE
String helloString2 = "hello";
String helloString3 = new String("hello");
Si desea probar la igualdad entre las cadenas de caracteres (como si el nombre Fred Smith es
igual a Joseph Smith), utilice el mtodo equals de la clase String. La clase del ejemplo
contiene dos nombres de empleados y un mtodo para comparar los nombres.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Operacin
Operador
Ejemplo
Si una condicin
AND otra condicin
&&
int i = 2;
int j = 8;
((i < 1) && (j
> 6))
Si una condicin
OR otra condicin
||
int i = 2;
int j = 8;
((i < 1) || (j
> 10))
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M
O
ive tomar
Tambin tendr quenpoder
una nica decisin segn ms de una condicin. En dichas
C
U utilizar
circunstancias,
epuede
l
CO operadores condicionales para evaluar condiciones complejas como
c
un todo.rEn
la tabla G
de Ila diapositiva se muestran los operadores condicionales comunes en el
a
O de O
LO
lenguaje
programacin
Java. Por ejemplo, todos los ejemplos de la tabla producen un
N
resultado
C booleano false.
E
T Qu operadores relacionales y condicionales se expresan en el siguiente prrafo?
Anlisis:
NOT
int i = 2;
(!(i < 3))
Si el juguete es rojo, lo comprar. Sin embargo, si el juguete es amarillo y cuesta menos que un
artculo rojo, tambin lo comprar. Si el juguete es amarillo y cuesta lo mismo o ms que otro
artculo rojo, no lo comprar. Finalmente, si el juguete es verde, no lo comprar.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Operacin
Operador
Ejemplo
Si someCondition
es true, asigne el
valor de value1 al
resultado. En caso
contrario, asigne el
valor de value2 al
resultado.
?:
someCondition ? value1 :
value2
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
e
OM
El operador ternarion
esivun operador
condicional que toma tres operandos. Necesita una sintaxis
C
U
ms breve queeuna sentencia
O if/else. Utilice el operador ?: en lugar de una sentencia
l queGelICcdigo
c
if/else
si
hace
sea ms legible; por ejemplo, cuando las expresiones son
a
O secundarios
Or yOsinLefectos
compactas
(como asignaciones). El primer operando es una expresin
N
booleana.
C
TE sobre las sentencias if/else en la siguiente seccin.
Aprender
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Construccin if
Sintaxis:
if (boolean_expression) {
code_block;
} // end of if construct
// program continues here
RIA y
A
IT onl
Going up one floor.
S
R
Floor: 1
E use
V
I
Going up one floor.
N NA
U
Floor: 2
N AGE
I
...
AC ART
D
UN CO C
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OMif ejecuta un bloque de de cdigo si una expresin es true.
iveconstruccin
Una sentencia if o n
una
C
Hay algunas variaciones
e U ICenOla construccin if bsica. Sin embargo, la ms simple es la
l
c
siguiente:
OG
Ora OifL(boolean_expression)
{
N
<code_block>
C
TE
} // end of if construct
Floor: 0
donde:
boolean_expression es una combinacin de operadores relacionales, operadores
condicionales y valores cuyo resultado es un valor true o false.
code_block representa las lneas de cdigo que se ejecutan si la expresin es true.
En primer lugar, se prueba boolean_expression. Si la expresin es true, se ejecutar el
bloque de cdigo. Si boolean_expression no es true, el programa omitir la llave que marca el
final del bloque de cdigo de la construccin if.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
if (currentFloor == MIN_FLOORS) {
System.out.println("Cannot Go down");
}
if (currentFloor > MIN_FLOORS) {
System.out.println("Going down one floor.");
currentFloor--;
System.out.println("Floor: " + currentFloor);
}
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M
O
iveprueba
La clase ElevatorTest
un objeto Elevator mediante la llamada a sus mtodos. Uno de
n
C
U que
los primeros mtodos
llama la clase ElevatorTest es el mtodo goDown. Dos sentencias
e
l
CO
I
c
if pueden
solucionar
este
problema. El siguiente mtodo goDown contiene dos construcciones
a
G
r LOsi el ascensor
Odeterminan
if que
debe bajar o mostrar un error. La clase ElevatorTest es la
O
N
siguiente:
C
TE
}
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L
nd N==AMIN_FLOORS)
if (currentFloor
{
a
y
t
E
System.out.println("Cannot
Go down");
si MF
r
e
}
nivif O(currentFloor
CO
U
> MIN_FLOORS) {
e
l
C
I
c
System.out.println("Going down one floor.");
Ora OLOG currentFloor--;
System.out.println("Floor: " + currentFloor);
CN
E
T
}
}
}
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
door.
open.
door.
closed.
Cannot Go down
Going up one floor.
Floor: 2
Going up one floor.
Floor: 3
...
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Sentencias if anidadas
...
public void goDown() {
if (currentFloor == MIN_FLOORS) {
System.out.println("Cannot Go down");
}
if (currentFloor > MIN_FLOORS) {
if (!doorOpen) {
System.out.println("Going down one floor.");
currentFloor--;
System.out.println("Floor: " + currentFloor);
}
}
Sentencia
if anidada
RIA y
A
SIT e onl
R
IVE A us
}
N
U EN
N
}
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OMuna sentencia if como parte de otra sentencia if. El
ive ejecutar
A veces puede que n
necesite
C
UilustraCcmo
ejemplo de cdigo
O utilizar sentencias if anidadas para comprobar los valores de dos
e
l
I
c
variables.
Si
el
valor
de
la
variable
currentFloor es igual a la constante MIN_FLOORS, se
a
G
O de error y el ascensor
Orun mensaje
muestra
no baja. Si el valor de la variable currentFloor es
L
O
N
mayor que
la constante MIN_FLOORS y las puertas se cierran, el ascensor baja. El cdigo de
C
ejemplo
TE de NestedIfElevator es el siguiente.
Nota: utilice construcciones if/else anidadas con moderacin ya que su depuracin puede ser
confusa.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
public void goUp() {
SIT e onl
R
System.out.println("Going up one floor.");
IVE A us
currentFloor++;
N
U EN
System.out.println("Floor: " + currentFloor);
N
I
AG
}
C
T
DA CAR
N
U CO
public void goDown() {
F
L
if (currentFloor
{
nd ==NMIN_FLOORS)
A
a
System.out.println("Cannot
Go
down");
ty FE
i
s
r
OM > MIN_FLOORS) {
iv}ife(currentFloor
n
C
e U ICO
l
c
(!doorOpen) {
Ora OLOG ifSystem.out.println("Going
down one floor.");
N
C
currentFloor--;
TE
System.out.println("Floor: " + currentFloor);
}
}
}
}
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Construccin if/else
Sintaxis:
if (boolean_expression) {
<code_block1>
} // end of if construct
else {
<code_block2>
RIA y
A
SIT e onl
// program continues here
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
M
veejecute
O
ise
A menudo, desea que
un bloque de cdigo si la expresin es true y que se ejecute otro
n
C
Usi la expresin
bloque de cdigo
es false. Puede utilizar una construccin if para ejecutar un
e
l
CO es
I
c
bloque de
cdigo
si
la
expresin
true con una construccin else que solo se ejecute si la
a
G
Or esOfalse.
LOEn el ejemplo de la diapositiva se muestra la sintaxis de una construccin
expresin
if/else,N
C donde:
E
boolean_expression es una combinacin de operadores relacionales, operadores
T
} // end of else construct
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Se ejecuta si la
if (currentFloor == MIN_FLOORS) {
expresin es true.
System.out.println("Cannot Go down");
}
else {
System.out.println("Going down one floor.");
Se ejecuta
currentFloor--;
System.out.println("Floor: " + currentFloor);} expresin es
}
RIA y
A
si la nl
SITfalse.
o
R
e
E
s
IV A u
N
U EN
}
N
}
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OMpara solucionar el problema del ascensor que va a una
ive if/else
Puede utilizar una sentencia
n
C
Umtodo
planta no vlida.
El
goDown que aparece en el ejemplo de la diapositiva contiene una
e
l
COdetermina
I
c
construccin
if/else
que
si el ascensor debe bajar o mostrar un error. Si el valor de
a
G
O
Or currentFloor
la variable
es igual a la constante MIN_FLOORS, se muestra un mensaje de error
L
NOno baja. En caso contrario (else), se supone que el valor de la variable
y el ascensor
C
currentFloor
es mayor que la constante MIN_FLOORS y el ascensor baja. El ejemplo de
TE
cdigo completo es el siguiente:
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
}
SIT e onl
R
IVE A us
N
public void goUp() {
U EN
N
else {
System.out.println("Going down one floor.");
currentFloor--;
System.out.println("Floor: " + currentFloor);}
}
}
}
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Construccin if/else
Ejemplo de posible salida:
Opening door.
Door is open.
Closing door.
Door is closed.
Cannot Go down
Going up one floor.
Floor: 2
Going up one floor.
Floor: 3
...
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
IT onl
<code_block3>
S
R
}
E use
V
I
// program continues here
N NA
U
N AGE
I
AC ART
D
UN CO C
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COifMy else juntas para indicar distintos resultados para varias
Puede encadenar construcciones
n
U C
expresiones diferentes.
EnO
el ejemplo de la diapositiva se muestra la sintaxis de una construccin
e
l
I
c
if/else
encadenada,
donde:
a
G
r LO
O
boolean_expression
es una combinacin de operadores relacionales, operadores
O y valores cuyo
N
condicionales
resultado es un valor true o false.
C
E
T
code_block1 representa las lneas de cdigo que se ejecutan si la expresin es true.
else {
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Se ejecuta cuando la
sentencia if es true.
Se ejecuta cuando la
primera sentencia if es
else if (month == 2) {
false y la sentencia
else es true.
System.out.println("There are 28 days in that month.");
}
}
else if (month == 4 || month == 6 || month == 9 || month == 11) {
System.out.println("There are 30 days in that month.");
}
IA
R
A
Se ejecuta cuando la primera
else {
ITla only
sentencia if es S
false,
System.out.println("Invalid month.");
R elsesese
primera sentencia
E
...
V
uelse
I sentencia
false N
y esta
A
4 Se ejecuta cuando todas
U esEtrue.
N
N
las sentencias son false.
G
CI RTA
A
ND O CA
U
F LC
d
Copyright 2011, Oracle
y/o sus filiales.
Todos los derechos reservados.
n
A
a
N
ity FE
s
r
e
OMque contiene varias construcciones if/else
ivIfElseDate
El ejemplo es una clase
n
C
encadenadas e
queU
determinan
O cuntos das hay en un mes. El mtodo calculateNumDays
l
Cif/else
I
c
encadena
tres
sentencias
juntas para determinar el nmero de das de un mes. Aunque
a
G
O
Or O
este cdigo
es L
sintcticamente
correcto, el encadenamiento de sentencias if/else puede dar
lugar aC
unN
cdigo confuso y se debe evitar.
E
T
3
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Temas
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM
ivseeutilizaCen
Otra palabra clave que
la toma de decisiones es la palabra clave switch. La
n
U
construccin switch
ayuda
Oa evitar cdigo confuso porque simplifica la organizacin de las
ICque
clede cdigo
distintasrramas
se pueden ejecutar.
a
G
O
O
L
El ejemplo de
Ola clase IfElseDate se puede volver a escribir mediante una construccin
N
switch.
En
C la diapositiva se muestra la sintaxis de la construccin switch, donde:
E
T
La palabra clave switch indica una sentencia switch.
variable es la variable cuyo valor desea probar. variable solo puede ser de tipo char,
byte, short, int o String.
La palabra clave case indica un valor que est probando. Una combinacin de la palabra
clave case y literal_value se denomina etiqueta case.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
literal_value es cualquier valor vlido que puede contener una variable. Puede tener
una etiqueta case para cada valor que desee probar. Los valores literales no pueden ser
variables, expresiones, String ni llamadas a mtodos. Los valores literales pueden ser
constantes (variables finales como MAX_NUMBER definidas en otra parte), literales (como A
o 10) o ambos.
La sentencia [break;] es una palabra clave opcional que hace que el flujo de cdigo
salga inmediatamente de la sentencia switch. Sin una sentencia break, se ejecutan todas
las sentencias code_block que siguen a la sentencia case aceptada (hasta que se
alcance una sentencia break o el final de la construccin switch).
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
...
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
OM que utiliza una construccin switch para determinar
iveclase C
El ejemplo contiene n
una
SwitchDate
cuntos das lhay
en un mes.
eU
CO
I
c
a
G
El mtodo
clase SwitchDate utiliza una sentencia switch para
Or calculateNumDays
LO de la variablededelames.
distribuir en O
el valor
Si la variable de mes es igual a 1, 3, 5, 7, 8, 10 o 12,
N
el cdigo
C salta a la etiqueta case adecuada y, a continuacin, se despliega para ejecutar
TE
System.out.println("There
are 31 days in that month.").
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG}
CN }
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Pruebas de igualdad
Pruebas en un nico valor, como customerStatus
Pruebas en el valor del tipo int, short, byte, o char y
String
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Prueba
Cul es el objetivo del bloque else en una sentencia
if/else?
a. Incluir el resto del cdigo de un mtodo.
b. Incluir cdigo que se ejecuta cuando la expresin de una
sentencia if es false.
c. Probar si una expresin es false.
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
Respuesta: b
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Prueba
Cul de las siguientes afirmaciones es adecuada para probar
un valor de una construccin switch?
a. La construccin switch prueba si los valores son
mayores o menores que un nico valor.
b. La construccin switch se prueba en una nica variable.
c. La construccin switch prueba el valor de un tipo de dato
float, double o boolean y String.
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
Respuesta: b
n
O porque se debe utilizar un operador relacional para probar si
e Ua esIC
La respuesta
incorrecta
l
c
a
G
losrvalores O
son mayores o menores que un nico valor.
O
L
La respuesta
NO b es correcta.
C
ELa respuesta c es incorrecta. La construccin switch prueba el valor de los tipos char,
T
byte, short, int o String.
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
Resumen
En esta leccin, debe haber aprendido lo siguiente:
Utilizar un operador relacional
Probar la igualdad entre cadenas
Utilizar un operador condicional
Crear construcciones if e if/else
Anidar una sentencia if
Encadenar una sentencia if/else
Utilizar una sentencia switch
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
AR ly
T
I
S e on
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates
RIA y
A
SIT e onl
R
IVE A us
N
U EN
N
I
AG
C
T
DA CAR
N
U CO
F
L Todos los derechos reservados.
Copyright 2011, Oracle
ndy/o susNfiliales.
A
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T