Anda di halaman 1dari 282

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

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

Este documento contiene informacin propiedad de Oracle Corporation y se


encuentra protegido por el copyright y otras leyes sobre la propiedad intelectual.
Usted slo podr realizar copias o imprimir este documento para uso exclusivo por
usted en los cursos de formacin de Oracle. Este documento no podr ser
modificado ni alterado en modo alguno. Salvo que la legislacin del copyright lo
considere un uso excusable o legal o "fair use", no podr utilizar, compartir,
descargar, cargar, copiar, imprimir, mostrar, representar, reproducir, publicar,
conceder licencias, enviar, transmitir ni distribuir este documento total ni parcialmente
sin autorizacin expresa por parte de Oracle.

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

La informacin contenida en este documento puede someterse a modificaciones sin


previo aviso. Si detecta cualquier problema en el documento, le agradeceremos que
nos lo comunique por escrito a: Oracle University, 500 Oracle Parkway, Redwood
Shores, California 94065 EE. UU. No se garantiza que este documento se encuentre
libre de errores.
Aviso sobre restriccin de derechos
Si este software o la documentacin relacionada se entrega al Gobierno de EE.UU. o
a cualquier entidad que adquiera licencias en nombre del Gobierno de EE.UU. se
aplicar la siguiente disposicin:

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

U.S. GOVERNMENT RIGHTS


The U.S. Governments rights to use, modify, reproduce, release, perform, display, or
disclose these training materials are restricted by the terms of the applicable Oracle
license agreement and/or the applicable U.S. Government contract.
Disposicin de marca comercial registrada

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

Introduccin a la tecnologa Java


Objetivos 2-2
Temas 2-4
Puesto de Java en el mundo 2-5
Escritorios de Java 2-6
Telfonos mviles de Java 2-7
Java TV y Java Card 2-8
Historia de Java 2-9
Conceptos clave del lenguaje de programacin Java
Programacin de procedimiento 2-11
Orientado a objetos 2-12
Distribuido 2-13
Sencillo 2-14
Multithread 2-15
Seguro 2-16
Programas dependientes de la plataforma 2-17
Programas independientes de la plataforma 2-20
Prueba 2-22
Temas 2-23
Identificacin de grupos de productos de
tecnologa Java 2-24
Java SE 2-25
Java EE 2-26
Java ME 2-27
Java Card 2-28
Configuracin del entorno de desarrollo Java 2-29
Descarga e instalacin del JDK 2-30

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

Examen del Java Development Kit instalado 2-31


Temas 2-32
Uso de un entorno de desarrollo integrado 2-33
Descarga de NetBeans IDE 2-34
NetBeans IDE y el asistente New Project 2-35
Prueba 2-36
Temas 2-37
Etapas del ciclo de vida del producto 2-38
Resumen 2-40
Visin general de la prctica 2-1: Ejecucin de un
programa Java mediante la lnea de comandos 2-42
Visin general de la prctica 2-2: Ejecucin de un
programa Java mediante NetBeans IDE 2-43

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

Consideraciones sobre los objetos


Objetivos 3-2
Importancia 3-3
Temas 3-4
Anlisis de un problema mediante el anlisis orientado a objetos 3-5
Proceso de pedido de Dukes Choice 3-6
Temas 3-7
Identificacin de un dominio de problemas 3-8
Temas 3-9
Identificacin de objetos 3-10
Temas 3-13
Criterios adicionales para reconocer objetos 3-14
Posibles objetos en el caso prctico de Dukes Choice 3-16
Temas 3-17
Identificacin de atributos y operaciones de objetos 3-18
Objeto con otro objeto como atributo 3-19
Posibles atributos y operaciones para objetos en el caso prctico
de Dukes Choice 3-20
Temas 3-21
Solucin del caso prctico: Clases 3-22
Solucin del caso prctico: Atributos 3-23
Solucin del caso prctico: Comportamientos 3-25
Temas 3-27
Diseo de clases 3-28
Clases y objetos resultantes 3-29
Modelado de clases 3-30

iv

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Uso del modelado similar a UML 3-32


Prueba 3-33
Resumen 3-35
Visin general de la prctica 3-1: Anlisis de un problema
mediante el anlisis orientado a objetos 3-36
Visin general de la prctica 3-2: Diseo de una solucin
de programacin 3-37
4

Introduccin al lenguaje Java


Objetivos 4-2
Temas 4-3
Importancia 4-4
Identificacin de los componentes de una clase 4-5
Estructuracin de clases 4-6
Smbolos utilizados en la definicin de un origen Java 4-8
Unin de todo 4-9
Prueba 4-11
Declaraciones y asignaciones de campos 4-12
Comentarios 4-13
Temas 4-15
Mtodos 4-16
Temas 4-18
Palabras clave 4-19
Temas 4-20
Creacin y uso de una clase de prueba 4-21
Mtodo main 4-22
Compilacin de un programa 4-23
Ejecucin (prueba) de un programa 4-24
Compilacin y ejecucin de un programa mediante un IDE 4-25
Temas 4-26
Cmo evitar problemas de sintaxis 4-27
Temas 4-28
Trabajar con un depurador de IDE 4-29
Resumen 4-31
Visin general de la prctica 4-1: Visualizacin y adicin de
cdigo en un programa Java existente 4-32
Visin general de la prctica 4-2: Creacin y compilacin
de una clase Java 4-33
Visin general de la prctica 4-3: Exploracin del depurador 4-34

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

Declaracin, inicializacin y uso de variables


Objetivos 5-2
Importancia 5-3
Temas 5-4
Identificacin del uso y la sintaxis de las variables 5-5
Usos de las variables 5-7
Declaracin e inicializacin de variables 5-8
Temas 5-10
Descripcin de tipos de dato primitivos 5-11
Tipos primitivos integrales 5-12
Tipos primitivos de coma flotante 5-14
Tipo primitivo textual 5-15
Tipo primitivo lgico 5-17
Temas 5-18
Asignacin de nombres a variables 5-19
Asignacin de un valor a una variable 5-21
Declaracin e inicializacin de varias variables en una lnea de cdigo 5-22
Mtodos adicionales para declarar variables y asignar valores a variables 5-23
Constantes 5-25
Almacenamiento de primitivos y constantes en memoria 5-26
Prueba 5-27
Temas 5-28
Operadores matemticos estndar 5-29
Operadores de aumento y disminucin (++ y --) 5-31
Prioridad de operadores 5-35
Uso de parntesis 5-38
Temas 5-39
Uso de ampliacin y conversin de tipo 5-40
Ampliacin 5-42
Conversin de tipo 5-44
Suposiciones del compilador para tipos de dato integrales y de coma flotante 5-47
Tipos de dato de coma flotante y asignacin 5-49
Ejemplo 5-50
Prueba 5-51
Resumen 5-52
Visin general de la prctica 5-1: Declaracin de variables de campo
en una clase 5-53
Visin general de la prctica 5-2: Uso de operadores y conversin
de tipo para evitar la prdida de datos 5-54

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

Trabajar con objetos


Objetivos 6-2
Temas 6-3
Trabajar con objetos: Introduccin 6-4
Acceso a objetos mediante una referencia 6-5
Clase Shirt 6-6
Temas 6-7
Trabajar con variables de referencia de objetos 6-8
Declaracin e inicializacin: Ejemplo 6-9
Trabajar con referencias de objetos 6-10
Referencias a diferentes objetos 6-13
Referencias a diferentes tipos de objetos 6-14
Referencias y objetos en memoria 6-15
Asignacin de una referencia a otra 6-16
Dos referencias, un objeto 6-17
Asignacin de una referencia a otra 6-18
Prueba 6-19
Temas 6-20
Clase String 6-21
Concatenacin de cadenas 6-22
Llamadas al mtodo String con valores de retorno primitivos 6-26
Llamadas al mtodo String con valores de retorno de objeto 6-27
Llamadas a mtodos que necesitan argumentos 6-28
Temas 6-29
Documentacin de la API de Java 6-30
Documentacin de la plataforma Java SE 7 6-31
Plataforma Java SE 7: Resumen del mtodo 6-33
Plataforma Java SE 7: Detalles del mtodo 6-34
Mtodos System.out 6-35

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

Visin general de la prctica 6-3: Examen de la especificacin


de la API de Java 6-47
Uso de operadores y construcciones de decisin
Objetivos 7-2
Importancia 7-3
Temas 7-4
Uso de operadores relacionales y condicionales 7-5
Ejemplo de ascensor 7-6
Archivo ElevatorTest.java 7-8
Operadores relacionales 7-9
Prueba de la igualdad entre cadenas 7-10
Operadores condicionales comunes 7-11
Operador condicional ternario 7-12
Temas 7-13
Creacin de construcciones if e if/else 7-14

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

Creacin y uso de matrices


Objetivos 8-2
Temas 8-3
Introduccin a las matrices 8-4
Matrices unidimensionales 8-5

viii

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Creacin de matrices unidimensionales 8-6


ndices y longitud de matriz 8-7
Temas 8-8
Declaracin de una matriz unidimensional 8-9
Instanciacin de una matriz unidimensional 8-10
Inicializacin de una matriz unidimensional 8-11
Declaracin, instanciacin e inicializacin de matrices unidimensionales 8-12
Acceso a un valor de una matriz 8-13
Almacenamiento de matrices en memoria 8-14
Almacenamiento de matrices de referencias en memoria 8-15
Prueba 8-16
Temas 8-18
Uso de la matriz args en el mtodo main 8-19
Conversin de argumentos String en otros tipos 8-20
Temas 8-21
Descripcin de matrices bidimensionales 8-22
Declaracin de una matriz bidimensional 8-23
Instanciacin de una matriz bidimensional 8-24
Inicializacin de una matriz bidimensional 8-25
Temas 8-26
Clase ArrayList 8-27
Nombres de clases y sentencia de importacin 8-28
Trabajar con una ArrayList 8-29
Prueba 8-30
Resumen 8-31
Visin general de la prctica 8-1: Creacin de una clase con una matriz
unidimensional de tipos primitivos 8-32
Visin general de la prctica 8-2: Creacin y trabajo con una ArrayList 8-33
Visin general de la prctica 8-3: Uso de argumentos de tiempo de ejecucin
y anlisis de la matriz args 8-34

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

Uso de construcciones de bucle


Objetivos 9-2
Temas 9-3
Bucles 9-4
Comportamiento de repeticin 9-5
Creacin de bucles while 9-6
Bucle while en Elevator 9-7
Tipos de variables 9-8
Bucle while: Ejemplo 1 9-9

ix

Bucle while: Ejemplo 2 9-10

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Bucle while con contador 9-11


Temas 9-12
Bucle for 9-13
Desarrollo de un bucle for 9-14
Temas 9-15
Bucle for anidado 9-16
Bucle while anidado 9-17
Temas 9-18
Bucles y matrices 9-19
Bucle for con matrices 9-20
Definicin de valores en una matriz 9-21
Bucle for mejorado con matrices 9-22
Bucle for mejorado con ArrayLists 9-23

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

Visin general de la prctica 9-4: Uso de bucles for para procesar


una ArrayList 9-37
Visin general de la prctica 9-5: Escritura de una clase que utiliza un bucle for
anidado para procesar una matriz bidimensional 9-38
Visin general de la prctica de comprobacin 9-6: Adicin de un mtodo de
bsqueda a ClassMap 9-39

10 Trabajar con mtodos y sobrecarga de mtodos


Objetivos 10-2
Temas 10-3
Creacin y llamada a mtodos
10-4
Forma bsica de un mtodo 10-5
x

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Llamada a un mtodo en una clase diferente 10-6


Mtodos de llamada y de trabajo 10-7
Transferencia de argumentos y devolucin de valores 10-8
Creacin de un mtodo con un parmetro 10-9
Creacin de un mtodo con un valor de retorno 10-10
Llamada a un mtodo en la misma clase 10-11
Transferencia de argumentos a mtodos 10-12
Transferencia por valor 10-13
Ventajas del uso de mtodos 10-16
Prueba 10-17
Mtodos de llamada: Resumen 10-18
Temas 10-19
Utilidades matemticas 10-20
Mtodos estticos de Math 10-21

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 Uso de encapsulacin y constructores


Objetivos 11-2
Temas 11-3
Visin general 11-4
Modificador public 11-5
Riesgos del acceso a un campo private 11-6
Modificador private 11-7
Intento de acceso a un campo private 11-8
Modificador private en los mtodos
Interfaz e implantacin 11-10
Mtodos get y set 11-11

11-9

xi

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Uso de los mtodos setter y getter 11-12


Mtodo setter con comprobacin 11-13
Uso de los mtodos setter y getter 11-14
Encapsulacin: Resumen 11-15
Temas 11-16
Inicializacin de un objeto Shirt 11-17
Constructores 11-18
Creacin de constructores 11-19
Inicializacin de un objeto Shirt con un constructor 11-21
Varios constructores 11-22
Prueba 11-23
Resumen 11-24
Visin general de la prctica 11-1: Implantacin de la encapsulacin
en una clase 11-25
Visin general de la prctica de comprobacin 11-2: Adicin de validacin a
la clase DateThree 11-26
Visin general de la prctica 11-3: Creacin de constructores para
inicializar objetos 11-27

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

Tipos de referencia de superclase 12-22


Acceso a funcionalidades de objeto 12-23
Acceso a mtodos de clase desde la superclase 12-24
Conversin del tipo de referencia 12-25
Conversin 12-26
Operador instanceof 12-27
Llamadas a mtodos polimrficos 12-28
Prueba 12-29
Temas 12-30
Varias jerarquas 12-31
Interfaces 12-32
Implantacin de la interfaz Returnable 12-33
Acceso a los mtodos de objeto desde la interfaz 12-34
ArrayList 12-35
Interfaz List 12-36
Temas 12-37
Clase Object 12-38

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

Adicin de un nuevo artculo para su venta 14-27


Implantacin de Returnable 14-29
Implantacin de constructor 14-30
Clase Suit: Sustitucin de getDisplay() 14-31
Implantacin de los mtodos getter y setter 14-32
Actualizacin de aplicaciones con la clase Suit 14-33
Prueba de la clase Suit: Lnea de comandos 14-34
Prueba de la clase Suit: Aplicacin web 14-35
Adicin de la clase Suit a la aplicacin web 14-36
Resumen 14-37
Sin prcticas para esta leccin 14-38
Resumen del curso 14-39
A Referencia rpida de lenguaje Java

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

Objetivos del curso


Al finalizar este curso, debera estar capacitado para:
Enumerar y describir varias caractersticas clave de la
tecnologa Java, como que est orientada a objetos, es
multithread, distribuida, simple y segura
Identificar diferentes grupos de tecnologa Java
Describir ejemplos de cmo se utiliza Java en
aplicaciones, as como productos de consumo
Describir las ventajas de utilizar un entorno de desarrollo
integrado (IDE)
RIA y
A
SIT e onl
Desarrollar clases y describir cmo declarar unaRclase
us
IVE los
Analizar un problema de negocio para reconocer
N
A
U EN
objetos y las operaciones que forman
los bloques
N

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

Conceptos fundamentales de Java SE 7 1-2

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Objetivos del curso

Definir el trmino objeto y su relacin con una clase


Mostrar la sintaxis de programacin Java
Escribir un programa Java simple que se compile y ejecute
correctamente
Declarar e inicializar variables
Enumerar varios tipos de dato primitivos
Instanciar un objeto y utilizar de forma eficaz variables de
referencia de objetos
RIA y
Utilizar operadores, bucles y construcciones de decisin
A
IT onl
S
R
Declarar e instanciar matrices y ArrayLists y poder
E iterar
se
V
u
I
con ellas
UN NA

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

Conceptos fundamentales de Java SE 7 1-3

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Objetivos del curso

Utilizar la documentacin Java para buscar Java


Foundation Classes
Declarar un mtodo con argumentos y valores de retorno
Utilizar la herencia para declarar y definir una subclase de
una superclase existente
Describir cmo se manejan los errores en un programa
Java
Describir cmo desplegar una aplicacin Java simple
mediante NetBeans IDE
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
n
e U ICO
l
c
Ora OLOG
CN
E
T

Conceptos fundamentales de Java SE 7 1-4

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

Conceptos fundamentales de Java SE 7 1-5

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

Conceptos fundamentales de Java SE 7 1-6

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Instalaciones de su ubicacin

Inscripcin, registro, conexin


Tarjetas de identificacin
Parking
Telfonos
Internet
Aseos
Laboratorios
Almuerzo
RIA y
A
Cocina/aperitivos
SIT e onl
R
Horas
IVE A us
N
Material (papel, bolgrafos y rotuladores)
N U EN

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

Conceptos fundamentales de Java SE 7 1-7

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

Conceptos fundamentales de Java SE 7 1-8

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Entorno del curso

Computadora del aula


Aplicaciones
principales
JDK 7
NetBeans 7.0.1

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.

NetBeans 7.0.1: NetBeans IDE es una herramienta de desarrollo de software gratuita y de


cdigo abierto para los profesionales que crean aplicaciones de empresa, web, de escritorio
y mviles.
Glassfish Server: es un servidor de cdigo abierto que se utiliza para desplegar
aplicaciones.
Gua del alumno: la gua tiene todo el material que se trata en clase. Adems, incluye tres
apndices que proporcionan informacin adicional: Referencia rpida de lenguaje Java,
Consejos para UMLet (UMLet es una herramienta utilizada para el modelado de UML) y
Recursos.
Gua de actividades y archivos de prcticas: se trata de recursos que se utilizan durante
las prcticas del curso.
Documentacin de API de Java y especificacin del lenguaje Java: la documentacin
de API es la especificacin de la interfaz de programacin de aplicaciones y la
especificacin del lenguaje describe usos del lenguaje concretos.
Conceptos fundamentales de Java SE 7 1-9

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

Conceptos fundamentales de Java SE 7 1-10

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Introduccin a la tecnologa 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

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

Conceptos fundamentales de Java SE 7 2-2

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Objetivos

Relacionar Java con otros lenguajes


Tratar los diferentes IDE que soportan el lenguaje Java
Describir cmo descargar e instalar un IDE
Describir cada fase del ciclo de vida del producto

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

Conceptos fundamentales de Java SE 7 2-3

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Descripcin de las caractersticas clave de Java y la


programacin orientada a objetos
Descripcin de la tecnologa y del entorno de desarrollo
Java
Trabajar con IDE
Descripcin del ciclo de vida del producto

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

Conceptos fundamentales de Java SE 7 2-4

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Puesto de Java en el mundo

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

Conceptos fundamentales de Java SE 7 2-5

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

Conceptos fundamentales de Java SE 7 2-6

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

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

Conceptos fundamentales de Java SE 7 2-7

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Java TV y Java Card

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

Conceptos fundamentales de Java SE 7 2-8

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.

Conceptos fundamentales de Java SE 7 2-9

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Conceptos clave del


lenguaje de programacin Java

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

Conceptos fundamentales de Java SE 7 2-10

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.

Conceptos fundamentales de Java SE 7 2-11

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

se puede transferir fcilmente dentro del sistema.


Ocultacin de informacin: al interactuar solo con mtodos de un objeto, los detalles de
su implantacin interna permanecen ocultos al mundo exterior.
Reutilizacin de cdigo: si un objeto ya existe (quiz escrito por otro desarrollador de
software), puede utilizar dicho objeto en su programa. Esto permite a los especialistas
implantar, probar y depurar objetos complejos especficos de tareas, en los que puede
confiar para ejecutar su propio cdigo.
Facilidad de conexin y depuracin: si se descubre que un objeto concreto es
problemtico, simplemente puede eliminarlo de su aplicacin y conectar otro como
sustitucin. Esto es anlogo a la correccin de problemas mecnicos en el mundo real. Si
se rompe un tornillo, reemplaza el tornillo, no toda la mquina.

En el diagrama se ilustra el enfoque en objetos e interacciones de objetos del programa orientado


a objetos.
Conceptos fundamentales de Java SE 7 2-12

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.

Conceptos fundamentales de Java SE 7 2-13

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Sencillo

Se utilizan referencias en lugar de punteros de memoria.


Un tipo de dato boolean puede tener un valor true o
false.

La gestin de memoria es automtica.

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.

Conceptos fundamentales de Java SE 7 2-14

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

Conceptos fundamentales de Java SE 7 2-15

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.

Conceptos fundamentales de Java SE 7 2-16

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Programas dependientes 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
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.

Conceptos fundamentales de Java SE 7 2-17

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

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

Conceptos fundamentales de Java SE 7 2-18

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

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

Conceptos fundamentales de Java SE 7 2-19

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Programas independientes 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
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.

Conceptos fundamentales de Java SE 7 2-20

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Programas independientes 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
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.

Conceptos fundamentales de Java SE 7 2-22

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Descripcin de las caractersticas clave de Java y la


programacin orientada a objetos
Descripcin de la tecnologa y del entorno de desarrollo
Java
Trabajar con IDE
Descripcin del ciclo de vida del producto

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

Conceptos fundamentales de Java SE 7 2-23

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Identificacin de grupos de productos de


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

Conceptos fundamentales de Java SE 7 2-24

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.

Conceptos fundamentales de Java SE 7 2-25

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.

Conceptos fundamentales de Java SE 7 2-26

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

Conceptos fundamentales de Java SE 7 2-27

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

Conceptos fundamentales de Java SE 7 2-28

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Configuracin del entorno de desarrollo Java


Es fcil configurar el entorno de desarrollo Java.
1. Descargue e instale el Java Development Kit (JDK) de
oracle.com/java.
2. Defina el valor PATH para el JDK instalado.
3. Compile y ejecute una aplicacin Java mediante la lnea
de comandos.

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

Conceptos fundamentales de Java SE 7 2-29

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Descarga e instalacin del JDK

Java SE Development Kit

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.

Conceptos fundamentales de Java SE 7 2-30

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Examen del Java Development Kit instalado

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

Compilador de tecnologa Java


Utilidades adicionales, como utilidades para crear archivos de almacenamiento Java
(archivos JAR) y para depurar programas de tecnologa Java
Ejemplos de programas de tecnologa Java

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.

Conceptos fundamentales de Java SE 7 2-31

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Descripcin de las caractersticas clave de Java y la


programacin orientada a objetos
Descripcin de la tecnologa y del entorno de desarrollo
Java
Trabajar con IDE
Descripcin del ciclo de vida del producto

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

Conceptos fundamentales de Java SE 7 2-32

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Uso de un entorno de desarrollo integrado


Un entorno de desarrollo integrado (IDE) es una herramienta
que puede ayudarle con el desarrollo de aplicaciones Java.
Hay varios IDE disponibles:
NetBeans IDE de Oracle
JDeveloper de Oracle
Eclipse de IBM

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

Simplificacin de la compilacin y el despliegue de aplicaciones

Conceptos fundamentales de Java SE 7 2-33

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Descarga de NetBeans IDE

Disponible de forma gratuita en NetBeans.org


Definicin automtica de las propiedades Java de la
aplicacin
Varios grupos disponibles

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.

Conceptos fundamentales de Java SE 7 2-34

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

NetBeans IDE y el asistente New Project

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.

Conceptos fundamentales de Java SE 7 2-35

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

Conceptos fundamentales de Java SE 7 2-36

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Descripcin de las caractersticas clave de Java y la


programacin orientada a objetos
Descripcin de la tecnologa y del entorno de desarrollo
Java
Trabajar con IDE
Descripcin del ciclo de vida del producto

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

Conceptos fundamentales de Java SE 7 2-37

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Etapas del ciclo de vida del producto


1.
2.
3.
4.
5.
6.
7.

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

como mbito del proyecto.


- Identificar los subcomponentes clave del producto general.
Nota: un buen anlisis del problema conlleva un buen diseo de la solucin y menor tiempo de
desarrollo y pruebas.
Diseo: proceso de aplicacin de las conclusiones obtenidas durante la etapa de anlisis al
diseo real del producto. La tarea principal durante la etapa de diseo consiste en
desarrollar planos o especificaciones para los productos o componentes del sistema.
Desarrollo: uso de los planos creados durante la etapa de diseo para crear componentes
reales.
Prueba: garanta de que los componentes individuales o el producto en su conjunto
cumplen los requisitos de la especificacin creada durante la etapa de diseo.
Nota: las pruebas las suele realizar un equipo de personas que no son las que han desarrollado
realmente el producto. Dicho equipo se asegura de que el producto se prueba sin ninguna
parcialidad en nombre del desarrollador.
Conceptos fundamentales de Java SE 7 2-38

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Implantacin: puesta del producto a disposicin de los consumidores.


Mantenimiento: solucin de problemas con el producto y nueva publicacin del producto
como una nueva versin o revisin.
Fin de vida: aunque el ciclo de vida del producto no tiene una etapa independiente para el
inicio de un concepto o proyecto, s que la tiene para el fin de un proyecto. El fin de vida
consiste en llevar a cabo todas las tareas necesarias para garantizar que los clientes y
empleados son conscientes de que un producto ya no se vende o no est soportado, y que
hay un nuevo producto disponible.

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

Conceptos fundamentales de Java SE 7 2-39

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

Conceptos fundamentales de Java SE 7 2-40

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Resumen

Relacionar Java con otros lenguajes


Tratar los diferentes IDE que soportan el lenguaje Java
Describir cmo descargar e instalar un IDE
Describir cada fase del ciclo de vida del producto

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

Conceptos fundamentales de Java SE 7 2-41

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Visin general de la prctica 2-1: Ejecucin de un


programa Java mediante la lnea de comandos
En esta prctica, compilar y ejecutar un programa Java
mediante la lnea de comandos. Ya se ha creado un programa
de tecnologa Java. Aprender a definir la variable PATH para
la sesin de DOS antes de ejecutar el 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
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

Conceptos fundamentales de Java SE 7 2-42

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Visin general de la prctica 2-2: Ejecucin de un


programa Java mediante NetBeans IDE
En esta prctica, compilar y ejecutar un programa Java
mediante el uso de NetBeans IDE. Adems, explorar algunas
funciones de IDE que permiten desarrollar programas de forma
ms rpida y sencilla que si utilizara una lnea de comandos.

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

Conceptos fundamentales de Java SE 7 2-43

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

Consideraciones sobre los 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
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

Disear una clase


y
T
l
I
n
RS se o
Modelar una clase
E
V
u

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

Conceptos fundamentales de Java SE 7 3-2

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Importancia

Cmo decide qu componentes son necesarios para


algo que va a crear, como una casa o un mueble?
Qu es una taxonoma?
Cmo se relacionan los organismos de una taxonoma?
Cul es la diferencia entre atributos y valores?

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

Los atributos son caractersticas o funciones distintivas de un organismo de una taxonoma


similar (por ejemplo, una aleta dorsal es un atributo de una ballena).
Los valores representan el estado actual de un atributo. Por ejemplo, una ballena (la ballena azul)
tiene una aleta dorsal pequea mientras que otra (la orca o ballena asesina) tiene una aleta
dorsal grande. Grande o pequea son valores del atributo aleta en la taxonoma de ballena.

Conceptos fundamentales de Java SE 7 3-3

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Anlisis de un problema mediante el anlisis orientado a


objetos
Identificacin de un dominio de problemas
Identificacin de los objetos
Definicin de criterios adicionales para reconocer objetos
Definicin de atributos y operaciones
Anlisis de la solucin de un caso prctico
Diseo y modelado de una clase

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

Conceptos fundamentales de Java SE 7 3-4

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Anlisis de un problema mediante el


anlisis orientado a objetos
Dukes Choice vende ropa de su catlogo. El negocio crece un
30% al ao y es necesario un nuevo sistema de introduccin
de pedidos.

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.

Conceptos fundamentales de Java SE 7 3-5

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Proceso de pedido 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
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.

Conceptos fundamentales de Java SE 7 3-6

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Anlisis de un problema mediante el anlisis orientado a


objetos
Identificacin de un dominio de problemas
Identificacin de los objetos
Definicin de criterios adicionales para reconocer objetos
Definicin de atributos y operaciones
Anlisis de la solucin de un caso prctico
Diseo y modelado de una clase

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

Conceptos fundamentales de Java SE 7 3-7

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Identificacin de un dominio de problemas

Un dominio de problemas es el mbito del problema que


va a solucionar.
Ejemplo: crear un sistema que permita el mtodo de
introduccin de pedidos en lnea para aceptar y verificar el
pago de un pedido.

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.

Conceptos fundamentales de Java SE 7 3-8

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Anlisis de un problema mediante el anlisis orientado a


objetos
Identificacin de un dominio de problemas
Identificacin de los objetos
Definicin de criterios adicionales para reconocer objetos
Definicin de atributos y operaciones
Anlisis de la solucin de un caso prctico
Diseo y modelado de una clase

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

Conceptos fundamentales de Java SE 7 3-9

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Identificacin de objetos

Los objetos pueden ser fsicos o conceptuales.


Los objetos tienen atributos (caractersticas) como el
tamao, el nombre, la forma, etc.
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.

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.

Conceptos fundamentales de Java SE 7 3-10

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

Conceptos fundamentales de Java SE 7 3-11

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.

Conceptos fundamentales de Java SE 7 3-12

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Anlisis de un problema mediante el anlisis orientado a


objetos
Identificacin de un dominio de problemas
Identificacin de los objetos
Definicin de criterios adicionales para reconocer objetos
Definicin de atributos y operaciones
Anlisis de la solucin de un caso prctico
Diseo y modelado de una clase

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

Conceptos fundamentales de Java SE 7 3-13

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Criterios adicionales para reconocer objetos

Importancia del dominio de problemas:


Existe el objeto en los lmites del dominio de problemas?
Es necesario el objeto para que se termine la solucin?
Es necesario el objeto como parte de una interaccin entre
un usuario y el sistema?

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:

Existe el objeto en los lmites del dominio de problemas?


Es necesario el objeto para que se termine la solucin?
Es necesario el objeto como parte de una interaccin entre un usuario y la solucin?

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.

Conceptos fundamentales de Java SE 7 3-14

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

Conceptos fundamentales de Java SE 7 3-15

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

Conceptos fundamentales de Java SE 7 3-16

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Anlisis de un problema mediante el anlisis orientado a


objetos
Identificacin de un dominio de problemas
Identificacin de los objetos
Definicin de criterios adicionales para reconocer objetos
Definicin de atributos y operaciones
Anlisis de la solucin de un caso prctico
Diseo y modelado de una clase

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

Conceptos fundamentales de Java SE 7 3-17

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Identificacin de atributos y operaciones de


objetos

Los atributos son datos, como:


ID
Objeto de pedido

Las operaciones son acciones, como:


Suprimir elemento
Cambiar 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
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.)

Conceptos fundamentales de Java SE 7 3-18

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Objeto con otro objeto como atributo

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

Conceptos fundamentales de Java SE 7 3-19

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Posibles atributos y operaciones para objetos


en el caso prctico de Dukes Choice
order ID

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

Conceptos fundamentales de Java SE 7 3-20

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Anlisis de un problema mediante el anlisis orientado a


objetos
Identificacin de un dominio de problemas
Identificacin de los objetos
Definicin de criterios adicionales para reconocer objetos
Definicin de atributos y operaciones
Anlisis de la solucin de un caso prctico
Diseo y modelado de una clase

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

Conceptos fundamentales de Java SE 7 3-21

Solucin del caso prctico: Clases


Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

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

Conceptos fundamentales de Java SE 7 3-22

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Solucin del caso prctico: Atributos


Clase

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

Conceptos fundamentales de Java SE 7 3-23

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Solucin del caso prctico: Atributos


Clase

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

Conceptos fundamentales de Java SE 7 3-24

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Solucin del caso prctico: Comportamientos


Clase

Order

Shirt

Customer

Atributos

customer ID
name
address
phone number
email address
*Order

*Shirt(s)

name
extension

Comportamientos

verify credit card number


verify check payment

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

Conceptos fundamentales de Java SE 7 3-25

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Solucin del caso prctico: Comportamientos


Clase

Form of Payment

Catalog

CSR

Atributos

customer ID
name
address
phone number
email address
*Order

*Shirt(s)

name
extension

Comportamientos

verify credit card number


verify check payment

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

Conceptos fundamentales de Java SE 7 3-26

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Anlisis de un problema mediante el anlisis orientado a


objetos
Identificacin de un dominio de problemas
Identificacin de los objetos
Definicin de criterios adicionales para reconocer objetos
Definicin de atributos y operaciones
Anlisis de la solucin de un caso prctico
Diseo y modelado de una clase

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

Conceptos fundamentales de Java SE 7 3-27

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.

Conceptos fundamentales de Java SE 7 3-28

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Clases y objetos resultantes

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.

Conceptos fundamentales de Java SE 7 3-29

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.

attributeVariableName es el nombre de la variable de un atributo.


range of values es un rango opcional de valores que puede contener el atributo.
methodName es el nombre de un mtodo.

Conceptos fundamentales de Java SE 7 3-30

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.

Conceptos fundamentales de Java SE 7 3-31

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Uso del modelado similar a UML


UML: Unified Modeling Language
UML se utiliza para:
Modelar los objetos, los atributos, las operaciones y las
relaciones en programas orientados a objetos.
Modelar el comportamiento dinmico del sistema mostrando
colaboraciones entre objetos y cambios en los estados
internos de objetos.

Hay muchos cursos disponibles que ensean UML.

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.

Conceptos fundamentales de Java SE 7 3-32

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

Conceptos fundamentales de Java SE 7 3-33

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

d es falsa porque un atributo puede ser una referencia a otro objeto.

Conceptos fundamentales de Java SE 7 3-34

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

Disear una clase


y
T
l
I
n
RS se o
Modelar una clase
E
V
u

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

Conceptos fundamentales de Java SE 7 3-35

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Visin general de la prctica 3-1: Anlisis de un


problema mediante el anlisis orientado a objetos
En esta prctica, utilizar el anlisis orientado a objetos para
mostrar los objetos, los atributos y las operaciones de un caso
prctico.

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

Conceptos fundamentales de Java SE 7 3-36

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Visin general de la prctica 3-2:


Diseo de una solucin de programacin
En esta prctica, utilizar la tarea de la prctica 3-1 y producir
un diseo mediante una notacin similar a UML.
Para crear la notacin similar a UML, puede utilizar un editor
de texto simple o la herramienta UMLet. En el apndice B de la
Gua del alumno, titulado Consejos para UMLet, se
proporciona una breve visin general de la herramienta UMLet.

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

Conceptos fundamentales de Java SE 7 3-37

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

Conceptos fundamentales de Java SE 7 4-2

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Definicin de una clase, identificacin de componentes de


una clase y uso de variables
Anlisis de mtodos y el uso de un mtodo main
Identificacin de palabras clave
Prueba y ejecucin de un programa Java simple
Descripcin de algunas causas comunes de errores de
sintaxis
Descripcin del objetivo y las funciones de un depurador
IA
de IDE
AR

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

Conceptos fundamentales de Java SE 7 4-3

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

Conceptos fundamentales de Java SE 7 4-4

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Identificacin de los componentes de una clase

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.

Conceptos fundamentales de Java SE 7 4-5

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

Saba que... Una clase no tiene que contener mtodos y atributos.

Conceptos fundamentales de Java SE 7 4-6

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Estructuracin de clases
public class Shirt {

Declaraciones
de campo

Declaracin de clase

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 for all shirts
public int quantityInStock = 0;
// This method displays the values for an item
public void displayInformation() {
System.out.println("Shirt ID: " + shirtID);
System.out.println("Shirt description:" + description);
System.out.println("Color Code: " + colorCode);
System.out.println("Shirt price: " + price);
System.out.println("Quantity in stock: " + quantityInStock);

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

Conceptos fundamentales de Java SE 7 4-7

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Smbolos utilizados en la definicin de un


origen Java

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

Las comas (,) pueden separar varios argumentos y valores.


Las comillas simples (' ') definen caracteres nicos.
Las comillas dobles (" ") definen una cadena de varios caracteres.
Las barras inclinadas dobles (//) indican un comentario de una sola lnea.

Conceptos fundamentales de Java SE 7 4-8

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Unin de todo

Sintaxis para declarar una clase:


[modifiers] class class_identifier

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

Por ahora, utilice el modificador public.


La palabra clave class indica al compilador que el bloque de cdigo es una declaracin de
clase. Las palabras clave son palabras reservadas en el lenguaje de programacin Java
para determinadas construcciones.
class identifier es el nombre que se da a la clase. Las instrucciones de nomenclatura
de clases son las siguientes:
- Los nombres de clases deben ser sustantivos, con maysculas y minsculas, con la
primera letra de cada palabra en mayscula (por ejemplo, MyClass).
-

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

Conceptos fundamentales de Java SE 7 4-9

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

El ejemplo de clase que se muestra en la parte inferior de la diapositiva se describe de la


siguiente forma:
- La clase Shirt utiliza un modificador de clase public, seguido de la palabra clave
class, seguida de un nombre de clase Shirt.
- Las llaves se utilizan para delimitar todo el cuerpo del cdigo de la clase Shirt y
tambin el cuerpo del cdigo del mtodo setPrice.
-

Los parntesis se utilizan para delimitar el argumento transferido al mtodo


setPrice. (En una diapositiva posterior ver ms de la sintaxis del mtodo).
Se utiliza un punto y coma al final de la declaracin del campo, price.

Requisitos para el archivo de origen


En este curso, desarrollar sus clases para que el cdigo de programacin de tecnologa Java
que escriba para cada clase est en su propio archivo de texto o archivo de cdigo fuente. En el
lenguaje de programacin Java, los nombres de archivos de cdigo fuente deben coincidir con el
nombre de la clase pblica del archivo de cdigo fuente y deben tener una extensin .java. Por
ejemplo, la clase Shirt se debe guardar en un archivo denominado 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
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T

Conceptos fundamentales de Java SE 7 4-10

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.

d es incorrecta porque la palabra class tiene la inicial en mayscula.

Conceptos fundamentales de Java SE 7 4-11

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Declaraciones y asignaciones de campos


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

Conceptos fundamentales de Java SE 7 4-12

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Comentarios

Una sola lnea:

public int shirtID = 0; // Default ID for the shirt


public double price = 0.0; // Default price for all shirts
// The color codes are R=Red, B=Blue, G=Green

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

} // end of display method

Conceptos fundamentales de Java SE 7 4-13

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Comentarios tradicionales: una combinacin de los caracteres /* indica al compilador


que ignore lo que aparece en todas las lneas hasta un marcador de terminacin de
comentario, inclusive (*/).
-

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

Conceptos fundamentales de Java SE 7 4-14

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Definicin de una clase, identificacin de componentes de


una clase y uso de variables
Anlisis de mtodos y el uso de un mtodo main
Identificacin de palabras clave
Prueba y ejecucin de un programa Java simple
Descripcin de algunas causas comunes de errores de
sintaxis
Descripcin del objetivo y las funciones de un depurador
IA
de IDE
AR

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

Conceptos fundamentales de Java SE 7 4-15

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Mtodos

Sintaxis:

[modifiers] return_type method_identifier ([arguments]){


method_code_block
}

Ejemplo:

public void displayInformation() {


System.out.println("Shirt ID: " + shirtID);
System.out.println("Shirt description:" + description);
System.out.println("Color Code: " + colorCode);
System.out.println("Shirt price: " + price);
System.out.println("Quantity in stock: " + quantityInStock);

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.

Conceptos fundamentales de Java SE 7 4-16

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

method_identifier es el nombre del mtodo.


([arguments]) representa una lista de variables cuyos valores se transfieren al mtodo
para que los utilice. Los argumentos son opcionales (se indican con corchetes) ya que los
mtodos no son necesarios para aceptar argumentos. Tenga tambin en cuenta que los
parntesis no son opcionales. Un mtodo que no acepte argumentos se declara con un
juego de parntesis vaco.
method_code_block es una secuencia de sentencias que realiza el mtodo. Se puede
llevar a cabo una gran variedad de tareas en el bloque de cdigo o cuerpo del mtodo. En el
ejemplo de cdigo, la clase Shirt contiene un mtodo, el mtodo displayInformation,
que muestra los valores para los atributos de una camisa.

En el mtodo displayInformation, ve varias lneas de cdigo que llaman al mtodo


System.out.println. Este mtodo se utiliza para imprimir una cadena concreta de datos.
Utilizar este mtodo en la prctica posterior.

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

Conceptos fundamentales de Java SE 7 4-17

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Definicin de una clase, identificacin de componentes de


una clase y uso de variables
Anlisis de mtodos y el uso de un mtodo main
Identificacin de palabras clave
Prueba y ejecucin de un programa Java simple
Descripcin de algunas causas comunes de errores de
sintaxis
Descripcin del objetivo y las funciones de un depurador
IA
de IDE
AR

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

Conceptos fundamentales de Java SE 7 4-18

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

Conceptos fundamentales de Java SE 7 4-19

try

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Definicin de una clase, identificacin de componentes de


una clase y uso de variables
Anlisis de mtodos y el uso de un mtodo main
Identificacin de palabras clave
Prueba y ejecucin de un programa Java simple
Descripcin de algunas causas comunes de errores de
sintaxis
Descripcin del objetivo y las funciones de un depurador
IA
de IDE
AR

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

Conceptos fundamentales de Java SE 7 4-20

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Creacin y uso de una clase de prueba


Ejemplo:
class ShirtTest {
public static void main (String[] args) {
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
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

Crear una instancia de objeto de la clase y probar sus mtodos

Conceptos fundamentales de Java SE 7 4-21

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Mtodo main

Mtodo especial que JVM reconoce como punto de inicio


de cada programa de tecnologa Java que se ejecuta
desde una lnea de comandos.
Sintaxis:
public static void main (String[] args)

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)

El mtodo main cumple la sintaxis de todos los mtodos descrita anteriormente.


En concreto:
El mtodo main contiene dos modificadores necesarios, public y static.
El mtodo main no devuelve ningn valor, por lo que tiene un tipo de retorno void.
El mtodo main tiene un identificador de mtodo (nombre) main.
El mtodo main acepta cero o ms objetos de tipo String (String[] args). Esta
sintaxis permite introducir valores en la lnea de comandos para que los utilice el programa
mientras se ejecuta.

Conceptos fundamentales de Java SE 7 4-22

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:

1. Vaya al directorio en el que estn almacenados los archivos de cdigo fuente.


2. Introduzca el siguiente comando para cada archivo .java que desee compilar:
javac filename
Ejemplo:
javac Shirt.java
Una vez finalizada la compilacin y suponiendo que no se ha producido ningn error de
compilacin, debe tener un nuevo archivo denominado classname.class en el directorio para
cada archivo de cdigo fuente compilado. Si compila una clase que hace referencia a otros
objetos, las clases de dichos objetos tambin se compilan (si an no se han compilado). Por
ejemplo, si compila el archivo ShirtTest.java (que hace referencia a un objeto Shirt), puede
tener un archivo Shirt.class y ShirtTest.class.
Conceptos fundamentales de Java SE 7 4-23

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Ejecucin (prueba) de un programa


1. Vaya al directorio en el que estn almacenados los
archivos de clase.
2. Introduzca lo siguiente para el archivo de clase que
contiene el mtodo main:

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

Compilacin y ejecucin de un programa


mediante un IDE

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.

Conceptos fundamentales de Java SE 7 4-25

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Definicin de una clase, identificacin de componentes de


una clase y uso de variables
Anlisis de mtodos y el uso de un mtodo main
Identificacin de palabras clave
Prueba y ejecucin de un programa Java simple
Descripcin de algunas causas comunes de errores de
sintaxis
Descripcin del objetivo y las funciones de un depurador
IA
de IDE
AR

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

Conceptos fundamentales de Java SE 7 4-26

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Cmo evitar problemas de sintaxis

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.

Incluya un nmero par de smbolos como llaves, corchetes y comillas.

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.

Conceptos fundamentales de Java SE 7 4-27

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Definicin de una clase, identificacin de componentes de


una clase y uso de variables
Anlisis de mtodos y el uso de un mtodo main
Identificacin de palabras clave
Prueba y ejecucin de un programa Java simple
Descripcin de algunas causas comunes de errores de
sintaxis
Descripcin del objetivo y las funciones de un depurador
IA
de IDE
AR

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

Conceptos fundamentales de Java SE 7 4-28

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Trabajar con un depurador de IDE

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,

especificar formateadores de variables y omitir mtodos y paquetes mediante Step Filters.


Ventana Debugging: la ventana Debugging integra las vistas Sessions, Threads y Call
Stack.
Puntos de ruptura configurables: configure estos puntos de ruptura personalizados para
que los disparen condiciones y eventos como excepciones no resueltas, una carga de clase
o un acceso a variable.
Evaluacin de expresiones: evale las expresiones de sintaxis Java asignadas a las
comprobaciones y los puntos de ruptura condicionales activos mientras se desplaza por el
cdigo.
Desplazamiento por expresiones: vaya a las expresiones individuales de una sentencia.
Depuracin de varias sesiones: depure varios procesos al mismo tiempo.
HeapWalker: compruebe referencias a objetos mientras depura un programa.
Conceptos fundamentales de Java SE 7 4-29

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

En la captura de pantalla, puede ver un programa en mitad de una sesin de depuracin. La


flecha del panel izquierdo indica que el IDE se est desplazando por el cdigo y esta es la
siguiente lnea que se ejecutar. En la ventana Variables de la parte inferior de la pantalla, puede
ver los campos de la clase que se est ejecutando actualmente (a la que se hace referencia con
la palabra clave this). Durante una sesin de depuracin, puede cambiar los valores de estos
campos para intentar distintos supuestos. Esto resulta til para solucionar problemas lgicos.

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

Conceptos fundamentales de Java SE 7 4-30

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

Probar y ejecutar un programa simple


y
T
l
I
n
RS se o
Describir algunas causas comunes de
E
IV A u
N
errores de sintaxis
U EN
N

Describir el objetivo y las funcionesI de


AG
C
T
un depurador de IDE
DA AR

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

Conceptos fundamentales de Java SE 7 4-31

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Visin general de la prctica 4-1: Visualizacin y


adicin de cdigo en un programa Java existente
En esta prctica, se proporciona un programa Java terminado.
Durante la prctica:
Abrir el programa Java.
Examinar las lneas de cdigo.
Modificar el programa.
Compilar el programa.
Probar el programa mediante su ejecucin.

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

Conceptos fundamentales de Java SE 7 4-32

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Visin general de la prctica 4-2:


Creacin y compilacin de una clase Java
En esta prctica, crear una clase Java y la compilar.
Tambin crear otra clase Java para probar la clase anterior.

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

Conceptos fundamentales de Java SE 7 4-33

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Visin general de la prctica 4-3:


Exploracin del depurador
En esta prctica, depurar el programa ShirtTest mediante
el depurador de NetBeans. Durante la prctica:
Definir un punto de ruptura.
Examinar y modificar los valores de campos.
Utilizar un desplazamiento.

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

Conceptos fundamentales de Java SE 7 4-34

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Declaracin, inicializacin y uso de variables

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

Conceptos fundamentales de Java SE 7 5-2

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Importancia

Una variable hace referencia a algo que puede cambiar.


Las variables pueden contener un valor de un juego de
valores. Dnde ha visto variables con anterioridad?
Qu tipos de dato cree que pueden contener variables?

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

Conceptos fundamentales de Java SE 7 5-3

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Identificacin de los usos de las variables y definicin de la


sintaxis de una variable
Enumeracin de los ocho tipos de dato primitivos del
lenguaje de programacin Java
Declaracin, inicializacin y uso de variables y constantes
Modificacin de valores de variables mediante operadores
Uso de ampliacin y conversin de tipo

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

Conceptos fundamentales de Java SE 7 5-4

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Identificacin del uso y la sintaxis de las


variables
Ejemplo:
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 for all shirts

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.

Conceptos fundamentales de Java SE 7 5-5

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Identificacin del uso y la sintaxis de las


variables
Ejemplo:
public void displayDescription {
String displayString = "";
displayString = "Shirt description: " + description;
System.out.println(displayString);
}

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

Conceptos fundamentales de Java SE 7 5-6

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Usos de las variables

Contener datos nicos para una instancia de objeto


Asignar el valor de una variable a otra
Representar valores en una expresin matemtica
Imprimir los valores en la pantalla
Contener referencias a otros 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
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);

Contener referencias a otros objetos

Conceptos fundamentales de Java SE 7 5-7

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Declaracin e inicializacin de variables

Sintaxis (campos):
[modifiers] type identifier [= value];

Sintaxis (variables locales):


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.

Conceptos fundamentales de Java SE 7 5-8

Nota: no utilice modificadores con variables locales (variables declaradas en mtodos).


identifier es el nombre asignado a la variable que es de tipo type.
value es el valor que desea asignar a la variable. El valor es opcional ya que no necesita
asignar un valor a una variable en el momento que declara la variable.

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

A continuacin, se muestran las declaraciones de los campos de la clase Shirt:


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
nd NAL
a
ity FE
s
r
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T

Conceptos fundamentales de Java SE 7 5-9

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Identificacin de los usos de las variables y definicin de la


sintaxis de una variable
Enumeracin de los ocho tipos de dato primitivos del
lenguaje de programacin Java
Declaracin, inicializacin y uso de variables y constantes
Modificacin de valores de variables mediante operadores
Uso de ampliacin y conversin de tipo

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

Conceptos fundamentales de Java SE 7 5-10

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Descripcin de tipos de dato primitivos

Tipos integrales (byte, short, int y long)


Tipos de coma flotante (float y double)
Tipo textual (char)
Tipo lgico (boolean)

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

Conceptos fundamentales de Java SE 7 5-11

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Tipos primitivos integrales


Tipo

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.

Conceptos fundamentales de Java SE 7 5-12

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Tipos primitivos integrales


Tipo

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.

Conceptos fundamentales de Java SE 7 5-13

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Tipos primitivos de coma flotante


Tipo

Longitud Float

Ejemplos de valores literales


permitidos

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:

public double price = 0.0; // Default price for all shirts

Nota: utilice el tipo double cuando sea necesario un rango o precisin mayor.

Conceptos fundamentales de Java SE 7 5-14

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Tipo primitivo textual

El nico tipo de dato textual primitivo es char.

Se utiliza para un nico carcter (16 bits).


Ejemplo:
public char colorCode = 'U';

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.

Conceptos fundamentales de Java SE 7 5-15

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

Conceptos fundamentales de Java SE 7 5-16

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Tipo primitivo lgico

El nico tipo de dato es boolean.


Solo puede almacenar true o false.

Contiene el resultado de una expresin que se evala en


true o 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
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.

Conceptos fundamentales de Java SE 7 5-17

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Identificacin de los usos de las variables y definicin de la


sintaxis de una variable
Enumeracin de los ocho tipos de dato primitivos del
lenguaje de programacin Java
Declaracin, inicializacin y uso de variables y constantes
Modificacin de valores de variables mediante operadores
Uso de ampliacin y conversin de tipo

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

Conceptos fundamentales de Java SE 7 5-18

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Asignacin de nombres a variables


Reglas:
Los identificadores de variables deben empezar por una
letra mayscula o minscula, un carcter de subrayado (_)
o un signo de dlar ($).

Los identificadores de variables no pueden contener


puntuacin, espacios ni guiones.
No se pueden utilizar las palabras clave de la tecnologa
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
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.

Conceptos fundamentales de Java SE 7 5-19

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Asignacin de nombres a variables


Instrucciones:
Empezar cada variable por una letra minscula. Las
siguientes palabras deben tener la inicial mayscula (por
ejemplo, myVariable).

Seleccionar nombres que sean nemotcnicos y que


indiquen al observador casual la intencin de la variable.

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

Conceptos fundamentales de Java SE 7 5-20

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Asignacin de un valor a una variable

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;

El operador = asigna el valor de la derecha al elemento de la izquierda. El operador = se debe


leer como est asignado a. En el ejemplo anterior, puede decir 12.99 est asignado a precio.
Los operadores, como el operador de asignacin (=), se explican ms adelante en este curso.
Nota: los campos se inicializan automticamente: los tipos integrales se definen en 0, los tipos de
coma flotante se definen en 0.0, el tipo char se define en \u0000 y el tipo boolean se define
en false. Sin embargo, debe inicializar explcitamente los campos para que otras personas
puedan leer el cdigo. Las variables locales (declaradas en un mtodo) se deben inicializar
explcitamente antes de su uso.

Conceptos fundamentales de Java SE 7 5-21

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Declaracin e inicializacin de varias variables


en una lnea de cdigo

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;

Conceptos fundamentales de Java SE 7 5-22

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Mtodos adicionales para declarar variables


y asignar valores a variables

Asignacin de valores literales:

int ID = 0;
float pi = 3.14F;
char myChar = 'G';
boolean isOpen = false;

Asignacin del valor de una variable a otra:


int ID = 0;
int saleID = 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
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;

Asignacin del valor de una variable a otra:


int ID = 0;
int saleID = ID;

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.

Conceptos fundamentales de Java SE 7 5-23

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Mtodos adicionales para declarar variables


y asignar valores a variables

Asignacin del resultado de una expresin a variables


integrales, de coma flotante o booleanas:

float numberOrdered = 908.5F;


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

Conceptos fundamentales de Java SE 7 5-24

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Constantes

Variable (puede cambiar):


double salesTax = 6.25;

Constante (no puede cambiar):


final int NUMBER_OF_MONTHS = 12;

Instrucciones: las constantes deben ir en mayscula, con


las palabras separadas con un carcter de subrayado (_).

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 (_).

Conceptos fundamentales de Java SE 7 5-25

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Almacenamiento de primitivos y constantes


en memoria
Variable local declarada en
un mtodo

Objetos con campos

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.

Conceptos fundamentales de Java SE 7 5-26

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

Conceptos fundamentales de Java SE 7 5-27

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Identificacin de los usos de las variables y definicin de la


sintaxis de una variable
Enumeracin de los ocho tipos de dato primitivos del
lenguaje de programacin Java
Declaracin, inicializacin y uso de variables y constantes
Modificacin de valores de variables mediante operadores
Uso de ampliacin y conversin de tipo

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

Conceptos fundamentales de Java SE 7 5-28

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Operadores matemticos estndar


Objetivo

Operador Ejemplo

Suma

sum = num1 + num2;


Si num1 es 10 y num2
es 2, sum es 12.

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

Conceptos fundamentales de Java SE 7 5-29

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Operadores matemticos estndar


Objetivo

Operador Ejemplo

Resto

Comentarios

mod = num1 % num2; El resto busca el


Si num1 es 31 y num2
resto del primer
es 6, mod es 1.
nmero dividido
entre el segundo
nmero.
5 R 1
6 31
30
----1
El resto siempre da
una respuesta con el
mismo signo como
primer operando.

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:

Conceptos fundamentales de Java SE 7 5-30

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Operadores de aumento y disminucin (++ y --)


Forma extendida:
age = age + 1;
o bien
count = count 1;

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

Conceptos fundamentales de Java SE 7 5-31

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Operadores de aumento y disminucin (++ y --)


Forma breve:
Operador

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;

Conceptos fundamentales de Java SE 7 5-32

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Operadores de aumento y disminucin (++ y --)

Operador

Objetivo

--

Disminucin previa int i = 6;


int j = --i;
(--variable)
i is 5, j is 5
Disminucin
posterior
(variable--)

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

Conceptos fundamentales de Java SE 7 5-33

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Operadores de aumento y disminucin (++ y --)


Ejemplos:
int count=15;
int a, b, c, d;
a = count++;
b = count;
c = ++count;
d = count;
System.out.println(a + ", " + b + ", " + c + ", " + d);

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

El resultado de este fragmento de cdigo es el siguiente:


15, 16, 17, 17
Anlisis: Cul es el resultado del cdigo siguiente?
int i = 16;
System.out.println(++i + " " + i++ + " " + i);

Conceptos fundamentales de Java SE 7 5-34

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

Conceptos fundamentales de Java SE 7 5-35

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.

Conceptos fundamentales de Java SE 7 5-36

Ejemplo de la necesidad de reglas de prioridad

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

En el siguiente ejemplo se muestra la necesidad de establecer la prioridad de los operadores:


c = 25 - 5 * 4 / 2 - 10 + 4;
En este ejemplo, no queda clara la intencin del autor. El resultado se puede evaluar de dos
formas:
El resultado de la expresin cuando se evala estrictamente de izquierda a derecha: 34
c = 25 - 5 * 4 / 2 - 10 + 4;

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

Conceptos fundamentales de Java SE 7 5-37

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;

Conceptos fundamentales de Java SE 7 5-38

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Identificacin de los usos de las variables y definicin de la


sintaxis de una variable
Enumeracin de los ocho tipos de dato primitivos del
lenguaje de programacin Java
Declaracin, inicializacin y uso de variables y constantes
Modificacin de valores de variables mediante operadores
Uso de ampliacin y conversin de tipo

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

Conceptos fundamentales de Java SE 7 5-39

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Uso de ampliacin y conversin de tipo

Ejemplo de un posible problema:


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

Ejemplo de una posible solucin:


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

Conceptos fundamentales de Java SE 7 5-40

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

Conceptos fundamentales de Java SE 7 5-41

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.

Ejemplo de ampliaciones automticas:


long big = 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 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.

Conceptos fundamentales de Java SE 7 5-42

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

Conceptos fundamentales de Java SE 7 5-43

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Conversin de tipo

Sintaxis:
identifier = (target_type) value

Ejemplo de un posible problema:

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

Ejemplo de una posible solucin:

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 +

bits of memory to hold the value


bits of memory to hold the value
of memory reserved
num2); // no data loss

siguiente:

identifier = (target_type) value

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.

Conceptos fundamentales de Java SE 7 5-44

Por ejemplo, considere la siguiente asignacin:

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

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

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 +

bits of memory to hold the value


bits of memory to hold the value
of memory reserved
num2); // no data loss

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

Conceptos fundamentales de Java SE 7 5-45

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

Conceptos fundamentales de Java SE 7 5-46

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Suposiciones del compilador para


tipos de dato integrales y de coma flotante

Ejemplo de un posible problema:


short
a = 1
b = 2
c = a

a, b, c;
;
;
+ b ; //compiler error

Ejemplo de posibles soluciones:


Declarar c como tipo int en la declaracin original:

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

Ampliacin a valores float


Si una expresin contiene un valor float, la expresin entera se ampla a float. Todos
los valores literales con coma flotante se ven como double.

Conceptos fundamentales de Java SE 7 5-47

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;

Convertir el tipo del resultado de (a+b) en la lnea de asignacin:


c = (short)(a+b);

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

Conceptos fundamentales de Java SE 7 5-48

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Tipos de dato de coma flotante y asignacin

Ejemplo de un posible problema:


float float1 = 27.9; //compiler error

Ejemplo de posibles soluciones:


La F notifica al compilador que 27.9 es un valor float:
float float1 = 27.9F;

27.9 se convierte a un tipo float:


float float1 = (float) 27.9;

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

Los dos siguientes funcionan correctamente:


La F notifica al compilador que 27.9 es un valor float:
float float1 = 27.9F;

27.9 se convierte a un tipo float:


float float1 = (float) 27.9;

Conceptos fundamentales de Java SE 7 5-49

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

Conceptos fundamentales de Java SE 7 5-50

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

Conceptos fundamentales de Java SE 7 5-51

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

Conceptos fundamentales de Java SE 7 5-52

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Visin general de la prctica 5-1:


Declaracin de variables de campo en una clase
En esta prctica, realizar las siguientes tareas:
Creacin de una clase que contenga varios campos
Declaracin de variables de campo y su inicializacin
Prueba de la clase mediante la ejecucin un programa de
prueba proporcionado

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

Conceptos fundamentales de Java SE 7 5-53

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Visin general de la prctica 5-2: Uso de


operadores y conversin de tipo para evitar la
prdida de datos
En esta prctica, realizar las siguientes tareas:
Uso de operadores para calcular la edad
Uso de la conversin de tipo para evitar la prdida de
datos
Creacin de un programa de temperaturas para convertir
Fahrenheit en Celsius

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

Conceptos fundamentales de Java SE 7 5-54

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

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

Conceptos fundamentales de Java SE 7 6-2

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Declaracin, instanciacin e inicializacin de objetos


Trabajar con referencias de objetos
Uso de la clase String
Uso de la documentacin de la API de Java
Uso de la clase StringBuilder

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

Conceptos fundamentales de Java SE 7 6-3

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Trabajar con objetos: Introduccin


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.

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

Conceptos fundamentales de Java SE 7 6-4

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Acceso a objetos mediante una referencia


La cmara es como el
objeto al que se accede a
travs de la referencia
(control remoto).

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

Conceptos fundamentales de Java SE 7 6-5

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

descriptivos como displayInformation(), se utilizar display() en el resto del curso para


que los ejemplos de cdigo sean ms compactos y fciles de leer.

Conceptos fundamentales de Java SE 7 6-6

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Declaracin, instanciacin e inicializacin de objetos


Trabajar con referencias de objetos
Uso de la clase String
Uso de la documentacin de la API de Java
Uso de la clase StringBuilder

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

Conceptos fundamentales de Java SE 7 6-7

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Trabajar con variables de referencia de objetos


Declaracin:
Classname identifier;
Este fragmento de
cdigo crea el objeto.

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.

Conceptos fundamentales de Java SE 7 6-8

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Declaracin e inicializacin: Ejemplo


1

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.

apunta la referencia (la clase del objeto).


2. Cree la instancia del objeto mediante la palabra clave new.
3. Inicialice la variable de referencia de objeto mediante la asignacin del objeto a dicha
variable.

Conceptos fundamentales de Java SE 7 6-9

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Trabajar con referencias de objetos


Declarar e
inicializar la
referencia.

Shirt myShirt = new Shirt();


int shirtId = myShirt.shirtId;
myShirt.display();

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.

Conceptos fundamentales de Java SE 7 6-10

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Trabajar con referencias de objetos


1

Crear un objeto Shirt


y obtener una
referencia a l.

Shirt myShirt = new Shirt();

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.

Obtener el control remoto (denominado referencia)


Pulsar los botones (denominados mtodos)

Conceptos fundamentales de Java SE 7 6-11

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Trabajar con referencias de objetos

remote2

Solo hay
un objeto
Camera.

Camera remote1 = new Camera();


Camera remote2 = remote1;
remote1.play();
remote2.stop();

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

Conceptos fundamentales de Java SE 7 6-12

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Referencias a diferentes objetos

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.

Conceptos fundamentales de Java SE 7 6-13

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Referencias a diferentes tipos de objetos

El tipo de
referencia es Shirt.

El tipo de objeto
es Shirt.

Shirt myShirt = new Shirt();


myShirt.display();
Trousers myTrousers = new Trousers();
myTrousers.display();

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.

Conceptos fundamentales de Java SE 7 6-14

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Referencias y objetos en memoria


int counter = 10;
Shirt myShirt = new Shirt();
Shirt yourShirt = new Shirt();

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.

Conceptos fundamentales de Java SE 7 6-15

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Asignacin de una referencia a otra

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

Otro efecto de la asignacin de la referencia yourShirt a la referencia myShirt es que si se el


objeto anterior al que se hace referencia mediante myShirt no tiene ninguna otra referencia,
ahora ser inaccesible. En su debido momento, ser basura recolectada, lo que significa que su
memoria estar disponible para almacenar otros objetos.

Conceptos fundamentales de Java SE 7 6-16

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Dos referencias, un objeto


Fragmento de cdigo:
Shirt myShirt = new Shirt();
Shirt yourShirt = new Shirt();
myShirt = yourShirt;
myShirt.colorCode = 'R';
yourShirt.colorCode = 'G';

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

Conceptos fundamentales de Java SE 7 6-17

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Asignacin de una referencia a otra

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

funcionar controles remotos con el mismo televisor.

Conceptos fundamentales de Java SE 7 6-18

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

Conceptos fundamentales de Java SE 7 6-19

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Declaracin, instanciacin e inicializacin de objetos


Trabajar con referencias de objetos
Uso de la clase String
Uso de la documentacin de la API de Java
Uso de la clase StringBuilder

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

Conceptos fundamentales de Java SE 7 6-20

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

Un objeto String es inmutable; su valor no se puede


cambiar.
RIA y
A
Un objeto String se puede utilizar con el smbolo delIT
nl
S
o
R
operador de concatenacin de cadenas (+) para
E la use
V
I
concatenacin.
UN NA

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.

Conceptos fundamentales de Java SE 7 6-21

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

La concatenacin crea una nueva cadena y la referencia


String theirNames apunta ahora a esta nueva cadena.

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

Conceptos fundamentales de Java SE 7 6-22

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Concatenacin de cadenas

String myString = "Hello";

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

Conceptos fundamentales de Java SE 7 6-23

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Concatenacin de cadenas

String myString = "Hello";


myString = myString.concat(" World");

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

Conceptos fundamentales de Java SE 7 6-24

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

Conceptos fundamentales de Java SE 7 6-25

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Llamadas al mtodo String con valores de retorno


primitivos
Una llamada a mtodo puede devolver un nico valor de
cualquier tipo.
Ejemplo de un mtodo de tipo primitivo int:
String hello = "Hello World";
int stringLength = hello.length();

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

Conceptos fundamentales de Java SE 7 6-26

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Llamadas al mtodo String con valores de retorno


de objeto
Llamadas a mtodo que devuelven objetos:
String greet = " HOW ".trim();
String lc = greet + "DY".toLowerCase();
O bien
String lc = (greet + "DY").toLowerCase();

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

Conceptos fundamentales de Java SE 7 6-27

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Llamadas a mtodos que necesitan argumentos


Las llamadas a mtodos pueden necesitar transferir uno o ms
argumentos:
Transferir un primitivo
String theString = "Hello World";
String partString = theString.substring(6);

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.

Conceptos fundamentales de Java SE 7 6-28

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Declaracin, instanciacin e inicializacin de objetos


Trabajar con referencias de objetos
Uso de la clase String
Uso de la documentacin de la API de Java
Uso de la clase StringBuilder

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

Conceptos fundamentales de Java SE 7 6-29

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Documentacin de la API de Java


Consta de un juego de pginas web.
Muestra todas las clases de la API
Descripciones de la funcin de la clase
Lista de constructores, mtodos y campos de la clase

Gran cantidad de hiperenlaces para mostrar las


interconexiones entre las clases y facilitar la bsqueda
Disponible en el sitio web de Oracle en:
http://download.oracle.com/javase/7/docs/api/index.html

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.

Conceptos fundamentales de Java SE 7 6-30

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Documentacin de la plataforma Java SE 7


Aqu puede
seleccionar All
Classes
o un paquete
concreto.

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.

Conceptos fundamentales de Java SE 7 6-31

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Documentacin de la plataforma Java SE 7


Al desplazarse hacia abajo, se
muestra ms informacin de la
clase 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
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

Conceptos fundamentales de Java SE 7 6-32

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Plataforma Java SE 7: Resumen del mtodo

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.

Conceptos fundamentales de Java SE 7 6-33

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Plataforma Java SE 7: Detalles del mtodo


Haga clic aqu para obtener la
descripcin detallada del
mtodo.
Descripcin detallada
del mtodo indexOf().

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.

Conceptos fundamentales de Java SE 7 6-34

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:

1. Vaya a la clase System y busque el tipo del campo A


RI y
out.
A
T

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

Conceptos fundamentales de Java SE 7 6-35

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Documentacin sobre System.out.println()

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

Conceptos fundamentales de Java SE 7 6-36

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Uso de los mtodos print() y println()

Mtodo println:
System.out.println(data_to_print);

Ejemplo:
System.out.print("Carpe diem ");
System.out.println("Seize the day");

Este mtodo muestra lo siguiente:


Carpe diem 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.

Conceptos fundamentales de Java SE 7 6-37

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Declaracin, instanciacin e inicializacin de objetos


Trabajar con referencias de objetos
Uso de la clase String
Uso de la documentacin de la API de Java
Uso de la clase StringBuilder

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

Conceptos fundamentales de Java SE 7 6-38

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.

Tiene un amplio juego de mtodos para agregar, insertar y


suprimir.
Tiene muchos mtodos para devolver una referencia al
objeto actual. No hay ningn costo de instanciacin.
Se puede crear con la capacidad inicial que mejor se
adapte a las necesidades.
String sigue siendo necesaria porque:
RIA y
A
SIT e onl
Su uso puede ser ms seguro que un objeto inmutable.
R
IVE A us
Una clase de la API puede necesitar una cadena.
N
U EN
N
Tiene muchos ms mtodos no disponibles
en

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

Conceptos fundamentales de Java SE 7 6-39

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Ventajas de StringBuilder sobre String


para la concatenacin (o adicin)
Concatenacin de cadenas
String myString = "Hello";
Costosa
en trminos deWorld);
creacin
myString
= myString.concat("

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

Conceptos fundamentales de Java SE 7 6-40

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

StringBuilder: Declaracin e instanciacin

StringBuilder mySB = new StringBuilder("Hello");

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

Conceptos fundamentales de Java SE 7 6-41

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Adicin de StringBuilder

StringBuilder mySB = new StringBuilder("Hello");


mySB.append(" World");

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

Conceptos fundamentales de Java SE 7 6-42

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

Conceptos fundamentales de Java SE 7 6-43

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.

Para acceder a los campos y mtodos de un objeto,


obtenga una variable de referencia al objeto:
El mismo objeto puede tener ms de una referencia.

Una referencia de objeto existente se puede reasignar a


RIA y
una nueva variable de referencia.
A
SIT e onl
La palabra clave new instancia un nuevo
R
E
s
objeto y devuelve una referencia.
NIV A u

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

Conceptos fundamentales de Java SE 7 6-44

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Visin general de la prctica 6-1:


Creacin y manipulacin de objetos Java
En esta prctica, crear instancias de una clase y manipular
estas instancias de varias formas. En esta prctica, podr:
Crear e inicializar instancias de objeto
Manipular referencias 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
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T

Conceptos fundamentales de Java SE 7 6-45

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Visin general de la prctica 6-2:


Uso de la clase StringBuilder
En esta prctica, crear, inicializar y manipular objetos
StringBuilder.

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

Conceptos fundamentales de Java SE 7 6-46

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Visin general de la prctica 6-3:


Examen de la especificacin de la API de Java
En esta prctica, examinar la especificacin de la API de
Java para familiarizarse con la documentacin y con la
bsqueda de clases y mtodos.
No se espera que comprenda todo lo que vea.
Sin embargo, a medida que avance en este curso,
comprender cada vez ms la documentacin de la API 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
ive COM
n
e U ICO
l
c
Ora OLOG
CN
E
T

Conceptos fundamentales de Java SE 7 6-47

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

Uso de operadores y construcciones de


decisin

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

Conceptos fundamentales de Java SE 7 7-2

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Importancia

Cuando tiene que tomar una decisin para la que existan


varios caminos diferentes, cmo selecciona en ltima
instancia un camino en lugar de los otros?
Por ejemplo, en qu cosas piensa cuando va a comprar
un artculo?

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

Conceptos fundamentales de Java SE 7 7-3

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Uso de operadores relacionales y condicionales


Creacin de construcciones if e if/else
Encadenamiento de una sentencia if/else
Uso de 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

Conceptos fundamentales de Java SE 7 7-4

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Uso de operadores relacionales y condicionales

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.

Conceptos fundamentales de Java SE 7 7-5

Ejemplo de ascensor
Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

public class Elevator {


public
public
public
public

boolean doorOpen=false; // Doors are closed by default


int currentFloor = 1; // All elevators start on first floor
final int TOP_FLOOR = 10;
final int MIN_FLOORS = 1;

public void openDoor() {


System.out.println("Opening door.");
doorOpen = true;
System.out.println("Door is open.");
}

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.");
}

El ascensor puede subir una planta.


El ascensor puede bajar una planta.

Ver diferentes variaciones de la clase Elevator en esta leccin y en posteriores, incluidas


distintas variaciones que ilustran el uso de construcciones de decisin. El cdigo completo del
ejemplo del ascensor para esta leccin es el siguiente:

Conceptos fundamentales de Java SE 7 7-6

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

public class Elevator {


public
public
public
public

boolean doorOpen=false; // Default setting


int currentFloor = 1; // Default starting point
final int TOP_FLOOR = 10;
final int MIN_FLOORS = 1;

public void openDoor() {


System.out.println("Opening door.");
doorOpen = true;
System.out.println("Door is open.");
}
public void closeDoor() {
System.out.println("Closing door.");
doorOpen = false;
System.out.println("Door is closed.");
}
public void goUp() {
System.out.println("Going up 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
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

Conceptos fundamentales de Java SE 7 7-7

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

Conceptos fundamentales de Java SE 7 7-8

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)

Conceptos fundamentales de Java SE 7 7-9

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Prueba de la igualdad entre cadenas


Ejemplo:
public class Employees {
public String name1 = "Fred Smith";
public String name2 = "Joseph Smith";
public void areNamesEqual() {
if (name1.equals(name2)) {
System.out.println("Same name.");
}
else {
System.out.println("Different name.");
}

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.

Conceptos fundamentales de Java SE 7 7-10

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Operadores condicionales comunes

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.

Conceptos fundamentales de Java SE 7 7-11

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Operador condicional ternario

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

Conceptos fundamentales de Java SE 7 7-12

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Uso de operadores relacionales y condicionales


Creacin de construcciones if e if/else
Encadenamiento de una sentencia if/else
Uso de 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

Conceptos fundamentales de Java SE 7 7-13

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Creacin de construcciones if e if/else


Una sentencia if, o una construccin if, ejecuta un
bloque de cdigo si una expresin es true.

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

Conceptos fundamentales de Java SE 7 7-14

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

Ejemplo de posible salida:


Opening door.
Door is open.
Closing door.
Door is closed.
Going down one floor.

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

Se trata de un error en la lgica.

// program continues here

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.

Conceptos fundamentales de Java SE 7 7-15

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Construccin if: Ejemplo


...
public void goDown() {

El ascensor no puede bajar


y se muestra un error.

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
}

El ascensor puede bajar y se


muestra la planta actual ms la
nueva planta.

Conceptos fundamentales de Java SE 7 7-16

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

public class IfElevator {


public
public
public
public

boolean doorOpen=false; // Default setting


int currentFloor = 1; // Default starting point
final int TOP_FLOOR = 10;
final int MIN_FLOORS = 1;

public void openDoor() {


System.out.println("Opening door.");
doorOpen = true;
System.out.println("Door is open.");
}
public void closeDoor() {
System.out.println("Closing door.");
doorOpen = false;
System.out.println("Door is closed.");
}
public void goUp() {
System.out.println("Going up one floor.");
currentFloor++;
System.out.println("Floor: " + currentFloor);
}
public void goDown() {

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

Conceptos fundamentales de Java SE 7 7-17

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Construccin if: Salida


Ejemplo de posible salida:
Opening
Door is
Closing
Door is

door.
open.
door.
closed.

La lgica de Elevator evita el problema.

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

Conceptos fundamentales de Java SE 7 7-18

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.

Conceptos fundamentales de Java SE 7 7-19

public class NestedIfElevator {


public boolean doorOpen=false; // Doors are closed by default
public int currentFloor = 1; // All elevators start on first floor
public final int TOP_FLOOR = 10;

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

public final int MIN_FLOORS = 1;


public void openDoor() {
System.out.println("Opening door.");
doorOpen = true;
System.out.println("Door is open.");
}
public void closeDoor() {
System.out.println("Closing door.");
doorOpen = false;
System.out.println("Door is closed.");

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

}
}
}

Conceptos fundamentales de Java SE 7 7-20

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

condicionales y valores cuyo resultado es un valor true o false.


code_block1 representa las lneas de cdigo que se ejecutan si la expresin es true y
code_block2 representa las lneas de cdigo que se ejecutan si la expresin es false.

Conceptos fundamentales de Java SE 7 7-21

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Construccin if/else: Ejemplo


public void goUp() {
System.out.println("Going up one floor.");
currentFloor++;
System.out.println("Floor: " + currentFloor);
}
public void goDown() {

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:

Conceptos fundamentales de Java SE 7 7-22

public class IfElseElevator {


public boolean doorOpen=false; // Default setting
public int currentFloor = 1; // Default setting
public final int TOP_FLOOR = 10;

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

public final int MIN_FLOORS = 1;


public void openDoor() {
System.out.println("Opening door.");
doorOpen = true;
System.out.println("Door is open.");
}
public void closeDoor() {
System.out.println("Closing door.");
doorOpen = false;

RIA y
A
}
SIT e onl
R
IVE A us
N
public void goUp() {
U EN
N

System.out.println("Going up one floor.");


I
AG
C
T
currentFloor++;
DA CAR
N
U" + C
O
System.out.println("Floor:
currentFloor);
F
d
L
}
an ENA
y
t
si MF
r
e
O{
public void
nivgoDown()
C
U
le GICO
c
a
Or ifO(currentFloor
== MIN_FLOORS) {
LO
N
C System.out.println("Cannot Go down");
E
T }
System.out.println("Door is closed.");

else {
System.out.println("Going down one floor.");
currentFloor--;
System.out.println("Floor: " + currentFloor);}
}
}
}

Conceptos fundamentales de Java SE 7 7-23

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

La lgica de Elevator evita el problema.

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

Conceptos fundamentales de Java SE 7 7-24

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Uso de operadores relacionales y condicionales


Creacin de construcciones if e if/else
Encadenamiento de una sentencia if/else
Uso de 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

Conceptos fundamentales de Java SE 7 7-25

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Encadenamiento de construcciones if/else


Sintaxis:
if (boolean_expression) {
<code_block1>
} // end of if construct
else if (boolean_expression){
<code_block2>
} // end of else if construct

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 {

code_block2 representa las lneas de cdigo que se ejecutan si la expresin es false y la


condicin de la segunda sentencia if es true.
code_block3 representa las lneas de cdigo que se ejecutan si la expresin de la
segunda sentencia if tambin se evala como false.

Conceptos fundamentales de Java SE 7 7-26

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Encadenamiento de construcciones if/else


...
public void calculateNumDays() {

Se ejecuta cuando la
sentencia if es true.

if (month == 1 || month == 3 || month == 5 || month == 7 ||


month == 8 || month == 10 || month == 12) {
System.out.println("There are 31 days in that month.");

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

Conceptos fundamentales de Java SE 7 7-27

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Temas

Uso de operadores relacionales y condicionales


Creacin de construcciones if e if/else
Encadenamiento de una sentencia if/else
Uso de 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

Conceptos fundamentales de Java SE 7 7-28

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Uso de la construccin switch


Sintaxis:
switch (variable) {
case literal_value:
<code_block>
[break;]
case another_literal_value:
<code_block>
[break;]
[default:]
<code_block>
}

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.

Conceptos fundamentales de Java SE 7 7-29

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

Conceptos fundamentales de Java SE 7 7-30

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Uso de la construccin switch: Ejemplo

public class SwitchDate {


public int month = 10;
public void calculateNumDays() {
switch(month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println("There are 31 days in that month.");
break;

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.").

Conceptos fundamentales de Java SE 7 7-31

public class SwitchDate {


public int month = 10;

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

public void calculateNumDays() {


switch(month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println("There are 31 days in that month.");
break;
case 2:
System.out.println("There are 28 days in that month.");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println("There are 30 days in that month.");
break;
default:
System.out.println("Invalid month.");
break;
}

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

Conceptos fundamentales de Java SE 7 7-32

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Cundo utilizar construcciones switch

Pruebas de igualdad
Pruebas en un nico valor, como customerStatus
Pruebas en el valor del tipo int, short, byte, o char y
String

Pruebas en un valor corregido conocido en el momento de


la compilacin

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

Conceptos fundamentales de Java SE 7 7-33

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

Conceptos fundamentales de Java SE 7 7-34

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.

Conceptos fundamentales de Java SE 7 7-35

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

Conceptos fundamentales de Java SE 7 7-36

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Visin general de la prctica 7-1:


Escritura de una clase que utiliza la sentencia
if/else
En esta prctica, crear clases que utilicen construcciones if
e if/else. Existen dos secciones en esta prctica:
En la primera seccin, crear la clase DateTwo que utiliza
sentencias if/else para mostrar el da de la semana
segn el valor de la variable.
En la segunda seccin, crear la clase Clock que utiliza
sentencias if/else para mostrar la parte del da, segn
la hora del da.
IA

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

Conceptos fundamentales de Java SE 7 7-37

Unauthorized reproduction or distribution prohibited Copyright 2012, Oracle and/or its affiliates

Visin general de la prctica 7-2:


Escritura de una clase que utiliza la sentencia
switch
En esta prctica, crear una clase llamada Month que utilice
sentencias switch para mostrar el nombre del mes segn el
valor numrico de un campo.

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

Conceptos fundamentales de Java SE 7 7-38

Anda mungkin juga menyukai