Está en la página 1de 304

PrQgramacin Java para no

. ,, . .' Programadores
. . SL-110-SE6
' '\:::-(}0
Manual del alumno
Sun Microsystems, Inc.
UBRM00.195
500 Eldorado Blvd.
Broomfield, CO 80021
EE.UU.
Revisin E.l
~
1
~
~
\ f ~ .
.
Copyright 2007 S un Mlcrosystems, Jnc. 4150 Network Cirde, Santa Clara, California 95054, EE.UU. Reservados todos los derechos.
Este producto o documento est protegido por copyright y se distribuye con licencias que restringen su uso, copla, distribucin y divisin
en partea. No se puede reproducir ninglm.a parte de este producto o documento de ninguna foJma ni por llJn8tin l o sin la autorizacin
previa por escrito deSun y sus ceden tes, silos hubiera .
El software de otros proveedores, incluida la tecnologa de fuentes, est protegido por copyright y se utiliza oon licencia de los proveedores
deSun.
Sun, Sun Mlcrosystems,ellogotipo de Sun, el logotipo de Duke, Forte, Java, Java Database Connectivily, JOBC, NetBeans, JDK, J2EE, J2ME,
J2SE, JVM, JaVliStaUon, }avadoc, Solaris y Wrlte Ona!, Run Anywhere son marcas comerciales o registradas de Sun Mlcrosystems, Jnc. en
los EE.UU. y otros paises.
Todas las marcas SPARC se utilizan bajo licencia y son marcas comerciales o marcas registradas de SPARC Jntemational, Jnc. en Estados
Unidos y otros paises. Los productos que llevan marcas SPARC estn basados en Wta arquitectura desarrollada por SunMicrosystems, Jnc.
La exportacin de este producto podria requerir la aprobacin del Gobierno de los EE.UU.
DERECHOS RFSTRINGIDOS: el uso, la duplkadn o divulgacin por parte del Gobierno de los EE.UU. esl sujeta a las limitaciones de la
siguiente reglamentacin: FAR 52.22714(g)(2)(6/87) y FAR 52.227-19(6/87), o OFAR 252.227-7015 (b)(6/95) y DFAR227.72023(a).
ESTADOCUMENTAONSEENTREGA"TALCUAL",SlNGARANl'ADENlNGUNACLASE,NlEXPRESANllMPOTA,LOQUE
INCLUYE CUALQUIER GARANA IMPCITA DE COMERCIALIZACIN, ADECUACIN A UN PROPSITO ESPEdFICO O NO
INFRACCIN, HASTA EL LMITE EN QUE TALES EXENOONES NO SE CONSIDEREN VLIDAS EN'ffiRMlNOS LEGALES.
aSTE ES UN MANUAL DE REFERENCIA DISEADO PARA UTIUZARSE EN CURsoS PRESENOALES. EL MANUAL NO ES
UNA HI!RRAMIENT A DEFORMACIN INDEPENDIENTE. NO SS RECOMIENDA ESTUDIAR SU CONTENIDO SIN ASISTIR AL
CURSO.
Nmero de clasificacin de control de exportaciones (ECCN): 25 de marzo de 2002
@
Papel
para
reciclar
:\
! ; - ~
Contenido
Acerca de este curso ........................................................... Prlogo-xi
Finalidad del curso ..................... : .............................. , ......... Prlogo-xi
Esquema del curso ................. . ~ - ......................................... Prlogo-xii
Temas no incluidos ......... , ........ : .... , ................... , .................. Prlogo-xiii
Est preparado? ... : ............... : ............................................. Prlogo-xiv
Presentaciones ........................................... ! .......................... Prlogo-xv
Cmo utilizar el material del curso ....... ; .......................... Prlogo-xvi
Convendones ................ ..................................................... Prlogo-xvii
Iconos .......................................... : ............................... Prlogo-xvii
Convenciones tipogrficas ............................. ;.: ..... Prlogo-xviii
Otras convenciones .................................................... Prlogo-xix
Descripcin de la teenologia Java"" .............................................. 11
Objetivos .............................................................................. , .............. 1-1
Comprobacin de los progresos ............................. : ........................ 1-2
Aspectos relevantes ........... -................................ : ............................... 1-4
Otros recursos ............................................... _ .................................... 1-5
Conceptos fundamentales sobre el lenguaje Java ......................... 1-6
Orientado a objetos ........................... - ....... : .......................... : .... 1-7
Distribuido ................................................................................. 1-8
Simple ........ : ...... , ............................................. , ........................... 1-9
Multihilo ..... : .............................. .............................................. 1-10
Seguro ......................................... :;':: .......................................... 1-10
Grupos de productos de la tecnologa Java .................. : .............. 1-17
Identificacin de los grupos de productos de la
tecnologaJava ...................................................................... l-17
Eleccin del grupo de productos de teo:tologa Java correcto ..
1-18
Uso .de los componentes del SDKde la plataforma Java,
Standard Edition ................................. : ................................ 1-19
Fases del ciclo de vida de los productos ....................................... 1-22
Fase de anlisis ........................................................................ 1-23
Fase de diseo .................................................... ; ..................... 1-24
Fase de desarrollo .......... ;; ....................................................... 1-25
V
Copyright 2006 Sun Mlcrosystems; lnc. Todos los derechoS reservados.Sun Services, Revls!On E. 1
Fase de comprobacin ............................................................ 1-26
Fase de implementacin ......................................................... 1-27
Fase de mantenimiento ......................................................... 1-28
Fin del ciclo de vida (EOL) .................................................... 1-29
Por qu debe seguir las fases del ciclo de vida de los
productos? ............................................................................. 1-30
1 ~
Anlisis de un problema y diseo de la solucin ......................... 2-1
Objetivos ............................................................................................. 2-1
Comprobacin de los progresos ...................................................... 2-2
Aspectos relevantes ........................................................................... 2-3
Otros recursos ............................................... ; ........ '.;_. .......................... 2-4
Estudio de un problema utilizando el anlisis orientado a objetos ..
2-5 .
Identificacin del dominio de un problema ....
1
..................... 2-7
Identificacin de los objetos .......... : ...... 2-8
Otros criterios para reconcer objetos ............... ,................. 2-10
Identificacin' de los atributos y QPeradones de los objetos .....
2-12 . . . '
Solucin del caso de estudio .................................................. 2-15
Diset\o de clases ....... :.: ............. : ........................... :: ............... : ........... 2-17
Modelado de]as clases ............................... : ........................... 2-20
Desarrollo y comprobacin de un programa Java .. ;; ................... 31
Objetivos ..................................................... ... ........... ; ........................ 3-1
Comprobacin de los progresos ................... .................................... 3-2
Aspectos relevanteS ........................................................................... 3-4
Otros recursos ............. ;: .............. : .. , .... ; .. : ........ : ................................... 3-5
Identificacin de los componenteS de una clase ...... ; ...................... 3-6
Estructuracin de ls clases ..................................................... 3-7
Declaracin de clases ................................................................ 3-9
DeClaraciones y asignaciones de variables ... : ...................... 3-10
Cinentarios ................................... : ...... : .................................. 3-11
Mtdos .................................... : .......... : .................................... 3-12
Creacin y uso de una clase de prub ......................................... 3-14
Mtodo main .. : ........................................................................ 3-15
Compilacin y ejecilcin (comprobacin) de un programa ....... 3-17
Compilacin de uri program11 ............................................... 3-17
Ejecucin (comprobacin) de un programa ........................ 3-18
Declaracin; Inicializacin y uso' de variables ...... ................. 4-1
Objetivos ............................................................. ; .. :............................ 4-1
Comprobacin 'de los progresos ............... ; ..... : ...... ; ......................... 4-2
Aspectos relevantes ....................... ; ......... : ..... ~ ................................... 4-4
Otros recursos ...................................................................................... 4-5
Identificacin de la sintaxis y el uso de las variables .................... 4-6
Usos de las variables .................................................................. 4-7
Declaracin e inicializacin de variables .............................. 4-8
vi Fundamentals of the Java m Programmlng Language
Copyright 2008 S un McroSystems,lnc. Todos los ~ o s reservados: Sun servtces. Re111SI6n E. 1
Descripcin tipos de datos primitivos ............................... 4-10
. .T1pos pnnutivos enteros ... ; ........ : ............................ : .............. 4-10
Tipos primitivos en coma flotante ....... : ................................ 4-12
Tipo pritnitivo textual ........................................................... 4-13
Tipo primitivo lgico ....... .-...... ; ............................................... 4-14
Eleccin del tipo de dato .......... .............................................. 4-14
Declaracin de variables y asignacin de sus valores ................ 4-15
Asignacin de nombre a las variables .................................. 415
Asignacin de valores a las variables ................................... 4-17
Constantes ....................... , ........................................................ 4-19
Almacenamiento de tipos primitivos y constantes en
la memoria ............................. ; .............................................. 4-21
Uso de operadores aritmticos para modificar valores .............. 4-22
Operadores matemticos estndar .... ;; .................................. 4-22
Operadores de incremento y decremento ( ++ y --) .......... 4-23
Orden de precedencia de los operadores ............................ 4-24
Uso de la promocin y conversin de tipos ................................. 4-26
Promocin ................................................................................. 4-27
Conversin de tipos .... ......................................................... 4-28
Suposidries del compilador con respecto a los tipos
enteros y en coma flotante ... : .............................................. 4-29
. Creacin y uso de objetos ........................ ... ........... : ................. S-1
.Objetivos ....................................... ..................................................... 5-1
Comprobacin de los progresos ............ ; ......................................... 5-2
Aspectos relevantes ........................................................................... 5-4
Otros recursos ..................................................................................... 5-5
Declaracin de referencias a objetos, instanciacin de objetos e
inicializacin de referencias a objetos .......................................... 56
Declaracin de variables de referencia a objetos .................. 5-8
Instanciacin de un objeto .......................... ........ ,.: ................. 5-8
Inicializacin de variables de referencia a objetos ............... 5-9
Uso de una variable de referencia a objetos para
manejar datos .... .................................. , ............................... 5-10
Almacenmiento de variables de referencia a objetos
en la memoria ...................... .' .................. .............................. 5-11
Asignacin de una referencia de una variable a otra ........ 5-12
Uso de la clase String .................. , .................................................. 5-14
Creacin de un objeto String con la palabra clave new ... 5-14
Creacin de un objeto String sfu.la palabra dave new .... 5-14
Almacenamiento de objetos String en la memoria .......... 5-15
Uso de variables de referencia para bjetos String .......... 5-16
Estudio de las bibliotecas clases de Java ............ : ..................... 5-17
EspecificaCin de la biblioteca de clases de Java ................ 5-17
Uso de la especificacin deJa biblioteca de clases de Java para
obtener informacin sobre un ............................ 5-19
Uso de operadores y construcciones de toma de declsiones ..... 61
Vil
Copyright 2008 Sun Microsystem3. lnc. Todos los dei8Chos reservados. Sun Sel'Vices, Revislbo E.1
Objetivos .......................... -.......... -....... l ........... ; ....................... .-: ............... 6-1
Comprobacin de los progresos.-..... -............ .-.... ;, .............................. 6-2
Aspectos relevantes ..... : .............................. ; ...................................... 6-3
Otros recursos ................................................ ; ............ \ ....................... 6-4
Uso de operadores relacionales y condicionales ........................ _.6-s
Ejenlplo de un ascensor ............................................................ 6-6
Operadores relacionales ..................... ;.................................... 6-8
Comprobacin de la igualdad entre dos secuencias de
caracteres ...................... _ ........................................................... 6-9
Operadores condicionales ......................... .-: ...... ' .................... 6-10
- Creacin- de construcciones if e if/else., .................................. 6-11
Construccin if .................................... _ ..... .-............................. 6-11
Sentencias if anidadas .................... ; ...... ; ........ _ ................... 6-14
Construccin if/ else ....................................... .................... 6-15
Construcciones if/else encadenadas ..... .-.... ;; ................... 6-18
Uso de la-construccinwitch .... ' ...................... :.:.-.. ;: .................... 6-20
Cundo usar construcciones switch ..... ... ; ......................... 6-22
Uso de Cnatrucclones en bucle ...................... _ ............................ 71
ObjetiVos ............... : .............. ....................................... : ...................... 7-1
Comprobacin de los progresos ...................................................... 7-2
Aspectos relevantes ........................................ .................................. 7-3
.Creacin de bucles while .................. _ .......... : ........ ; ........... ; ..... 7-4
Bucles while anidados ........................................... ; ................. 7-6
Desarrollo de un bucle for ............................................................... 7-9
Budes.for anidados ............................................................... 7-12
Codificacin de un bucle do/while .............................................. 7-13
Bucles do/while atiidad_os ........................... ;, ....................... 7-16
Comparacin de' las construcciones en bucle ..................... 7-17
Desarrollo-yuso de mtodos ... ......... ...................... : ...................... 81
Objetivos ... : ............ : ......................... : ......... ....... _ ....... : ......................... 8-1
Comprobacin de los progresos ............ : ......................................... 8-2
Aspectos relevantes .: ......................................................................... 8-4
Creacin de mtodos y llamadas a mtodos ....... , .......................... 8-5
Forma' bsiCa de un mtodo .................................................... 8-6
Llamada a un mtodo desde una clase diferente ................. 8-7
i.tamada a un mtodo en la misma clase ..... : .......................... 8-9
Directrices para realizar llamadas a mtodos ..................... 8-10
Paso de argumentos y devolucin de valores ............................. 8-12
. Declaracin de mtodos con argumentos ........................... 8-13
Llamadas a mtodos con argumentos ......... : ....................... 8-14
DeClaracin demtodos con valores de retomo ............... 8-16
Devolucin de un valor ............................................. : ............ S-16
Recepcin de valore$ de retomo ........ ,; ......... : ...................... 8-17
Venta]as de usar mtodos .... m .................... _; .......................... 8-18
Creacin de mtodos y varibles static;.: .................................. 8-19
VIII Fundamentals ofthe Java m Programmlng Language
Copyright 2008 Sun Mlcros)ISII!I!lS, lnc, 1bdos los derechos reserwdos. Sun SeNices, Revisin E.1
~
i '
Declaracin de mtodos static ........................................... 8-19
Llamada a los mtodos static ............................................ 8-19
Declaracin de variables static ................................... ; ...... 8-21
Acceso a las variables static ............................................... 8-21
Mtodos y variables estticos en el API de Java ................ 8-22
Cundo declarar un mtodo o una variable static ......... 8-23
Uso de la sobrecarga de mtodos ................................................... 8-25
Sobrecarga de mtodos y el API de Java ...... : .............. ;: ... 8-27
UsOs de la sobre<:arga de mtodos ........ : ......... : ..................... 8-28
Implementacin de la encapsulacln y los constructores ........... 91
Objetivos ............................................................................................. 9-1
Comprobacin de los progresos ......... ; ............................................ 9-2
Aspectos relevantes ..... ...................................................................... 9-3
Uso de la encapsulacin ................................... ; ................................ 9-4
Modificadores de visibilidad ................................................... 9-4
Modificador public ................................................................. 9-5
Modificador pri vate ............................................................... 9-8
Interfaz e implementacin ..................................................... 9-10
Mtodos get y set .................................................................... 9-12
Programa de ascensor encapsulado ..................................... 9-16
Descripcin del mbito de las variables ....................................... 9-21
Forma en que las variables de instancia y locales aparecen en
la memoria ......................... ; .................................................. 9-22
Creacin de constructores ................................................................ 9-24
Constructor predeterminado ..... ................ : .......... : ..... : .. : ...... 9-26
.Sobrecarga de constructores .............. : .......... ....................... 9-28
Creacin y uso de matrices (arrays) ................. ................. .-......... 10-1
Objetivos ..... ................ , .................................................................. 10-1
Comprobacin de los progresos .................................................... 10-2
Aspectos relevantes ......................................................................... 10-4
Creacin de arrays unidimensionales ........................................... 10-5
Declaracin de un array unidimensional ............................ 10-6
Instanciacin de un arra y unidimensional .......................... 10-7
Inicializacin de un array unidimensional .......................... 10-8
Declaracin, instanciacin e inicializacin de arrays
unidimensh>nales .............................................................. , .. 10-9
Acces a un valor dentro de un n'ay .............................. 10-10
Almacenariliento de arrays unidimensionales en la memoria.
10.:11 ..
Establecimiento de valores de arrays utilizando el atributo length
y un bucle ..... _ .................................................................................. I0-14
Atnbuto length ....................................... : .. ......................... 10-14
Establecimiento de los valores del arra y utilizando un bucle ..
10-14
Uso del array argsen el mtodo main ....................................... 10-16
ix
Copyright 2008 Sun Mlcrosystems, lnc. Todos tos derechos reservados. Sun Servlces. Revisin 1;.1
Conversin de argumentos String en otros tipos .......... 10-17
Funcin varargs ..................................... : .............................. 10-17
Descripcin de los arrays bidimensionales ................................ 10.18
Declaracin de un array bidimensiona1 ............................. 10-19
Instanciacin de un ray bidimensional .......................... 10-19
Inicializacin de un array bidimensional .......................... l0-20
Implementacin ~ e la ..herenciL ......... .. : ............. ... .................... 111
Objetivos ...................................... : ..................... : .............................. 11-1
Comprobacin de los progresos ..... : ............... : .... : ......................... 11-2
Aspectos relevantes .................. , .. ; ... r ... , ; ... ....... : .... : ........... :: .......... 11-4
Herencia ............................................................................................ 11-5
Superclases y subclases .......................................................... 11-6
Comprobacin de las relaciones entre'superclases y subclases
11-8
Modelado de las superclasesy subclases .......................... 11-10
Declaracin de una superclase ............................................ ll-11
Declaracin de una subclase ................................................. 11-13
Ejemplo de declaracin de una subclase ........................... 11-14
Abstraccin ................................... ; .......................... ....................... 11-15
La abstraccin en. el anlisis y el disefto ............................ 11-15
Clases del API de Java ................................................................... 11-17
Clases disponibles de forma implcit:a-................................ 11-17
Importacin y calificacin de clases ................................... 11-18
. .
SigUienteS' pasos ............... : ' ............. .. . _ _ .... .. ~ ...... ~ . . .A-1
Cmo prepararSe para :PJ:ogramar ................ ...... ,.,.: ...................... A-2
Descarga de la tecnologa Java ......... : ..................................... A-2
Descarga de la especifi-cacin del API de Java SE .... ; .. ; ...... A-2
Configuracin del equipo para desarrollar. y ejecutar
programas Java ...................................................................... A-3
Descarga de un entorno de desarrollo o un depurador ..... A-3
Referencias .................................... ;,; .................................................. A-4
Nociones bsicas sobre tecnologa Java ................................ A-4
Applets ................................................... : .................................. A-5
Tutorialen Internet .................................................................. A-5
Artculos, consejos y-documentos tcnicos ... i ...................... A-5
Palabras clave del lenguaje de programacin Java ..................... 81
. Palabras clave ................................. : .. -................................................. B-2
Convenciones de asignacin de nombres en el lenguaje Java .. C1
Identificadores de clases, mtodos y variables ............................. C-2
Desplazamiento por el sistema optativo Solaris ..................... 01
Gua de referencia rpida de Solaris ....................... , ...................... D-2
X Fundamentals ofthe Java m Programmlng Language
Copyright 2008 Sun Microsystems, lnc. Todos lOS derechos reservados. Sun Servlces, Revisin E.1
-
Prlogo
Acerca de este curso
Finalidad del curso
Este curso le proporcionar los conocimientos necesarios para:
Manejar con soltra los conceptos relativos a: la tecnologa Java_ el
lenguaje de programacin Java y el ciclo de vida de los
Utilizar diferentes construcciones del lenguaje java para crear varias
aplicaciones Java.
Utilizar mtodos, construcciones de roma de decisin y bucles para
determinar el flujo de los programas.
Implementar conceptos de programacin Java de nivel interrhedio y
conceptos de programacin orientada a objetos (00) en programas
Java.
Prlogo-xl
Copyrighl2008 Sun Microsystems, lnc. Todos lo$derechos reservados. Sun Senrioes. Revsin E.1
Esguema del curso
Esquema del curso
Este esquema le permitir ver los progresos que va realizando ron
.respecto a los objetivos del curso.
Introduccin a la programacin en Java
Descripcin de la
tecnologla Java TM
Anlisls de un
problema y dlsel'lo
de la solucin
Desarrollo y
comprobacin de un
programa Java '
Conceptos fundamentales s ~ r e programacin en Java
. Dectaracin, .
fnlclalizacin y
uso de variables
.. Creacin y
uso de objetos. .
_Determinacin del flujo de_ lo programas
Uso de operadores
construcciones de
toma de decisin
Uso de
bucles
Desarrollo y
uso de mtodos
;.
Conceptos Intermedios sobre tecnologa Java y programacin 00
Prologo-xll
Implementacin de
la encapsulacin y
los constructores
Creacin y
uso de arrays
Programacin Java para no Programadores
Implementacin
de la herencia
Copyright 2008 Sun Mlcrosystems, lnc. Todos los derechos reserva des. S un Services, Revisin E. 1
!\


Temas no incluidos
Temas no incluidos
En este curso no se tratan Jos temas indicados a continuacin. Muchos de
ellos forman parte de otros cursos ofrecidos por los Servicios de Formacin
S un.
Conceptos avanzados sobre programacin Java, que se cubren en el
curso SL-275: Programacin Java
Conceptos avanzados de anlisis y diseiio 00, que se cubren en el
curso ()().226: Andlisis y Diseo 00 con UML
Programacin de applets (miniaplicaciones) o diseiio de pginas web.
Consulte el catlogo de los Servicios de Formacin Sun para obtener
informacin detallada sobre los cursos y la inscripcin.
Acerca de este curso Prlogoxiil
Copyright 2008 Sun Mlcrusystems, lnc. Todos los derechos reservados. S un Setvic:es, Revisin E.1
Est preparado?
Est preparado?
Prlogo-xlv
Si responde afinnativamente a las siguientes preguntas, se puede
considerar preparado para realizar el curso.
Sabe crear y editar archivos de texto con un editor de texto?
Sabe utilizar un navegador web (WWW)?
Sabe resolver problemas de lgica?
Programacin Java para no Programadores
Copyright 2008 Sun Mlorosystems,lnc. Todos los derectlos AI$!IIVIKIOS. Sun SeN\CeS, Revlsl6n E.1
Presentaciones
Presentaciones
Despus de esta introduccin sobre el curso, ha llegado el momento de
presentarse al profesor y los dems alumnos. Para ello, indique lo siguiente:
e Nombre
Empresa
Cargo, funCin y responsabilidad
Experiencia relacionada con los temas de este curso
.Razones para inscribirse en el curso
Expectativas con respecto al curso
Acerca de este curso Prlogo-xv
Copyright 2008 Sun Mlaosy&tems, lnc. 1bdos los derechos reservados. S un Serv!QIIS, RevisiOn 1:.1
Cmo utilizar el material del .curso
Cmo utilizar el material del curso
Prologo-xvl
Para que pueda, sacar el mximo provecho a este curso, el temario incluye
un mdulo didctico que consta de lo siguiente: .
Finalidad: al final del curso debera ser capaz de alcanzar las metas
fijadas y cumplir todos los objetivos.
Objetivos: despus de cubrjr una parte ~ l contenido del curso, ..
deberla estar en disposicin de cumplir los objetivos. Los objetivs
permiten alcanzar la meta y lograr nuevos objetivos.
Oases tericas: el profesor ofrece informacin especfica para cumplir
los objetivos del mdulo. Esta informacin ayuda a adquirir los
conocimientos necesarios para realizar correctamente las actividades.
Actividades: las actividades son de diversa ndole y pueden
incluir ejercicios, autoevaluaciones, discusiones y demostraciones.
Las actividades ayudan a dominar las materias.
Material visual de apoyo: el profesor puede utilizar este tipo de
ayuda para explicar de forma grfica conceptos como el de un
determinado proceso. La ayuda visual suele constar de grficos,
imgenes animadas y vdeo.
. Programacin Java para no Programadores
Copyright 2008 sun Microsysl-. lnc. Todos loSdentehos NServados. Sun Sel'lllces, Revl616n E.1
.1\
0 .
~
r----..
r ~
Convenciones
Convenciones
En este curso se usan determinadas convenciones ~ a representar varios
elementos y recursos de formacin alternativos.
Iconos
Demostracin -Indica que en ese momento se recomienda ver la
demostracin del tema en cuestin.
Discusin - Indica que es aconsejable entablar un debate general o en
grupos reducidos sobre el tema tratado.
Lo saba?- Indica la existencia de.informacin adicional que puede
ayudar al alumno, pero que no es crucial para entender el concepto que
se est explicando.
Nota - Indica la existencia de informacin complementaria que puede
ayudar al alumno, pero que no es crucial para entender el concepto que se
est explicando. El alumno debera ser capaz de entender el concepto o de
realizar la tarea sin esta informacin. En las notas se incluyen los mtodos
abreviados del teclado y l o ~ ajustes menores del sistema, entre otra
informacin.
Atencin - Indica que existe el riesgo de causar lesiones personales por
causas no elctricas, o daos irreversibles en los datos, el software o el
sistema operativo. Advierte de un posible riesgo (del que no se tiene
certeza), que depende de la accin que realice el usuario.
Atencin - Indica que se ocasionarn lesiones personales o daos
irreversibles en los datos, el software o el sistema operativo si se realiza la
accin. No advierte de posibles daos, sino de los resultados catastrficos
de la accin.
Acerca de este curso Prtog<rxvii
Copyright 2008 Sun Micmsystems,lnc. Todos loS den!los fiiServadOs. Sun ServiceS, Revis!On E.1
Convenciones
Autoevaluad6n - Sefiala las actividades de autoevaluacin, como
preguntas de respuesta nica y mltiple.
Caso de estudio - Indica la existencia de un ejemplo o caso de estudio
que se utiliza a lo largo de todo el curso.
Convenciones tipogrficas
PrOiogo-xviil
Se utiliza Courier para indicar nombres de comandos, archivos, cdigo
de programacin y mensajes del sistema que aparecen en la pantalla,
por ejemplo:
Utilice ls-a para ver la lista de todos Jos archivos.
systemt Tiene correo.
Tambin se utiliza Courier con constructores\de programacin tales
como los nombres de clases, mtodos y palabras clave, por ejemplo:
El mtodo getSezvletinfo se utiliza para obtenerinfomacin
sobre el autor.
La clase java .awt. Oialog contiene el constructor Oialog.
Se aplica Courier en negrita a Jos nmerosy caracteres que dbe
introducir el usuario, por ejemplo: ,
. '
Para ver la lista de archivos de este directorio, escriba:
# ls
Tambin se usa Courler en en lneas de cdigo de
programacin que se citan en un descripcin textual, por ejemplo:
l inport java.io.*;.
2 import :1 avax. se:r:vlet. *
3 import.javax.serViet.http.*;
La interfaz javax.se:r:vlet se importa para poder acceder a los
mtodos de su ciclo de vida (lfna 2).
Programacin Java para no Programadores
Copyright 2008 SUn Mlcrosylltems, Todos los derechos reseNados. Sun SerYioes, Revisin E.1


~ .
( ~ .
\
Convenciones
Se aplica Courier 'en cursiva a las variables y los nombres de ejemplo
de la lnea de comandos que se sustituyen por un nombre o valor real,
por ejemplo:
Para eliminar un archivo, utilice. el comando :r:m nombre de arahi vo.
Se usa Cour.ter eo cursi. va y negrJ. tapara representar variables
cuyos valores debe introducir el alumno durante un ejercido, por ejemplo:
Escriba cbmod a+:tW.X ZlCIIIIbre de arch:Lvo para conceder derechos
de lectura, escritura y ejecucin sobre ese archivo a todos, grupos y
usuarios.
La fuente Palatitw en cursiva se utiliza con ttulos de hbros, palabras o
trminos nuevos o que se desea enfatizar, por ejemplo:
Consulte el captulo 6 del Manual del usuario.
Se denominan opciones de clase.
Otras convenciones
En los ejemplos de programacin en Java se emplean adems las
siguientes convenciones:
Los nombres de mtodo no van seguidos de parntesis, salvo cuando
se incluye una lista de parmetros oficiales o reales, por ejemplo:
"El mtodo doit ... " designa cualquier mtodo denominado doit.
"El mtodo doit () ... " indica un mtodo doit que no admite
argumentos.
Slo se producen saltos de lnea cuando hay separaciones (comas),
conjunciones (operadores) o espacios en blanco en el cdigo.
El cdigo interrumpido se sangra cuatro espacios bajo el cdigo
inicial.
Cuando en el sistema operativo Solaris se utiliza un comando
distinto al empleado en la plataforma Microsoft Wmdows, se
muestran ambos comandos, por ejemplo:
En Solaris:
$CD SERVER_ROOT/BIN
En Microsoft Windows:
C: \>CD SERVER_ROOT\BIN
Acerca de este curso Prlogo.xix
Copyright 2008 Sun Mlcrosystems, lnc. Todos los dentchos reservados. Sun Services, R1Msl6n E.1
'"l,
/ ~
(',
~
~ \
r---,
1
/',.--......_',
Mdulo 1
Descripcin de la tecnologfa Java
Objetivos
El estudio de este mdulo le proporcionar los conocimientos necesarios
para:
Describir los conceptos fundamentales del .lenguaje de programacin
Java.
Enumerar Jos tres grupos de productos que componen la tecnologa
Java.
Resumir cada una de las siete fases que forman el ciclo de vida de los
productos.
Este mdulo contiene una introduccin a la tecnologa Java, el lenguaje
de programacin Java y el ciclo de vida habitual en el desarrollo de las
aplicaciones.
1-1
Copyright 2008 Sun Mk:rosystems, lnc. Todos los derechos reservados. Sun Servlces, ReVISln E.1
Comprobacin de los progresos
Comprobacin de los progresos
12
Introduzca un nmero del 1 al S en la columna "Principio del mdulo"
a .fin de evaluar su capacidad para cumplir cada uno de los objetivos
propuestos. Al finalizar el mdulo, vuelva a evaluar sus capacidades y
determine la mejora de conseguidl por objetivo.
' _, \ ' . ;. '!
Evaluacin
(1 = No puedo cumplir
este objetivo,
Mejora de
Objetivos del mdulo
5 = Puedo cumplir este
conocimientos
objetivo)
(Final-
Principio Final del
Principio)
del mdulo mdulo
Descn"bir los <:oncptos
fundamentales del lenguaje
de programacin Java.
-;
Enumerar los tres grupos de
productos que componen la.
'
tecnologa Java.
Resumir cada una de las siete
fases que forman el ciclo de
vida de los productos.
El resultado de esta evaluacin ayudar a los Servicios de Formacin Sun
(SES) a determinar la efectividad de su formacin. Por favor, indique una
escasa mejora de conocimientos (un O o un 1 en la columna de la derecha)
si quiere que el profesor considere la necesidad de presentar ms material
de apoyo durante las clases. Asimismo, esta informacin se enviar al
grupo de elaboracin de cursos de SES para revisar el temario de este
curso.
Programacin Java para no Programadores
Copyright 2008 Sun ll.taosystems, lnc. Todos loe derechos reservados. Sun Services, Revisin E.1

Comprobacin de los progresos
Notas
~ ,,,,,
Descripcin de la tecnologla Java""' 1-3
Copyght 2008 Sun Mlcrosystems, lnc. Todos los derec:hos reservadas. S un Servlces, RllvislOn E.1
Aspectos relevantes
Aspectos relevantes
1-4
Discusin - Las preguntas siguientes son relevantes para comprender en
qu consiste la tecnologa Java:
Qu significan para usted las siguientes palabras:
Seguro

Orientado a objetos

Independiente

Dependiente

Distribuido
Qu fases intervienen en la construccin de algo, por ejemplo, una
casa o un mueble?
Programacin Java para no Programadores
Copyright2008 SunMicrosystems,lnc. Todos losdetechoe reservados. Sun s.rvloes, Revi5i6n E.1
.0
r-,
~ ..
~
Otros recursos
Otros recursos
Otros recursos - Los documentos siguientes proporcionan informacin
complementaria sobr los temas tratados en este mdulo:
Feature StoriesAbout Java Teqmology. [En la web]. Disponible en:
http://java.aun.com/features/index.html
Una historia sobre las personas que hicieron posible el desarrollo de
la tecnologa Java, escrita con motivo del quinto aniversario de esta
tecnologa.
Tutorial de Jav. [En la web}. Disponible en:
http://java.sun.com/docs/books/tutorial/
Una gua prctica para programadores que incluye cientos de
ejemplos y ejercicios completos.
Deseripcin de la tecnologla Java.,., 1-5
Copyright 2008 Sun MIC105y&tems, lnG. Todos los derechQs reseJvaclos. Sun Servtces, Revisin E, 1
Conceptos fundamentales sobre el lenguaje Java
Conceptos fundamentales sobre el lenguaje Java
El lenguaje de programacin Java naci en 1991 como parte de un proyecto
de mvestigacin destinado a desarrollar un lenguaje de
llamado (en espaf\ol, roble) que la falta de
entre numerosos dispositivos de consumo tales como las videograbadoras
y los televisores. En concreto, un equipo de expertos en desarrollo de
software (el equipo Green) quera crear un lenguaje que permitiese a
diferentes dispositivos de consumo dotados de. diferentes unidade,s de
prOcesamiento central (CPU) etnPartir las mismas mejo;asdel software.
Lo saba?- James Gosling, uno de.Ios miembros del ,equipo, denomin
Oak al nuevo lenguaje como referencia al roble que vea. a travs de su
ventana.
Este mtento inicial fracas despus de varios acuerdos fallidos con varias
compafias de dispositivos de consumo. El equipo Green se vio obligado a
buscar otro mercado para su nuevo lenguaje.
Afortunadamente, empezaba a popularizarse el uso de la World Wide Web
y el equipo reconoci que el lenguaje Oak era perfecto para desarrollar
componentes multimedia que mejorasen el contenido de las pginas web.
Los primeros desarrollos del lenguaje Oak se aplicaron a estas pequefias
aplicaciones, llamadas applets, y los programadores que usaban Internet
adoptaron lo que se convertira en el lenguaje de programacin Java.
Nota -Para conocer con ms detalle la historia del lenguaje Java, visite
http: 1 /www. java. sun. com y realice una bsqueda de la siguiente frase
"History of Java".
El lenguaje Java se dise para ser:

Orientado a objetos

Distribuido

Simple

Multihilo

Seguro

Independiente de la plataforma
Programacin Java para no Programadores
Copyrlght2008 Sun Micrsy;rtems, lnc. Todos los deieohos reservados. Sun Servloes, RevlsiOII E.1
(\



~
r'-
' .
Conceptos fundamentales sbre el lenguaje Java
Orientado a objetos
. .
Java es un lenguaje de programacin orientada a objetos (00) porque uno
de los principales objetivos del programador de aplicaciones Java es crear
objetos, fragmentos de cdigo autnomos que puedan interaccionar con
otros objetos para resolver un problema. La programacin 00 empez con
el lenguaje SIMULA-67 en 1967 y ha dado lugar a lenguajes tan populares
como C++, en el que se ha inspirado ligeramente el lenguaje Java.
La programaci6n 00 se diferencia de la programacin por procedimientos
en que sta ltima se centra en la secuencia de pasos del cdigo necesarios
para resolver un problema, mientras que los lenguajes orientados a objetos
se centran en la creacin e interaccin de los objetos.
En la figura siguiente se muestra la importancia que tiene la secuencia de
operachmes en un programa basado en procedimientos.
Figura 11
Paso 1
Paso2
Paso3
Paso4
PasoS
Importancia de la secuencia en un programa basado en
procedimientos
Descripcin de la tecnologla Java 1M , 1-7
Copyright 2008 Sun Miaosyfrtems, lnc. Todos los derechos reseMldos. Sun Servloes, Revisin E.1
Conceptos fundamentales sobre el lenguaje Java
1-8
En la figura .siguiente se ilustra la importancia de los ol;ljetos y sus
interacciones en un programa orientado a objetos.
","-
Figura 1-2 Importancia de los objetos y sus interacciones en un
programa()()
Distribuido
Java es un lenguaje distribuido porque da cabida a tecnologas de
redes distribuidas tales como RMI (Remote Method Jnvocation),
CORBA (Common Object Request Broker Architecture) y URL (Universal
Resoun:e Locator).
Asimismo, la capacidad de carga dinmica de clases de Java permite
descargar fragmentos de cdigo a travs de Internet y ejecutarlas en un
equipo informtico de tipo PC.
Nota - Los trminos tecnologa Java y lenguaje de programacin Java no
se refieren a lo mismo. La tecnologa Java hace referencia a una familia de
productos Java de la que el lenguaje de programacin es slo una parte.
Programacin Java para no Programadores
COpyright 2008 Sun lnc. Todos tosdereohos reservados. Sun Srvk:e6, Revisin &.1
0.
.0
.r----.,
Conceptos fundamentales sobre el lenguaje Java
En la figura siguiente se ilustran las propiedades distribuidas de la
tecnologa Java.
Figura 1-3 El lenguaje de programacin Java es distribuido
Simple
El lenguaje Java es simple porque sus diseadores han suprimido algunas
de las construcciones de programacin ms complejas o difciles de otros
lenguajes populares. Por ejemplo, Java no permite a los programadores
manejar directamente los punteros a las direcciones de memoria, una
funcin compleja y, a menudo, mal utilizada de los lenguajes C y C++.
En su lugar, slo les permite manejar objetos utilizando referencias a
objetos. Adems utiliza una funcin denominada reciclaj de memoria
dinmica (garbage conector) para hacer el seguimiento de los objetos a los
que ya no se hace referencia y eliminarlos. Otro aspecto que hace de Java
un lenguaje simple es que los tipos de datos booleanos (:boolean) slo
puedf.D tener los valores true o false, frente a otros lenguajes donde
tambin se admiten los valores 1 y O.
DescripciOn de la tecnologla Java 1-9
Copyright 2008 Sun Todos los derechos reseJVIIdus. S un Servlces, Revisl6n E.1
Conceptos fundamentales sobre l lenguaje Java.
110
Multihilo
El lenguaje Java admite procesamiento multihilo (multithread), es decir,
la ejecucin simultnea de tareas diferentes tales como consultar una base
de datos y reproducir en la pantalla una interfaz de usuario. Gracias a la
ejecucin multihilo, los programas Java pueden hacer un uso muy eficiente
de los reC\trsos del sistema.
En la figura siguiente se ilustra el procesamiento multihilo del lenguaje Java.
Figura 1-4 El lenguaje de programacin Java es multihilo
Seguro
Los programas Java son seguros porque el lenguaje Java, con el entorno
en el que se ejecutan los programas con esta tecnologa, aplica medidas de
seguridad para proteger el cdigo de posibles ataques. Estas medidas
incluyen:
Prohibir la manipulacin de la memoria mediante el uso de punteros.
Impedir que los programas distribuidos, por ejemplo los applets,
puedan hacer operaciones de lectura y escritura en el disco duro de
un equipo.
:Programacin Java para no Programadores
Copyright 2008 Sun Micro&yStertlS; lnc. Todos los derdiOa raservadDS. Sun Servlces, ReviSin E.1

0.
! ,r'\
~
/ '
Conceptos fundamentales sobre el lenguaje Java
Verificar que todos los programas Java contengi\Il cdigo vlido.
Facilitar el uso de firmas digitales. Una empresa o una persona
puede "firmar" el cdigo de Java de forma que quien reciba el
cdigo pueda verificar la legitimidad del mismo.
En la figura siguiente puede verse cmo la seguridad integrada en los
programas Java impide ejecutar cdigo no vlido en un equipo.
Figura lS No es posible ejecutar cdigo que no sea vlido
Independiente de la plataforma
Los programas escritos en la mayora de los lenguajes normalmente
necesitan numerosas modificaciones para r ejecutarse en diferentes
tipos de plataformas informticas (la combinacin de una CPU y un
sistema operativo). Esta dependencia de la plataforma se produce porque
la mayora de los lenguajes exigen que se escriba el cdigo especfico para
la plataforma subyacente. Lenguajes tan populares como C y C++ obligan
al programador a compilar y vincular sus programas, lo que da lugar a un
programa ejecutable exclusivo de una plataforma. Al revs que C y C++,
el lenguaje Java es independiente de la plataforma.
Programas dependientes de la plataforma
Un compilador es una aplicacin que convierte un programa escrito por
un programador en un cdigo especfico para la CPU denominado cdigo
mquina. Estos archivos especficos de la plataforma (archivos binarios)
a menudo se combinan con otros archivos, tales como bibliotecas de cdigo
preelaborado, mediante un vinculador para crear un programa dependiente
de la plataforma, llamado ejecutable, que el usuario final puede ejecutar.
Descripcin de la tecnologla Java,.. 1-11
Copyright 2008 Sun Mic:rosys!mS, lnc. TOdos los derechos reservados. SUn Servloes, Re's!On E.1
Conceptos fundamentales sobre el lenguaje Java
1-12
En la figura siguiente puede verse la fQrma en que un compilador crea un
archiv() binario.
Fisura 1-6 . Creacin de 1.in archivo binario
La figura siguiente muestra cmo se vincula un archivo binario a las.
bibliotecas para crear un ejecutable dependiente de la plataforma.
Bibliotecas
de .proyect9S ,
~ . . . . . , : >
r .::.;>{>
Figura 1-7 Creactn de un ejecutable
Programacin Java para no Programadores .
Copvrlght 2008 Sun Mief06Y8tems, lno. Todos los derecho!l reservados. SunServkle$; Revlsitm E.1
.0
Conceptos fundamentales sobre el lenguaje Java
En la figura siguiente se ilustra cmo los ejecutables dependientes de la
plataforma pueden ejecutarse solamente en una plataforma.
Figura t..S Ejecucin de un archivo ejecutable .
Programas independientes de la plataforma
Un programa Java puede con escasas o ninguna modificacin,
en varias combinaciortes de CPU y sistemas operativos como, por ejemplo,
el sistema operativo Solaris con un proceSador SPARC', MacOS en un
procesador Motorola y Microsoft Wmdows en un procesador Intel.
Nota- preciso realizar algunas modificaciones para hacer
que un programa Java sea independiente de la plataforma. Por ejemplo,
puede ser necesario cambiar los nombres de los directorios a fin de que
utilicen los delimitadores adecuados (barras indinadas e invertidas) para el
sistema operativo de base.
Descripcin de la teenologla Java
111
1-13
Copyrfgl!t2008 Sun l'olbosystems, Jnc. Todos. los derechos reservados. Sun Ser;k:es, RevtsiOn E.1
Conceptos fundamenta)es sobre el lenguaje Java
1-14
Al igual que OCUl'1'e con los programas C y C++, los programas Java .
tambin se compilan utilizando un compilador especifico para la tecnologa
Java. No obstante, el formato resultante de un programa Java compilado
es cdigo de byte Java independiente de la plataforma en lugar de cdigo
mquina especfico de la CPU. Una vez generado el cdigo de byte, se
interpreta (ejecuta) a travs de un intrprete llamado mquina virtual o
VM Una mquina virtual es un programa especfico de la plataforml} que
lee el cdigo de byte (independiente de la plataforma) y lo ejecuta en una
plataforma concreta. Por este motivo, el lenguaje Java a menudo se define
como un lenguaje interpretado y los programas Java se consideran como
transportables o ejecutables en cualquier plataforma. Entre los lenguajes
interpretados se incluye tambin Perl.
Lo saba?- El trmino mquina virtual se debe a que es un componente
de software que ejecuta cdi$0, una tarea normalmente realizada por la
CPU o la mquina de hardware.
Para que los programas Java sean independientes de la plataforma, .
es preciso disponer de una mquina virtual llamada mquina virtual de
Java OVM) en cada platafonna donde se vayan a ejecutar. La mquina
virtual de Java es la encargada de interpretar el cdigo Java, cargar las
clases correspondientes y ejecutar los programas Java.
Sin embargo, un programa Java necesita algo ms que una mquina
virtual de Java para ejecutarse. Tambin precisa una serie de bibliotecas
de clases estndar especficas para la plataforma. Las bibliotecas de clases
de Java son bibliotecas de cdigo preescrito que combinarse con el
cPigo elabordo por el programador, para crear slidas.
La combinacit del sOftware JVM y estas bibliotecas de clases se conocen
como el entorno de tiempo de ejecucin de Java (JRE). Sun Microsystems
proporciona entornos de ejecucin de Java para numerosas plataformas
de uso comn.
Lo saba?- A menudo, la tecnologa se considera una
porque puede realizartodas las tareas de una CPU y un sistema operativo.
Sun Microsystems desarroll un prototipo de sistema informtico con una
CPU llamado JavaStation, que slo entiende cdigo de byte de Java.
Programacin Java para no Programadores

( "
Conceptos fundamentales sobre el lenguaje Java
En la figura siguiente puede verse cmo el compilador de Java crea
cdigo de byte.
Figura 1-9 Creacin de cdigo de byte en Java
Descripcin de la tecnologla Java TM 115
Copyright 2008 Sun Microsystems, lnc. 10do81osderechdsreservados. Sun Services, ReviSin E.1
1.
Conceptos fundamentales sobre el lenguaJe Java
1-16
En la figura siguiente se muestra cmo un archivo de cdigo de byte de
Java se ejecuta en varias plataformas donde existe un entorno de ejecucin
de Java.
Figura 110 Ejecucin de cdigo de byte en un entorno de ejecucin
de Java
La capacidad de los programas Java para ejecutarse en todas las plataformas
es fundamental para explicar el concepto del eslogan "Write Once, Run
AnywheretM" de Sun Microsystems.
Nota - Los trminos API (interfaz de programacin de aplicaciones) y
biblioteca de clases pueden usarse indistintamente. Asimismo, un API
puede hacer referencia a una sola rutina dentro de una biblioteca de cdigo.
Programacin Java para no Programadores
Copyright 2008 Sun Microsystems. lnc. Todos los derechos reservados. Sun Servloes, Revlsi6n E.1
_/
__ /
1 ~
Grupos de productos de la tecnologla Java
Uso de los componentesdel SDKde la plataforma
Java, Standard Edition
Sun Microsystems ha desarrollado una versin del SDK de la plataforma
Java, Standard Edition para Solaris'l'M y el procesador SPARC (32 y
64 bits), as como para los sistemas operativos Solaris, Linux y Microsoft
Wmdows ejecutados en procesadores (32 y 64 bits) de las compafias
Jntel Corporation y Advanced Micro Devices, Incorporated. El SDK de
la plataforma Java, Standard Edition incluye lo siguiente:
El entorno de ejecucin de Java:
Una mquina virtual de Java para la plataforma que elija.
Bibliotecas de clases de Java para la plataforma que elija.
Un compilador de Java
La documentacin de la biblioteca de clases (API) de Java (descarga
por separado)
Herramientas suplementarias, como las utilizadas para crear archivos
de almacenamiento Java (JAR) y depurar programas Java
Ejemplos de programas Java
Lo saba? - Para garantizar que los programas Java se ejecuten en todos
los equipos donde haya una mquina virtual de Java y una biblioteca
de clases de Java, tanto el software de la JVM como las bibliotecas de
clases deben cumplir las especificaciones del lenguaje Java y la mquina
virtual de Java. Estas especificaciones estn disponibles para las empresas
que adquieran la licencia de la tecnologa Java y quieran crear su propio
software de JVM y sus propios compiladores. De hecho, Sun Microsystems
tuvo que seguir sus propias especificaciones para crear un entorno de
ejecucin de Java para Solaris en el procesador SPARC y para Wmdows
en el procesador Intel.
Demostracin- Su profesor le mostrar cuatro tipo de aplicaciones
basadas en la tecnologa Java. Son las siguientes:
Aplicacin del SDK de Java SE
e Applet del SDK de Java SE
Aplicacin del SDK de Java EE
Aplicacin del SDK de Java ME
Oescripcl6n de la tecnologfa Java :'M 1-19
Copynght 2008 Sun Miaosystems,lnc. Todos tosderedlos reseMidos. Sun Servioes, Revisin E.1
Grupos deproductos.de la tecnologla Java
1-20
Al ve, del:lera .prestar espedal atencin a:
La forma en que se ejecuta el applet o la aplitadn (mediante
comandos, iconos ... ?)
El lugar donde se ejecuta el applet o la aplicacin (en un navegador
W"eb, un dispositivo de cnsumo .. ?)
Programacin Java para no Programadores


Grupos de productos de la tecnologla Java
Grupos de productos de Java
Sun proporciona una lnea completa de productos de
tecnologa Java que abarcan desde kits de desarrollo de programas Java
hasta entornos de emulacin (pruebas) para dispositivos de consumo tales
como los telfonos celulares.
Identificacin d los grupos de productos de la
tecnologia Java
Las tecnologas Java. tales como la mquina virtual de Java, se incluyen
(de formas distintas) en tres grupos diferentes de productos, cada uno de
ellos diseado para atender a las necesidades de un determinado
de mercado:
Plataforma Java, standard Edition (Java SE): permite
desarrollar applets y aplicaciones que se ejecutan, respectivamente,
eri navegadores web y equipos in,formticosde sobremesa.
Por ejemplo, es posible usar el kit de desarroUo de software (SDK)
de Java SE para crear un procesador de texto para PC.
Nota.;. Los applets y las plicaciones difieren en varios aspectos. En primer
lugar, los applets se ejecutan dentro de un navegador web, mientras que
las aplicaciones se ejecutan en un sistema operativo. Aunque este curso se
centra fundamentalmente en .el desarrollo de aplicaciones, la mayora de la
informacin que confu:me puede aplicarse tambin al desarrollo de applets.
Plataforma Java, Enterprise Edition (Java, EE): per:mite crear
grandes aplicaciones empresariales distribuidas para los lados cliente
y servidor. Por ejemplo, el SDK de Java EE puede utilizarse para crear
una aplicacin de comercio electrnico que pueda utilizarse en el sitio
web de una compaa comercial.
Plataforma Java, Micro Edition (Java ME): permite crear
aplicaciones para dispositivos de consumo de recursos limitados.
Por ejemplo, el SDK de Java ME puede utilizarse para crear un juego
que se ejecute en un telfono mvil.
Oescrlpcl6n de la tecnologla 1-17
StmS&nrices. Revisin E.1
Grupos de productos de la tecnologla Java
1-18
La l<>S tt:f!s grupos_qe proquctos de la
Java y los tipos de dispositivos a los que van dirigidos.
Java EE
Soluciones empresariales
Comercio electrnico
eBuslness
) ' \' ;-1 ".
Java SE
Soluciones de escritorio
Aplicaciones lndepndlantes
Applels
JAVA
Java ME
Soluciones de consumo
.. . TelfonO& celula19S
PDA
Oescodiflcadores de TV
. j)Qr GPS
Figura 1-11 Grupos de productos de la tecnologa Java
r ' : ' .
Entre otras tecll.ologas, cada. edicioo' de la plataforma Java incluye un kit
de desarrollo de software (SOK) con el que es crear, compilar y
ejecutar'pr(lgramas Java en una drtenninada.
Eleccin _del grupo de. proc:tuctos de tecnologfa Java
correcto ..
Aunque que muchos programadores de Java se especialicen en el
desarrollo de aplicaciones para 'Un detetnrtado mercado, normalmente
todos ellos empiezan sus carreras creando apliaciones o applets para PC.
Por tanto, el SDK de Java SE es el grupo de productos que utilizan la
mayora de los programadores cuandoaprendn a manejar el lenguaje Java.
. ..,-
Programacin Java para no Programadores
Copyright 2008 Stm Mlausystems, lnc. Todas los deredlos resel'\llldos. Sun Setvlces, Revisin E.1
Grupos de productos de la tecnologfa Java
Autoevaluac:in -:- Establezca las correspondencias adec.i.tadas entre los
trminos y sus definiciones.
Definicin
Se compone de la mquina virtual de Java jr
bibliotecas de clases de Java
Manipula objetos en lugar de punteros
Ejecuta cdigo de byte independiente de la
plataforma
~ r m i n o
Mquina virtual de
Java
Applet
Compilador
Elimina de la memoria objetos a los que no se Referencia
hace referencia
Se ejecuta en un navegador web
Crea cdigo de byte de Java
Lo crea el compilador y lo ejecuta la mquina
virtual de Java
Cdigo de byte
Entorno de ejecucin
de Java
Reciclaje de memoria
dinmica
Descripcin de la tecnologla Java
111
1-21
Copyright 2008 sun MICIO$ysfems, tnc. Todos loa deAJChos reservados. Sun Servioes, Revlsilm E.1
Fases del ciclo de vida de los productos.
Fases del ciclo de vida de los productos .
1-22
El ciclo de vida de los productos (Product Life Cycle o PLC) representa un
conjunto de fases aceptadas
1
por la industria que un programador debera
seguir al desarrollar cualquier nuevo. El ciclo se compone de
siete fases. Son las siguientes:
1. Anlisis
2. Diseo
3. Desarrollo
4. Comprob!lcin
S. Implementacin
6. Mantenimiento
7. Fin del ciclo de vida (EOL) '
1. El ciclo de vida de los productos slo es una filosofa para sistematizar las fases
de desarrollo de nuevos productos. Existen otras tales como: Rational Unified
Process,XP (Extreme Programming) y TDD (Test Driven Design).
Programacin Java para no Programadores
Copyright 2008 Sun Mlcrosystems, lile. Todos los derec:hos reservadoa. S un Servioes, Revisi6n E. 1

___ /
Fases del ciclo de vida de los productos
Fase de anlisis
El anlisis es elproceso de i:qvestigar un problema que se pretende
resolver con un producto. Entre otras tareas, consiste en:
Defiir claramente el problema que se resolver, el nicho de
mercado al que se dirige o el sistema que Se quiere crear. Los lmites
del problema tambin se como el mbito del proyecto.
Identificar los subcomponentes fundamentales que forman parte de
la totalidad del producto.
En la figura siguiente se ilustra la fase de anlisis.
1

Idea o problema
Figura Fase de anlisis del ciclo de vida de los productos
Descripcin de la tecnologla Java 1-23
Copyright 2008 Sun Miaosystems, lnc. TodOs los dereohos reservados. Sun Servtces, Revisin E.1
Fases del cido de vida de los productos
1-24
Fase de diseno '
. El disei\o es el proceso de aplicar las conclusiones extradas en la fase de
anlisis al proyecto del producto. La tarea principal en la fase de diseo es
dl(!sarrollar planos o especificaciones de los productos o los componentes
del sistema.
En 13 figura siguiente se ilustra la fase de diseo.
Planos de los componentes
Componentes princpales
Figura 113 Fase de diseo del ciclo de vida de los productos
Programacin Java para no Programadores
Copyright 2008 Sun Micro6ystems. lnc. Todos los dereohos NServadOS. Sun Setvlces, Revlsln E .1
./'\.
~
' ~
Fases det ciclo de vida de los productos
Fase de desarrollo
. El desarrollo consiste en utilizar los planos creados durante la fase de
diseo para crear los componentes reales.
En la figura siguiente se ilustra la fase de desarrollo.
Planos de los componentes Componentes
Figura 114 Fase de desarrollo del ciclo de vida de los productos
Descripcin de la tecnologla Java m 125
Copyright 2008 Sutl MlcrosysteltiS, loo. Todos los derechos teserwdos. Sun Servt(;es, Rellisi6n E.1
Fases del ciclo de vida de Jos productos
126
Fase de comprobacin
La comprobacin consiste en asegurarse de que cada uno de los
componentes o la totalidad del producto cumplan los requisitos de
la especificacin creada durante la fase de diseo.
Nota - Un buen anlisis del problema conduce a un buen diseo de la
solucin y a una reduccin del periodo de comprobacin y desarrollo.
Normalmente la comprobacin la realiza un equipo de personas distinto
de aquel que ha desarrollado el producto. Esto garantiza que se probar
de forma objetiva, eliminando la subjetividad del programador.
En la figura siguiente se ilustra la fase de comprobacin.


______ _..
Componentes
Comprobacin
Figura 1-15 Fase de comprobacin del ciclo de vida de los productos
Nota- Las cuatro primeras fases del ciclo pueden aplicarse a cada uno de
los ejercicios d.e este curso. Para garantizar la realizacin correcta de los
ejercicios, debera (1) analizar el problema, (2) desarrollar un esquema
rpido o una especificacin para la solucin o el programa, (3) desarrollar
la solucin y (4) comprobar el programa.
Programacin Java para no Progmmadores

(\

(",
Fases del ciclo de vida de los productos
Fase de implementacin
~ a implementacin consiste en poner el producto a disposicin de los
clientes.
En la figura siguiente se.ilustra: la fase de. implementacin.
La implementacin es la accin de distribuir un producto
de tal forma que los clientes puedan adquirirlo.
Figura 1-16 Fase de implementacin del ciclo de vida de los productos
Lo saba? - A menudo, la fase de implementacin se conoce en la
industria informtica como primera entrega al cliente o FCS.
Descripcin de la tecnologla Java,... 1-27
Copyrigllt2008 Sun Mkrosr.;tems, lnc. Todos los dentchos 1115ervados. S un Servkles, Revisin E.1
Fases del ciclo de vida de los productos
128
Fase de mantenimiento
El mantenimiento o n s i s ~ e en resolver los problemas del producto y
publicar nuevas versiones o revisiones del mismo.
En la figura siguiente se ilustra la fas de mantenimiento.
Producto
mejorado
Figura 1-17 Fase de mantenimiento del ciclo de vida de los productos
Programacin Java para no Programadores
Copyright 2008 SUn Mlclo&ystems,lnc. Todos los derechos reservados. S un SeNioes, RevisiOn E.1
!""'\
(\
Fases del ciclo de vida de los productos
,Fin del ciclo de vida (EOL)
Aunque el ciclo de vida de los productos no incluye una fase especfica
para iniciar un conc::epto o un proyecto, s la tiene para finalizarlo. El fin
, del ciclo de vida o .EOL consiste en l'eilizar todas las tareas necesarias
para garantizar que clientes y eJ.llpleads sean conscientes de que un
producto ha e j d o d e venderse y recibh,' asistencia tcnica, y de que hay
un nuevo productQ disponible. .
En la figura siguiente se ilustra la fase final del ciclo de vida de los
productos.
Producto
nuevo
El fin del ciclo de vida implica sustituir el producto por otro reCin desarrollado.
Figura 1-18 Fase final del ciclo de vida de los prodctos
Descripcin de la tecnologla Java '!M 129
Copyright 2008 SunMicmsystems, lnc. Todos los derechos lllServadOS. Sun Servk:es, Revisin E.1
Fases del ciclo de vida de los productos
130
Por qu debe seguir las fases del ciclo de vida 'de los
productos?
El PLC es una parte importante del desarrollo de los productos porque
ayuda a garantizar que stos se crearn y suministrarn de forma que se
reduzca el tiempo de salida al mercado, la c:alidad del producto sea alta y
se maximice el retomo de la inversin. Los desarrolladores que no siguen
sus directrices a menudo encuentran problemas que cuesta corregir y que
podran haberse evitado.
Nota - Este curso no presenta las fases del ciclo en profundidad. No
obstante, todo lo que aprender a lo largo del mismo se enmarca en
alguna de ellas.
Autoevaluacin- Haga corresponder cada tarea a la fase correspondiente
del ciclo de vida de los productos.
Tarea
Crear un plano del producto
Determinar el mbito del problema
Fase
Comprobacin
Fin del ciclo de
vida
Corregir problemas de los clientes y agregar mejoras Anlisis
Comunicar que el producto ya no estar disponible
Hacer que el producto funcione como se indica en
una especificacin
Crear el producto
Realizar la primera entrega del producto
Programacin Java para no Programadores
Implementacin
Desarroiio
Disefio
Mantenimiento
Copyrigllt2008 SunMkllllsystems.loo. TodosJosderedlosceservados. SunServkles, Revisi6n E.1
..