Upload
jjesuspenap
View
62
Download
0
Embed Size (px)
Citation preview
ndice Tutor Bsico
Nota:Este tutor est basado en una traduccin-adaptacin deltutorial de Sun que puedes encontrar: aqu
Tu Primera 'Taza' de JavaLa Primera 'Taza' de Java
En Windowsm
En UNIXm
En Mac OSm
l
Por donde Empezar?Por dnde Empezar?l
El compilador Javacl
El visualizador de Appletsl
El intrprete Javal
El decompilador Javapl
Conceptos BsicosConceptos Bsicos de Programacin Orientada a Objetosl
Caractersticas del LenguajeVariables y Tipos de Datosl
Operadoresl
Expresionesl
Control de Flujol
Arrays y Cadenasl
Objetos, Clases e InterfacesCrear Objetosl
Utilizar Objetosl
Eliminar Objetos no utilizadosl
Declarar Clasesl
El cuerpo de la Clasel
Declarar Variables Miembrol
Declarar Mtodosl
Pasar Argumentos a un Mtodol
El cuerpo de un Mtodol
Miembros de la Clases y del Ejemplarl
Control de Acceso a Miembrosl
Constructoresl
Construir un Metodo Finalizel
Subclases y SuperClasesl
Crear una Subclasel
Sobreescribir Mtodosl
Clases y Mtodos Finalesl
Clases y Mtodos Abstractosl
La clase Objectl
Qu es un Interface?l
Crear un Interfacel
Utilizar un Interfacel
Usar un Interface como un Tipol
Crear Paquetes de Clasesl
Utilizar Paquetesl
Los Paquetes Internos del JDKl
Cambios en el JDK 1.1.xl
La clase StringString y StringBufferl
Por qu dos clases String?l
Crear String y StringBufferl
Mtodos Accesoresl
Modificar un StringBufferl
Convertir Objetos a Stingsl
Los Strings y el Compialdor Javacl
Notas sobre el JDK 1.1l
Atributos del ProgramaAtributos del Programal
Seleccionar y Utilizar Propiedadesl
Argumentos de la Lnea de Comandos
Convencionesm
Analizar Argumentosm
l
Notas sobre el JDK 1.1l
Recursos del SistemaRecursos del Sistemal
Utilizar la Clase Systeml
Los Streams de I/O Estndardl
Propiedades del Sistemal
Recoleccin de Basural
Otros Mtodos de la Clase Systeml
Notas sobre el JDK 1.1l
Manejo de ErroresManejo de Errores utilizando Excepcionesl
Qu es una Excepcin?l
Primer encuentro con las Excepcionesl
Declarar o Expecificarl
Tratar con Excepciones
El ejemplo ListOfNumbersm
Capturar y Manejar Excepciones
El bloque tryn
Los bloques catchn
m
l
El bloque finallyn
Juntndolo todon
Expecificar Excepcionesm
La sentencia throwl
La clase Throwablel
Crear Clases de Excepcionesl
Excepciones en Tiempo de Ejecucinl
Notas sobre el JDK 1.1l
Threads de ControlThreads de Controll
Qu es un Thread?l
Sencillo Thread de Ejemplol
Atributos de un Thread
El cuerpo de un Thread
El applet del Relojn
m
Estados de un Threadm
Prioridad de un Threadm
Threads Servidoresm
Grupos de Threads
La clase ThreadGroupn
m
l
Programas Multi-Threadl
Sincronizacin de Threads
Monitores Java
Los monitores Java son reentrantesn
m
Los mtodos wait() y notify()m
l
Notas sobre el JDK 1.1l
Canales de I/OStreams de I/Ol
Primer encuentro con la I/O en Javal
Introduccin a los Streamsl
Utilizar Streams de I/Ol
Implementar Tuberasm
I/O de Ficherosm
I/O sobre Memoriam
Concatener Ficherosm
Streams Filtrados
DataInputStream y DataOutputStreamm
Escribir Streams Filtradosm
l
Ficheros de Acceso Aleatorio
Utilizar Ficheros de Acceso Aleatoriom
Filtros para Ficheros de Acceso Aleatoriom
l
Notas sobre el JDK 1.1l
Los AppletsIntroduccin a los Applets
Anatoma de un Applet
Importar Clases y Paquetesn
Definir una subclase de Appletn
Implementar mtodos en un Appletn
Ejecutar un Appletn
m
l
Descripcin de un Applet
El ciclo de vida de un Appletm
Mtodos para Millestonesm
Mtodos para Dibujar y manejar Eventosm
Usar Componentes UIm
Threads en un Applet
Ejemplosn
m
Qu puede y qu no puede hacer un Appletm
Aadir un Applet a una pgina HTMLm
Sumariom
l
Crear un Interface de UsuarioCrear un GUIm
Ejecutar Sonidosm
Usar Parmetros en en un Appletm
l
Parmetros a Soportarn
Escribir cdigo para soportar Parmetrosn
Obtener informacin sobre Parmetrosn
Leer las Propiedades del Sistemam
Mostrar cadenas de Estadom
Diagnstico en la Salida Estndardm
Comunicarse con otros programas
Enviar Mensajes a otros Appletsm
Comunicacin con el Navegadorm
Aplicaciones en el lado del Servidorm
l
Capacidades y Restricciones en un AppletRestricciones de Seguridadm
Capacidades de un Appletm
l
Finalizar un AppletAntes de Liberar un Appletm
Finalizacin perfecta de un Appletm
l
Problemas Comunes con los Applets (y sus soluciones)l
Notas sobre el JDK 1.1l
Interface Grfico de UsuarioIntroduccin al UI de Java
Componentes de la clase AWTm
Otras Clases AWTm
La Anatoma de un programa basado en GUI
Las clases del Programa Ejemplon
La Herencia de Componentesn
Dibujon
Manejo de Eventosn
m
l
Utilizar Componentes AWT
Reglas Generalesm
Utilizar Buttonm
Utilizar Canvasm
Utilizar Checkboxm
l
Utilizar Choicem
Utilizar Dialogm
Utilizar Framem
Utilizar Labelm
Utilizar Listm
Utilizar Menum
Utilizar Panelm
Utilizar Scrollbarm
Utilizar Campos y Areas de Textom
Detalles de la Arquitectura de Componentesm
Problemas con los Componentesm
Distribuir Componentes
Utilizar Manejadores de Distribucin
Reglas Generalesn
BorderLayoutn
CardLayoutn
FlowLayoutn
GridLayoutn
GridBagLayoutn
Especificar Restriccionesn
El Applet de Ejemplon
Crear un Controlador Personalizadon
Posicionamiento Absoluton
Problemas con los controladoresn
m
l
Introduccin a los Grficos del AWT
Dibujar Formas Sencillasm
Dibujar Textom
Utilizar Imagenes
Cargar Imagenesn
Mostrar Imagenesn
Manipular Imagenes
Utilizar un Filtron
Escribir un Filtron
n
m
l
Realizar Animaciones
Crear un Buclen
Animar Grficosn
Eliminar el Parpadeo
Sobreescribir el mtodo update()n
Doble Buffern
n
Mover una Imagenn
Mostrar Secuencias de Imagenesn
Aumentar el rendimiento de una Animacinn
m
Problemas comunes con los Grficosm
Grficos 2DIntroduccin al API 2D de Java
Dibujado Java 2Dm
Sistema de Coordenadasm
Formasm
Textom
Imgenesm
Imprimirm
l
Mostrar Grficos con Graphics2D
Rellenar y patronar grficos primitivosm
Transformar formas texto e imgenesm
Recortar la regin de dibujom
Componer Grficosm
Controlar la Calidad del dibujadom
Construir formas complejas con geomtricos primitivosm
Soportar Interaccin del Usuariom
l
Trabajar con Texto y Fuentes
Crear y Derivar Fuentesm
Dibujar mltiples lneas de textom
l
Manipular y Mostrar Imgenes
Modo Inmediato con BufferedImagem
Filtrar un BufferedImagem
l
Usar un BufferedImage para doble bufferm
Imprimir
Imprimir en Javam
Imprimir el contenido de un componentem
Mostrar el dilogo Page Setupm
Imprimir una coleccin de pginasm
l
Resolver problemas comunes con los grficos en 2Dl
Trabajo en RedTrabajo en la Redl
Introduccin al Trabajo en RedTrabajo en Red Bsicom
Lo que ya podras conocer sobre el trabajo en Redm
l
Trabajar con URLsQu es una URL?m
Crear una URLm
Analizar una URLm
Leer desde una URLm
Conectar con una URLm
Leer y Escribir utilizando una URLm
l
Todo sobre los Sockets
Qu es un Socket?m
Leer y Escribir utilizando un Socketm
Escribir el lado del servidor de un Socketm
l
Todo sobre los DatagramasQu es un Datagrama?m
Escribir Datagramas Cliente y Servidorm
l
Controlador de Seguridad
Introduccin a los Controladores de Seguridadm
Escribir un Controladorm
Instalar un Controladorm
Decidir los Mtodos a sobreescribir del SecurityManagerm
l
Notas sobre el JDK 1.1l
Los BeansJavaBeansl
Introduccin a los BeansConceptos bsicosm
El Kit de Desarrollo de beansm
l
Utilizar BeanBox
Arrancar y utilizar BeanBoxm
Mens de BeanBoxm
Utilizar BeanBox para generar Appletsm
l
Escribir un Bean sencillol
Propiedades
Propiedades sencillasm
Propiedades Compartidasm
Propiedades Restringidasm
Propiedades Indexadasm
l
Manipular Eventos en BeanBoxl
El Interface BeanInfol
Personalizar Beansl
Persistencia de un Beanl
Nuevas Caractersitcasl
ServletsIntroduccin a los Servlets
Arquitectura del paquete Servletm
Un Servelt Sencillom
Ejemplosm
l
Interaccin con los Clientes
Peticiones y Respuestasm
Manejar Peticiones GET y POSTm
Problemas con los Threadsm
Proporcionar Informacin de un Servletm
l
El Ciclo de Vida de un Servlet
Inicializar un Servletm
l
Destruir un Servletm
Guardar el estado del Cliente
Trayectoria de Sesinm
Utilizar Cookiesm
l
La utilidad ServletRunner
Propiedades de un Servletm
Arrancar Servletrunnerm
l
Ejecutar Servlets
Desde un Navegadorm
Desde una Pgina HTMLm
Desde otro Servletm
l
InternacionalizacinMercados Globales
Internacionalizacinm
Localizacinm
Datos Dependientes de la Culturam
l
Un Ejemplo Rpido
Antes de la Internacionalizacinm
Despus de la Internacionalizacinm
Ejecutar el programam
Internacionalizar el ejemplo
Crear el fichero de propiedadesn
Definir la Localidadn
Crear el ResourceBundlen
Buscar el texto en el ResourceBundlen
m
l
Seleccionar la Localidad
Crear una Localidadm
Identificar las Localidades disponiblesm
La Localidad por defectom
El mbito de la Localidadm
l
Aislar Objetos Especficos en un ResourceBundle
La clase ResourceBundlem
l
Preparar un ResourceBundlem
Ficheros de Propiedadesm
Utilizar un ListResourceBundlem
Formatear Nmeros y Moneda
Usar Formatos Predefinidosm
Formatear con Patronesm
l
Formatear Fechas y Horas
Usar Formatos Predefinidosm
Formatear con Patronesm
Cambiar simbolos en el formato de Fechasm
l
Formatear Mensajes
Tratar con mensajes concatenadosm
Manejar Pluralesm
l
Trabajar con Excepciones
Manejar mensajes de las Excepcionesm
Crear subclases de Exception independientes de la Localidadm
l
Comparar Strings
Realizar comparaciones independientes de la Localidadm
Reglas personales de comparacinm
Aumentar el rendimiento de la comparacinm
l
Detectar Lmites de Texto
La clase BreakIteratorm
Lmite de Caracterm
Lmite de Palabram
Lmite de Sentenciam
Lmite de Lneam
l
Convertir texto no Unicode
Bytes Codificados y Stringsm
Streams de Bytes y de Caracterm
l
Un lista de chequeo para Internacionalizar una programa existentel
Ficheros JARFormato de Fichero JARl
Usar ficheros JAR: bsico
Crear un fichero JARm
Ver el contenido de un fichero JARm
Extraer el contenido de un fichero JARm
Modificar un fichero de Manifiestom
Ejecutar software contenido en un fichero JARm
Entender el Manifiestom
l
Firmar y Verificar ficheros JAR
Firmar un Fichero JARm
Verificar un Fichero JAR Firmadom
Entender la Firma y la Verificacinm
l
Mtodos NativosEl JNI de Javal
Paso a Paso
Paso 1: Escribir el cdigo Javam
Paso 2: Compilar el cdigo Javam
Paso 3: Crear el fichero .Hm
Paso 4: Escribir el Mtodo Nativom
Paso 5: Crear una Librera Compartidam
Paso 6: Ejecutar el Programam
l
Implementar Mtodos Nativos
Declarar Mtodos Nativosm
Los tipos Java en Mtodos Nativosm
Acceder a Strings Java en Mtodos Nativosm
Trabajar con Arrays Java en Mtodos Nativosm
Llamar a Mtodos Javam
Acceder a campos Javam
Manejar errores Java desde Mtodos Nativosm
Referencias Locales y Globalesm
Threads y Mtodos Nativosm
l
Invocar a la Mquina Virtual Javam
Programacin JNI en C++m
Acceso a Bases de Datos: JDBCAcceso a Bases de Datosl
JDBC BsicoEmpezarm
Seleccionar una base de datosm
Establecer una Conexinm
Seleccionar una Tablam
Recuperar Valores desde una Hoja de Resultadosm
Actualizar Tablasm
Utilizar Sentencias Preparadasm
Utilizar Unionesm
Utilizar Transacionesm
Procedimientos Almacenadosm
Utilizar Sentencias SQLm
Crear Aplicaciones JDBC Completasm
Ejecutar la Aplicacin de Ejemplom
Crear un Applet desde una Aplicacinm
l
El API del JDBC 2.0
Inicializacin para utilizar JDBC 2.0m
Mover el Cursor sobre una hoja de Resultadosm
Hacer Actualizaciones en una hoja de Resultadosm
Actualizar una Hoja de Resultados Programticamentem
Insertar y borrar filas Programticamentem
Insertar una filam
Borrar una filam
Hacer Actualizaciones por Lotesm
Usar tipos de datos SQL3m
Caracersticas de Extensin Estndardm
l
Invocacin Remota de Mtodos: RMIRMI
Introduccin al RMIm
Escribir un Servidor de RMI
Disear un Interface Remoton
Implementar un Interface Remoton
m
Crear un Programa Clientem
Compilar y Ejecutar el Ejemplo
Compilar el Programa de Ejemplon
Ejecutar el Programa de Ejemplon
m
l
Cambios en el JDK 1.1.xCambios en el JDK 1.1.xl
Qu hay de nuevo?
Internacionalizacinm
Seguridad y los Applets firmadosm
Ampliacin del AWTm
JavaBeansm
Ficheros JARm
Ampliacin de la Redm
Ampliacin de la I/Om
El paquete Mathm
RMIm
Serializar Objetosm
Reflexinm
Bases de Datosm
Clases Internasm
Interface Nativom
Aumento de Rendimientom
Miscelneam
Notas sobre JDK 1.1m
l
Cambios en el GUI
Nuevo modelo de Eventosm
l
Introduccinn
Adaptadores y clases Internasn
Eventos Estandardn
Eventos generados por componentes del AWTn
Escribir un oyente de Actionn
Escribir un oyente de Adjustmentn
Escribir un oyente de Componentn
Escribir un oyente de Containern
Escribir un oyente de Focusn
Escribir un oyente de Itemn
Escribir un oyente de Keyn
Escribir un oyente de Ratnn
Escribir un oyente de movimiento de Ratnn
Escribir un oyente de Texton
Escribir un oyente de Ventanasn
Utilizar la versin "Swing" del JFC
Introducin al Swingm
Empezar con Swing
Ejecutar un Applet de Swingn
Detalles de Componentesn
Reglas Generalesn
La clase Buttonn
La clase Checkboxn
La clase Labeln
La clase RadioButtonn
La clase TabbedPanen
La clase Tablen
La clase ToolTipn
La clase Treen
m
l
Ozito
Tu Primera 'Taza' de JavaLas dos pginas siguientes proporcionan instrucciones detalladas para compilar yejecutar tu primer programa Java. Elige la seccin a la que pertenezca tu sistemaoperativo
Tu primera 'Taza' en Win32
Estas instrucciones son para usuarios de plataformas Win32, que incluyea Windows 95, Windows 98 y Windows NT.
Tu primera 'Taza' en UNIX
Estas instrucciones son para usuarios de plataformas basadas en UNIX,incluyendo Linux y Solaris.
Tu primera 'Taza' en MAC
Estas instrucciones son para usuarios de plataformas basadas en MAC.
Ozito
Tu Primera Taza de Java en Win32Instrucciones Detalladaspara Tu Primer Programa
Las siguientes instrucciones te ayudarn a escribir tu primerprograma Java. Estas instrucciones son para usuarios deplataformas Win32, que incluye Windows 95, Windows 98 yWindows NT.
1. Checklist 2. Crear tu Primera Aplicacin a. Crear un Fichero Fuente Java b. Compilar el Fichero Fuente c. Ejecutar el Programa
3. Crear Tu Primer Applet 4. Dnde ir desde Aqu
1. Checklist Para escribir tu primer programa, necesitars:
La Edicin Estndard de la Plataforma Java 2TM. Puedes descargarlaahora y consultar las instrucciones de instalacin.
1.
Un Editor de texto. En este ejemplo, usaremos el NotePad de Windows. Paraencontrar NotePad desde le men Inicio selecciona Programas > Accesorios >NotePad. Si usas un editor diferente no te ser dificil adaptar estasinstrucciones.
2.
Estas dos cosas son todo lo que necesitas para programar en Java.
2. Crear Tu Primera Aplicacin
Tu primer programa, HelloWorldApp, simplementemostrar el saludo "Hello world!". Para crear esteprograma, debers:
Crear un fichero fuente Java. Un ficherofuente contiene texto, escrito en el lenguaje deprogramacin Java, que tu y otrosprogramadores pueden entender. Se puede usarcualquier editor de texto para crear y editarficheros fuente.
l
Compilar el fichero fuente en un fichero debytecodes. El compilador de Java, javac, tomanuestro fichero fuente y lo traduce eninstrucciones que la Mquina Virtual Java (JavaVM) puede entender. El compilar pone estasinstrucciones en un fichero de bytecodes.
l
Ejecutar le programa contenido en elfichero de bytecodes. La mquina virtual Javaest implementada por un intrprete Java,java. Este intrprete toma nuestro fichero debytecodes y lleva a cabo las instruccionestraducindolas a instrucciones que nuestroordenador pude entender.
l
Por qu estn de moda losBytecodes
Habrs oido que con el lenguaje deprogramacin Java, puedes "escribiruna vez, ejecutar en cualquier parte".Esto significa que cuando se compilaun programa, no se generaninstrucciones para una plataformaespecfica. En su lugar, se generanbytecodes Java, que son instruccionespara la Mquina Virtual Java (JavaVM). Si tu plataforma- sea Windows,UNIX, MacOS o un navegador deinternet-- tiene la Java VM, podrentender los bytecodes.
Subir
a.Crear un Fichero Fuente Java.Tienes dos opciones:
Puedes grabar el fichero HelloWorldApp.java en tu ordenador yas evitarte todo el tecleo. Luego puedes ir directo al paso b.
l
O, puedes seguir ests (largas) instrucciones:l
1.Arranca NotePad. En un nuevo documento, teclea el siguiente cdigo:
/** * The HelloWorldApp class implements an application that * simply displays "Hello World!" to the standard output. */class HelloWorldApp { public static void main(String[] args) { // Display "Hello World!" System.out.println("Hello World!"); }}
Se cuidadoso cuando lo teclees
Teclea todo el cdigo, comandos y nombres de ficheros exactamentecomo los ves. El compilador y el intrprete Java son sensibles a lasmaysculas.
HelloWorldApp helloworldapp
2. Graba este cdigo en un fichero. Desde la barr de men, seleccionaFile > Save As. En le caja de dilofoSave As:
Usa el men desplegable Save in, para especificar el directorio (ocarpeta) donde grabars el fichero. En este ejemplo, el es eldirectorio java en la unidadC.
l
En la caja de texto File name, teclea, "HelloWorldApp.java",incluyendo las comillas.
l
En el men desplegable Save as type, elige Text Document. l Cuando hayas terminado la caja de dilogo se debera parecera esto:
Ahora pulsa sobre Save, y sal de NotePad.
Subir
b. Compilar el Fichero FuenteDesde el men Start, selecciona la aplicacin MS-DOS Prompt (Windows95/98) o Command Prompt (Windows NT). Cuando se lanze, se deberaparecer a esto:
El prompt muestra tu directorio actual. Cuando salimos a una ventanadel DOS en Windows 95/98, el directorio actual normalmente esWINDOWS en nuestra unidad C (como s eve arriba) o WINNT paraWindows NT. Para compilar el fichero fuente, cambiamos al directorio enel que se encuentra el fichero. Por ejemplo, si nuestro directorio decdigo fuente es java en la unidad C, deberamos teclear el siguientecomando y pulsar Enter:
cd c:\java
Ahora el prompt debera cambiar a C:\java>.
Nota: Para cambiar a un directorio en una unidad diferente,deberemos teclear un comando extra.
Como se ve aqu, para cambiar aldirectorio java en la unidad D,debemos reentrar en la unidad d:
Si tecleas dir en la lnea de comandos, deberas ver tu fichero.
Ahora puedes compilar. En la lnea de comandos, teclea el siguientecomando y pulsa Enter:
javac HelloWorldApp.java
Si el prompt reaparece sin mensajes de error, felicidades. Tu programase ha compilado con xito.
Explicacin de ErrorBad command or file name (Windows 95/98)
El nombre especificado no es reconocido como un comando interno oexterno, operable program or batch file (Windows NT)
Si recibes este error, Windows no puede encontrar el compilador Java, javac.
Aqu hay una forma de decirle a Windows dnode encontrar javac.Supongamos que has intalado el SDK de Java 2 en C:\jdk1.2.2. En el promptdeberas tecelar el siguiente comando y pulsar Enter:
C:\jdk1.2.2\bin\javac HelloWorldApp.javaNota: Si eliges esta opcin, cada vez que compiles o ejecutes un programamtendrs que preceder a tus comandos javac y java con C:\jdk1.2.2\bin\.Para evitar esto consulta la seccin Update the PATH variable en lasinstrucciones de instalacin.
El compilador ha generado un fichero de bytecodes Java,HelloWorldApp.class. En el prompt, teclea dir para ver el nuevofichero que se ha generado:
Ahora que tienen un fichero .class, puedes ejecutar tu programa.
subir
c.Ejecutar el ProgramaEn el mismo directorio teclea en el prompt:
java HelloWorldApp
Ahora deberas ver:
Felicidades!, tu programa funciona.
Explicacin de ErrorException in thread "main" java.lang.NoClassDefFoundError:HelloWorldApp
Si recibes este error, java no puede encontrar tu fichero de bytecodes,HelloWorldApp.class.
Uno de los lugares donde java intenta buscar el fichero de bytecodes es eldirectorio actual. Por eso, si tu fichero de bytecodes est en C:\java, deberascambiar a ese directorio como directorio actual.
Si todava tienes problemas, podras tener que cambiar tu variablesCLASSPATH. Para ver si es necesario, intenta seleccionar el casspath con elsiguiente comando:
set CLASSPATH=Ahora introduce de nuevo java HelloWorldApp. Si el programa funciona,tendrs que cambiar tu variable CLASSPATH. Para ms informacin, consultala seccin Check the CLASSPATH Variable en las instrucciones deinstalacin.
subir
3.Crear tu Primer AppletHelloWorldApp es un ejemplo de una aplicacin Java, un programa solitario.Ahora crears un applet Java, llamado HelloWorld, que tambin muestra elsalido "Hello world!". Sin embargo, al contrario que HelloWorldApp, el applet seejecuta sobre un navegador compatible con Java, como HotJava, NetscapeNavigator, o Microsoft Internet Explorer.
Para crear este applet, debes realizar los mismos pasos bsicos que antes: crearun fichero fuente Java; compilarlo y ejecutar el programa.
a. Crear un Fichero Fuente Java.De nuevo, tienes dos opciones:
Puedes grabar los ficheros HelloWorld.java y Hello.html en tuordenador y as evitarte todo el tecleo. Luego puedes ir directo alpaso b.
l
O, puedes seguir estas instrucciones:l
1.Arranca NotePad y teclea el siguiente cdigo en un nuevo documento:
import java.applet.*;import java.awt.*;
/** * The HelloWorld class implements an applet that * simply displays "Hello World!". */public class HelloWorld extends Applet { public void paint(Graphics g) { // Display "Hello World!" g.drawString("Hello world!", 50, 25); }}
Graba este cdigo en un fichero llamado HelloWorld.java.
2. Tambin necesitas un fichero HTML que acompae a tu applet. Tecleael siguiente cdigo en nuevo documento del NotePad:
A Simple Program
Here is the output of my program:
Graba este cdigo en un fichero llamado Hello.html.
b. Compilar el Cdigo Fuente.En el prompt, teclea el siguiente comando y pulsa Return:
javac HelloWorld.java
El compilar debera generar el fichero de bytecodes Java,HelloWorld.class.
c. Ejecutar el Programa.Aunque puedes ver tu applet usando un navegado, podras encontrarms sencillo probarlos usando la aplicacin appletviewer que viene conla plataforma JavaTM . Para ver el applet HelloWorld usando elappletviewer, teclea esto en la lnea de comandos:
appletviewer Hello.html
Ahora deberas ver:
Felicidades! tu applet funciona.
subir
4. A dnde ir desde aqu?Para continuar con la introduccin al lenguaje Java, puedes visitar estas secciones:
Por dnde Empezar Conceptos Bsicos
Subir
Ozito
Primera Taza de Java en UNIXInstrucciones Detalladaspara Tu Primer Programa
Las siguientes instrucciones te ayudarn a escribir tu primerprograma Java. Estas instrucciones son para usuarios deplataformas basadas en UNIX, incluyendo Linux y Solaris
1. Checklist 2. Crear tu Primera Aplicacin a. Crear un Fichero Fuente Java b. Compilar el Fichero Fuente c. Ejecutar el Programa
3. Crear Tu Primer Applet 4. Dnde ir desde Aqu
1. Checklist Para escribir tu primer programa, necesitars:
La Edicin Estndard de la Plataforma Java 2TM. Puedes descargarla ahoray consultar las instrucciones de instalacin.
1.
Un Editor de texto. En este ejemplo, usaremos el Pico, un editor disponible enmuchas plataformas basadas en UNIX. Si usas un editor diferente, como VI oEmacs, no te ser dificil adaptar estas instrucciones.
2.
Estas dos cosas son todo lo que necesitas para programar en Java.
2. Crear Tu Primera AplicacinTu primer programa, HelloWorldApp, simplementemostrar el saludo "Hello world!". Para crear esteprograma, debers:
Crear un fichero fuente Java. Un ficherofuente contiene texto, escrito en el lenguaje deprogramacin Java, que tu y otrosprogramadores pueden entender. Se puede usarcualquier editor de texto para crear y editarficheros fuente.
l
Compilar el fichero fuente en un fichero debytecodes. El compilador de Java, javac, tomanuestro fichero fuente y lo traduce eninstrucciones que la Mquina Virtual Java (JavaVM) puede entender. El compilar pone estasinstrucciones en un fichero de bytecodes.
l
Por qu estn de moda losBytecodes
Habrs oido que con el lenguaje deprogramacin Java, puedes "escribiruna vez, ejecutar en cualquier parte".Esto significa que cuando se compilaun programa, no se generaninstrucciones para una plataformaespecfica. En su lugar, se generanbytecodes Java, que son instruccionespara la Mquina Virtual Java (JavaVM). Si tu plataforma- sea Windows,UNIX, MacOS o un navegador deinternet-- tiene la Java VM, podrentender los bytecodes.
Ejecutar le programa contenido en elfichero de bytecodes. La mquina virtual Javaest implementada por un intrprete Java,java. Este intrprete toma nuestro fichero debytecodes y lleva a cabo las instruccionestraducindolas a instrucciones que nuestroordenador pude entender.
l
Subir
a.Crear un Fichero Fuente Java.Tienes dos opciones:
Puedes grabar el fichero HelloWorldApp.java en tu ordenador y asevitarte todo el tecleo. Luego puedes ir directo al paso b.
l
O, puedes seguir ests (largas) instrucciones:l
1.Trae una ventana shell (algunas veces llamada una ventana de terminal).Cuando veas la ventana se parecer a esto
Cuando se muestra por primera vez el prompt, tu directorio actualar sernormalmente tu directorio 'home'. Puedes cambiar tu directorio actual a tudirectorio home en cualquier momento tecleando cd y pulsando Return.
Los ficheros Java que crees deberan estar en un directorio separado. Puedescrear un directorio usando el comando mkdir. Por ejemplo, para crear eldirectorio java en tu diectorio home, primero debes cambiar tu directorioactual a tu directorio home entrando el siguiente comando:
cd
Luego introducirs el siguiente comando:
mkdir java
Para cambiar tu directorio actual a este nuevo disrectorio, deberas teclear:
cd java
Ahora ya puedes empezar a crear tu fichero fuente.
2. Arranca el editor Pico tecleandopico en elprompt y pulsandoReturn. Si el sistema responde conel mensaje pico: command notfound, es que Pico no estdisponible. Consulta a tuadministrador de sistemas params informacin o usa otro editor.
Cuando se arraca Pico, se muestraun nuevo buffer en blanco. Este esel re en que el teclears tucdigo
Pico? VI? Emacs?
Pico es probablemente el mssencillo de los tres editores. Sitienes curiosidad sobre el usode los otros editores puedesvisitar las siguientes pginas VIy Emacs< .
3. Teclea el siguiente cdigo dentro del nuevo buffer:
/** * The HelloWorldApp class implements an application that * simply displays "Hello World!" to the standard output. */class HelloWorldApp { public static void main(String[] args) { // Display "Hello World!" System.out.println("Hello World!"); }}
Se cuidadoso cuando lo teclees
Teclea todo el cdigo, comandos y nombres de ficheros exactamentecomo los ves. El compilador y el intrprete Java son sensibles a lasmaysculas.
HelloWorldApp helloworldapp
4. Graba el cdigo pulsando Ctrl-O. En la parte inferior vers el prompt File Name towrite:. Introduce HelloWorldApp.java, precedido por el directorio en el que deseasgrabar el ficherp. Por ejemplo, si lo deseas grabar en el directorior/home/rortigas/java, deberas teclear/home/rortigas/java/HelloWorldApp.java y pulsar Return.
Puedes teclear Ctrl-X para salir de Pico. subir
b. Compilar el fichero Fuente.Trae otra ventana del shell. Para compilar el fichero fuente, cambiar tudirectorio actual al directorio en el que estaba el fichero fuente. Por ejemplo,si tu directorio fuente es /home/rortigas/java, deberas teclear elsiguiente comando en el prompt y pulsar Return:
cd /home/rortigas/java
Si introduces pwd en el prompt deberas verl directorio actual, que en esteejemplo ha sido cambiado a /home/rortigas/java.
Si introduces ls en el prompt deberas ver tu fichero.
Ahora puedes compilarlo. En el prompt, teclea el siguiente comando y pulsaReturn:
javac HelloWorldApp.java
Si tu prompt reaparece sin mensajes de error, Felicidades! tu programa seha compilado con xito.
Explicacin de Errorjavac: Command not found
Si recibes este error, UNIX no puede encontrar el compilador Java, javac.
Aqu hay una forma de decirle a UNIX dnode encontrar javac. Supongamosque has intalado el SDK de Java 2 en /usr/local/jdk1.2.2. En el promptdeberas tecelar el siguiente comando y pulsar Enter:
/usr/local/jdk1.2.2\bin\javac HelloWorldApp.javaNota: Si eliges esta opcin, cada vez que compiles o ejecutes un programamtendrs que preceder a tus comandos javac y java con/usr/loacl/jdk1.2.2\bin\. Para evitar esto consulta la seccin Update thePATH variable en las instrucciones de instalacin.
El compilador ha generado un fichero de bytecodes de Java,HelloWorldApp.class. En el prompt, teclea ls para ver el nuevo ficherogenerado
Ahora que tenemos un fichero .class, podemos ejecutar el programa.
Subir
c.Ejecutar el Programa.En el mismo directorio introducir en el prompt:
java HelloWorldApp
Ahora deberas ver:
Felicidades! tu programa funciona!.
Explicacin de ErrorException in thread "main" java.lang.NoClassDefFoundError:HelloWorldApp
Si recibes este error, java no puede encontrar tu fichero de bytecodes,HelloWorldApp.class.
Uno de los lugares donde java intenta buscar el fichero de bytecodes es eldirectorio actual. Por eso, si tu fichero de bytecodes est en/home/rortigas/java, deberas cambiar a ese directorio como directorioactual.
cd /home/rortigas/javaSi todava tienes problemas, podras tener que cambiar tu variableCLASSPATH. Para ver si es necesario, intenta seleccionar el casspath con el
siguiente comando:
unset CLASSPATH=Ahora introduce de nuevo java HelloWorldApp. Si el programa funciona,tendrs que cambiar tu variable CLASSPATH. Para ms informacin, consultala seccin Check the CLASSPATH Variable en las instrucciones deinstalacin.
Subir
3.Crear tu primer AppletHelloWorldApp es un ejemplo de una aplicacin Java, un programa solitario. Ahoracrears tu primer Applet Ajava llamado HelloWorld, que tambin muestra el saludo"Hello world!". Sin embargo, al contrario que HelloWorldApp, el applet se ejecutasobre un navegador compatible con Java, como HotJava, Netscape Navigator, oMicrosoft Internet Explorer.
Para crear este applet, debes realizar los mismos pasos bsicos que antes: crear unfichero fuente Java; compilarlo y ejecutar el programa.
a. Crear un Fichero Fuente Java.De nuevo, tienes dos opciones:
Puedes grabar los ficheros HelloWorld.java y Hello.html en tuordenador y as evitarte todo el tecleo. Luego puedes ir directo al pasob.
l
O, puedes seguir estas instrucciones:l
1.Arrancar Pico, y teclear el siguiente cdigo dentro del buffer:
import java.applet.*;import java.awt.*;
/** * The HelloWorld class implements an applet that * simply displays "Hello World!". */public class HelloWorld extends Applet { public void paint(Graphics g) { // Display "Hello World!" g.drawString("Hello world!", 50, 25); }}
Graba este cdigo en un fichero llamado HelloWorld.java. Teclea Ctrl-X
para salir de Pico.
2. Tambin necesitas un fichero HTML que acompae al applet. Arranca Picode nuevo y tecela el siguiente cdigo en un nuevo buffer:
A Simple Program
Here is the output of my program:
Graba este cdigo en un fichero llamado HelloWorld.html. Teclea Ctrl-Xpara salir de Pico.
b. Compilar el Ficheor Fuente.En el prompt, teclea el siguiente comando y pulsa Return:
javac HelloWorld.java
El compilar debera generar un fichero de bytecodes Java,HelloWorld.class.
c. Ejecutar el Programa.Aunque puedes ver tu applet usando un navegado, podrasencontrar ms sencillo probarlos usando la aplicacinappletviewer que viene con la plataforma JavaTM . Para ver elapplet HelloWorld usando el appletviewer, teclea esto en lalnea de comandos:
appletviewer Hello.html
Ahora deberas ver:
Felicidades! tu applet Funciona!
subir
4. A dnde ir desde aqu?Para continuar con la introduccin al lenguaje Java, puedes visitar estas secciones:
Por dnde Empezar Conceptos Bsicos
Subir
Ozito
Tu Primera Taza de Java en MacOSInstrucciones Detalladaspara Tu Primer Programa
Las siguientes instrucciones te ayudarn a escribir tu primerprograma Java. Estas instrucciones son para usuarios de laplataforma MacOS.
1. Checklist 2. Crear tu Primera Aplicacin a. Crear un Fichero Fuente Java b. Compilar el Fichero Fuente c. Ejecutar el Programa
3. Crear Tu Primer Applet 4. Dnde ir desde Aqu
1. Checklist Un Entorno de Desarrollo para la Plataforma Java. Puedes descargar el MRJ SDK(Macintosh Runtime Environment for Java Software Development Kit) desde lawebsite de Apple.
1.
Un entorno de ejecucin para la misma versin de la plataforma Java. Puedesdescargar el MRJ (Macintosh Runtime Enviroment for Java) desde la website deApple.
2.
Un Editor de texto. En este ejemplo, usaremos SimpleText, el sencillo editorincluido con las plataformas Mac OS. Si usas un editor diferente no te ser dificiladaptar estas instrucciones.
3.
Estas tres cosas son todo lo que necesitas para programar en Java.
2. Crear Tu Primera AplicacinTu primer programa, HelloWorldApp, simplementemostrar el saludo "Hello world!". Para crear esteprograma, debers:
Crear un fichero fuente Java. Un ficherofuente contiene texto, escrito en el lenguaje deprogramacin Java, que tu y otrosprogramadores pueden entender. Se puede usarcualquier editor de texto para crear y editarficheros fuente.
l
Compilar el fichero fuente en un fichero debytecodes. El compilador de Java, javac, tomanuestro fichero fuente y lo traduce eninstrucciones que la Mquina Virtual Java (JavaVM) puede entender. El compilar pone estas
l
Por qu estn de moda losBytecodes
Habrs oido que con el lenguaje deprogramacin Java, puedes "escribiruna vez, ejecutar en cualquier parte".Esto significa que cuando se compilaun programa, no se generaninstrucciones para una plataformaespecfica. En su lugar, se generanbytecodes Java, que son instruccionespara la Mquina Virtual Java (JavaVM). Si tu plataforma- sea Windows,UNIX, MacOS o un navegador deinternet-- tiene la Java VM, podr
instrucciones en un fichero de bytecodes. Ejecutar le programa contenido en elfichero de bytecodes. La mquina virtual Javaest implementada por un intrprete Java,java. Este intrprete toma nuestro fichero debytecodes y lleva a cabo las instruccionestraducindolas a instrucciones que nuestroordenador pude entender.
l
entender los bytecodes.
Subir
a.Crear un Fichero Fuente Java.Tienes dos opciones:
Puedes grabar el fichero HelloWorldApp.java en tu ordenador y asevitarte todo el tecleo. Luego puedes ir directo al paso b.
l
O, puedes seguir ests (largas) instrucciones:l
1.Arranca SimpleText. En un nuevo documento, teclea el siguiente cdigo:
/** * The HelloWorldApp class implements an application that * simply displays "Hello World!" to the standard output. */class HelloWorldApp { public static void main(String[] args) { // Display "Hello World!" System.out.println("Hello World!"); }}
Se cuidadoso cuando lo teclees
Teclea todo el cdigo, comandos y nombres de ficheros exactamentecomo los ves. El compilador y el intrprete Java son sensibles a lasmaysculas.
HelloWorldApp helloworldapp
2. Graba este cdigo en un fichero. Desde la barr de men, selecciona File >Save As. En la caja de dilogoSave As:
Especificar la carpeta donde grabars el fichero. En este ejemplo, el es lacarpeta MRJ SDK 2.1.
l
En la caja de texto Save This Document as:, teclea,"HelloWorldApp.java"
l
Cuando hayas terminado la caja de dilogo se debera parecer a esto:
Ahora pulsa sobre Save, y sal de SimpleText.
Subir
b. Compilar el Fichero FuenteVe a la carpeta MRJ SDK 2.1 y all deberas ver algo como esto:
Habr una carpeta llamada Tools. En esta carpeta hay una carpeta llamadaMRJTools.Abrela. Vers un programa llamado javac.
Ahora arrastra nuestro HelloWorldApp.java sobre esta aplicacin Javac. Seabrira javac y deberas ver:
En la caja Source Files nos ofrece el path absoluto que acabamos de crear. Porahora no tenemos que hacer nada ms excexto pulsr el botn Do Javac.
Si no aparecen mensajes de error, felicidades. Tu programa se ha compilado conxito.
Explicacin de ErrorSi arrastras nuestro fichero .java sobre el programa javac y el ficherose muda sobre la apIicacin javac
Cuando se intenta esto y lo nico que sucede es que nuestro fichero .java secopia o se mueve encima de nuestra aplicacin javac, tenemos reconstruirnuestro escritorio.
Para hacer esto tenemos que volver a arrancar el ordenador y pulsar ymantener las teclas "Apple" - y "Alt" hasta que obtengamos una ventanapreguntndonos si queremos reconstruir nuestro escritorio.
Respondemos que s. Cuando el ordenador haya finalizado debemos poderarrastrar nuestro fichero .java sobre la aplicacin javac.
El compilador ha generado un fichero de bytecodes Java,HelloWorldApp.class. Mira en la misma carpeta en la que grabaste el fichero.java y vers el fichero .class:
Ahora que tenemos un fichero .class, puedes ejecutar tu programa.
subir
c.Ejecutar el ProgramaEn la carpeta MRJ SDK 2.1 hay otra carpeta llamada JBindery. Abrela y deberahacer una aplicacin llamada JBindery
Arrastra el fichero HelloWorldApp.class sobre el icono JBindery.
Si obtienes esto:
Felicidades!, tu programa funciona.
subir
3.Crear tu Primer AppletHelloWorldApp es un ejemplo de una aplicacin Java, un programa solitario. Ahoracrears un applet Java, llamado HelloWorld, que tambin muestra el salido "Helloworld!". Sin embargo, al contrario que HelloWorldApp, el applet se ejecuta sobre unnavegador compatible con Java, como HotJava, Netscape Navigator, o Microsoft InternetExplorer.
Para crear este applet, debes realizar los mismos pasos bsicos que antes: crear unfichero fuente Java; compilarlo y ejecutar el programa.
a. Crear un Fichero Fuente Java.De nuevo, tienes dos opciones:
Puedes grabar los ficheros HelloWorld.java y Hello.html en tu ordenadory as evitarte todo el tecleo. Luego puedes ir directo al paso b.
l
O, puedes seguir estas instrucciones:l
1.Arranca SimpleText y teclea el siguiente cdigo en un nuevo documento:
import java.applet.*;import java.awt.*;
/** * The HelloWorld class implements an applet that * simply displays "Hello World!". */public class HelloWorld extends Applet { public void paint(Graphics g) { // Display "Hello World!" g.drawString("Hello world!", 50, 25); }}
Graba este cdigo en un fichero llamado HelloWorld.java.
2. Tambin necesitas un fichero HTML que acompae a tu applet. Teclea elsiguiente cdigo en nuevo documento del SimpleText:
A Simple Program
Here is the output of my program:
Graba este cdigo en un fichero llamado Hello.html.
b. Compilar el Cdigo Fuente.Compila el fichero fuente HelloWorld.java usando javac.
El compilador debera generar el fichero de bytecodes Java, HelloWorld.class.
c. Ejecutar el Programa.Aunque puedes ver tu applet usando un navegado, podras encontrar mssencillo probarlos usando la aplicacin appletrunner que viene con laplataforma JavaTM . Para ver el applet HelloWorld usando el applet runner,abre la carpeta Apple applet viewer en la carpete MRJ SDK 2.1. Debera haberuna aplicacin llamada Apple Applet Runner.
Arrastra nuestro fichero Hello.html sobre esta aplicacin.
Ahora deberas ver:
Felicidades! Tu Applet funciona.
subir
4. A dnde ir desde aqu?Para continuar con la introduccin al lenguaje Java, puedes visitar estas secciones:
Por dnde Empezar Conceptos Bsicos
Subir
Ozito
Por Dnde Empezar?Bien, si ests interesado en este potente lenguaje y no sabes nada de l terecomiendo que te des una vuelta por la site de sus creadores:
http://java.sun.com
En esta otra direccin podrs bajarte la ltima versin del JDK:
http://java.sun.com/products/index.html
Dentro del JDK encontrars varias aplicaciones que te ayudarn en el trabajo conJava, por ejemplo:
javac El compilador Java por excelencia, un compilador de lnea decomandos, que te permitir crear tus programas y applets en Java.
l
appletviewer Un visualizador de Applets para no tener que cargarlos en unnavegador.
l
java El intrprete que te permitir ejecutar tus aplicaciones creadas en Java.l
javap Un descompilador que te permite ver el contenido de las clasescompiladas.
l
Pero si no te interesa el trabajo puro y duro con Java, puedes bajarte cualquiera delos entornos integrados de desarrollo de Java, como el Visual J++ de Microsoft enhttp://www.microsoft.com/visualj/ o el Wrokshop de Sun enhttp://www.sun.com/developer-products/java/.
Ozito
javac - El compilador de JavaSntaxis de utilizacin
javac [opciones] fichero.java ...
javac_g [ opciones] fichero.java ...
DescripcinEl comando javac compila el cdigo fuente Java y lo convierte enBytecodes. Despus se puede utilizar el intrprete Java - java - o elnavegador en caso de los applets para interpretar esos Bytecodes Java.
El cdigo fuente de Java debe estar contenido en ficheros con extensin'.java'. Para cada clase definida en el fichero fuente pasado a javac, elcompilador almacena los bytecodes resultantes en un fichero llamadonombredeclase.class. El compilador sita estos ficheros en el mismodirectorio en el que estaba el fichero fuente (a menos que se especifiquela opcin -d).
Cuando definas tus propias clases necesitars especificar su localizacin.Utiliza CLASSPATH para hacer esto. CLASSPATH consiste en una lista dedirectorios separados por puntos y comas que especifican el path. Si elfichero fuente pasado a javac hace referencia a otra clase que no estdefinida en otros ficheros pasados a javac, el compilador busca lasclases referenciadas utilizando CLASSPATH. Por ejemplo:.;C:/users/java/clasesObserva que el sistema siempre aade la localizacin de las clases delsistema al final del CLASSPATH a menos que se utilice la opcin-classpath para especificar un path.
javac_g es una versin no optimizada de javac especialmentepreparada para utilizar con depuradores como jdb.
Opciones-classpath path
Especifica el path que javac utilizar para buscar las clases.Sobreescribe el path por defecto generado por la variable deentorno CLASSPATH. Los directorios estn separados por puntos ycomas. Por ejemplo:.;C:/users/java/clases;C:\tools\java\clases
-d directorio
Especifica el directorio raiz para el rbol de clases. Hacer esto:javac -d miprograma.javahace que los ficheros '.class' del fichero fuente 'miprograma.java'sean guardados en el directorio 'mi_dir'.
-gHabilita la generacin de tablas de depurado. Esta tablas contieneninformacin sobre los nmeros de lneas y las variables locales -informacin utilizada por las herramientas de depurado de Java. Pordefecto, slo genera nmeros de lneas a menos que se active laoptimizacin (-O).
-nowarnDesactiva los avisos. Si se utiliza el compilador no imprime ningnaviso.
-OOptimiza el cdigo compillado introduciendo en lnea los mtodosfinales y privados. Observa que esto puede hacer que el tamao detus clases crezca demasiado.
-verboseHace que el compilador y el enlazador impriman los mensajes sobrelos ficheros fuentes que estn siendo compilados y que ficheros.class estn siendo cargados.
Ozito
appletviewer - El visualizador de AppletsEste comando te permite ejecutar applets fuera del contexto de los navegadores dela WWW.
Sntaxis
appletviewer [ opciones ] urls ...
DescripcinEl comando appletviewer conecta los documentos o recursosdesignados por urls y muestra cada applet referenciado en su propiaventana.Nota: si los documentos referenciados con las urls no contienen ningnapplet con la etiqueta APPLET, appletviewer no hace nada.
Opciones-debug
Arranca el visualizador dentro del depurador de Java, el jdb,permitindote depurar los applets en el documento
Ozito
java - El intrprete JavaSntasis de Utilizacin
java [ opciones ] nombredeclase java_g [ opciones ] nombredeclase
DescripcinEl comando java ejecuta los bytecodes Java creados por el compiladorjavac.
El argumento nombredeclase es el nombre de la clase que se va aejecutar. Debe estar totalmente cualificado e incluir su nombre depaquete en el nombre, por ejemplo:java java.lang.StringObserva que todos los argumentos que aparecen despus denombredeclase en la lnea de comandos son pasados al mtodo main()de la clase.
java espera que los bytecodes de la clase se encuentren en un ficherollamado nombredeclase.class que ha sido generado al compilar el ficherofuente correspondiente con javac. Todos los ficheros de bytecodes javatienen la extensin .class que aada automticamente el compiladorcuando la clase es compilada. La clase debe contener un mtodo main()definido de la siguiente forma:class Unaclase { public static void main( String argv []) { ...
}}
java ejecuta el mtodo main y luego sale a menos que ste cree uno oms threads. Si el mtodo main() crea algn thread, java no sale hastaque haya terminado el ltimo thread.
Normalmente, compilar tus ficheros fuente con javac y luego ejecutaslos programas con java. Sin embargo, se puede utilizar java paracompilar y ejecutar los programas cuando se utiliza la opcin -cs.Cuando se carga una clase se compara su fecha de ltima modificacincon la fecha del fichero fuente. Si el fuente ha sido modificado, serecompila y se carga el nuevo fichero de bytecodes. java repite esteprocedimiento hasta que todas las clases se han compilado y cargadocorrectamente.
El intrprete puede determinar su una es legtima a travs de unmecanismo de verififacin. Esta verificacin asegura que los bytecodesque estn siendo interpretados no violan las restricciones del lenguaje.
java_g es una versin no optimizada de java pensada para ser utilizadacon depuradores como el jdb.
Opciones-debug
Permite que el depurador de Java jdb se aada a esta sesn java.Cuando se especifica esta opcin en la lnea de comandos, javamuestra una password que se debe utilizar cuando empiece lasesin de depurado.
-cs, -checksourceCuando se carga una clase compilada, esta opcin hace que la fechade modificacin de los bytecodes sea comparada con la del ficherofuente. Si el fichero fuente ha sido modificado recientemente, esrecompilado y se cargan los nuevos bytecodes.
-classpath pathEspecifica el path que utilizar java para buscar las clases.Sobreescribe el valor por defecto de la variable de etornoCLASSPATH. Los directorios ests separados por comas.
-mx xSelecciona el mximo tamao de memoria reservada para la piladel recolector de basura a x. El valor por defecto es 16 megabytesde memoria. x debe ser mayor de 1000 bytes
Por defecto, x se mide en bytes. Pero puedes especifarlo en kb o Mbaadindole la letra 'k' para kilobytes o 'm' para megabytes.
-ms xSelecciona el tamao inicial de la memoria reservada para la piladel recolector de basura a x. El valor por defecto es 16 megabytesde memoria. x debe ser mayor de 1000 bytes
Por defecto, x se mide en bytes. Pero puedes especifarlo en kb o Mbaadindole la letra 'k' para kilobytes o 'm' para megabytes.
-noasyncgcDesactiva la recoleccin de basura asncrona. Cuando se activa larecoleccin de basura no tiene lugar a menos que la llameexplcitamente o el programa sale de la memoria. Normalmente, larecoleccin de basura se ejecuta en un thread asncrono en paralelocon otros threads.
-ss x
Cada thread Java tiene dos pilas: una para el cdigo Java y otrapara el cdigo C. La opcin -ss selecciona el tamao mximo de lapila que puede ser utilizada por el cdigo C en un thread a x. Cadauno de los theads ejecutados dentro del programa que se paso ajava tiene x como su tamao de pila C. El valor por defecto es 128kilobytes de memoria. x debe ser mayor de 1000 bytes
Por defecto, x se mide en bytes. Pero puedes especifarlo en kb o Mbaadindole la letra 'k' para kilobytes o 'm' para megabytes.
-oss xCada thread Java tiene dos pilas: una para el cdigo Java y otrapara el cdigo C. La opcin -oss selecciona el tamao mximo de lapila que puede ser utilizada por el cdigo Java en un thread a x.Cada uno de los theads ejecutados dentro del programa que sepaso a java tiene x como su tamao de pila Java. El valor pordefecto es 400 kilobytes de memoria. x debe ser mayor de 1000bytes
Por defecto, x se mide en bytes. Pero puedes especifarlo en kb o Mbaadindole la letra 'k' para kilobytes o 'm' para megabytes.
-tImprime un rastro de las instrucciones ejecutadas (slo enjava_g).
-v, -verboseHace que java en el canal stdout cada vez que se cara un ficheroclass.
verifyEjecuta el verificador en todo el cdigo.
-verifyremoteEjecuta el verificador para todo el cdigo que es carga dentro delsistema a travs de classloader. verifyremote es el valor por defectopara el intrprete.
-noverifyDesactiva al verificacin.
-verbosegcHace que el recolector de basura impima mensajes cada vez quelibere memoria.
-DnombrePropiedad=nuevoValorRedefine un valor de una propiedad. nombrePropiedad es el nombrede la propiedad cuyo valor se quiere cambiar y nuevoValor es elvalor a cambiar. Por ejemplo, esta lnea de comando:java -Dawt.button.color=green ...
selecciona el color de la propiedad awt.button.color a verde. javaacepta cualquier nmero de opciones -D en la lnea de comandos.
Ozito
javap - El descompilador de Ficheros de ClasesJavaDesensambla los ficheros class.
Sntaxis de Utilizacinjavap [ opciones ] clase ...
DescripcinEl comando javap desensambla un fichero class. Su salida depende delas opciones utilizadas. Si no se utilizan opciones, javap imprime loscampos y los mtodos pblicos de la clase pasada. javap muestra lasalida en stdout. Por ejemplo, la siguiente declaracin de clase:class C { static int a= 1; static int b= 2; static { System.out.println(a); } static { a++; b = 7; System.out.println(a); System.out.println(b); } static { system.out println(b); } public static void main(String args[]) { C c = new C(); }}Cuando el resultado de la clase C, sea pasado a javap sin utilizaropciones, resultar la siguiente salida:Compiled from C:\users\clases\C.javaprivate class C extends java\lang\Object { static int a; static int b; public static void main(java\lang\String[]); public C(); static void();
}Opciones-l
Imprime una tabla de lnea y variables locales.-p
Imprime tambin los miembros y mtodo privados y protegidos dela clase, adems de los miembros pblicos.
-cImprime el cdigo desensamblado, es decir, las intrucciones quecomprenden los bytecodes Java, para cada uno de los mtodos dela clase. Por ejemplo, si se pasa la clase C a javap utilizando -c elresultado sera la siguiente salida:Compiled from C:\users\clases\C.javaprivate class C extends java\lang\Object { static int a; static int b; public static void main(java\lang\String[]); public C(); static void();
Method void main(java\lang\String []) 0 new #4 3 invokenonvirtual # 9 () V> 6 return
Method C() 0 aload_0 0 1 invokenonvirtual #10 ()V> 4 return
Method void() 0 iconst_1 1 putstatic #7 4 getstatic #6 7 getstatic #7 10 invokevirtual #8 13 getstatic #7 16 iconst_1 17 iadd 18 putstatic #7 21 bipush 7 23 putstatic #5
26 getstatic #6 29 getstatic #7 32 invokevirtual #8 35 getstatic #6 38 getstatic #5 41 invokevirtual #8 44 iconst_2 45 putstatic #5 48 getstatic #6 51 getstatic #5 54 invokevirtual #8 57 return}
-classpath pathEspecifica el path que javap utilizar para buscar las clases.Sobreescribe el valor de la variable de entorno CLASSPATH. Losdirectorios deben ests separados por puntos y comas.
Ozito
Conceptos Bsicos de Programacin Orientada aObjetosQu son los objetos?En informtica, un OBJETO es un conjunto de variables y de los mtodosrelacionados con esas variables.Un poco ms sencillo: un objeto contiene en s mismo la informacin y los mtodoso funciones necesarios para manipular esa informacin.
Lo ms importante de los objetos es que permiten tener un control total sobre'quin' o 'qu' puede acceder a sus miembros, es decir, los objetos pueden tenermiembros pblicos a los que podrn acceder otros objetos o miembros privados alos que slo puede acceder l. Estos miembros pueden ser tanto variables comofunciones.
El gran beneficio de todo esto es la encapsulacin, el cdigo fuente de un objetopuede escribirse y mantenerse de forma independiente a los otros objetoscontenidos en la aplicacin.
Qu son las clases?Una CLASE es un proyecto, o prototipo, que define las variables y los mtodoscomunes a un cierto tipo de objetos.
Un poco ms sencillo: las clases son las matrices de las que luego se pueden crearmltiples objetos del mismo tipo. La clase define las variables y los mtodoscomunes a los objetos de ese tipo, pero luego, cada objeto tendr sus propiosvalores y compartirn las mismas funciones.
Primero deberemos crear una clase antes de poder crear objetos o ejemplares deesa clase.
Qu son los mensajes?Para poder crear una aplicacin necesitars ms de un objeto, y estos objetos nopueden estar aislados unos de otros, pues bien, para comunicarse esos objetos seenvan mensajes.
Los mensajes son simples llamadas a las funciones o mtodos del objeto con el sequiere comunicar para decirle que haga cualquier cosa.
Qu es la herencia?Qu significa esto la herencia, quen hereda qu; bueno tranquilo, esto slosignifica que puedes crear una clase partiendo de otra que ya exista.
Es decir, puedes crear una clase a travs de una clase existente, y esta clasetendr todas las variables y los mtodos de su 'superclase', y adems se le podrnaadir otras variables y mtodos propios.
Se llama 'Superclase' a la clase de la que desciende una clase, puedes ver mssobre la declaracin de clases en la pgina Declarar Clases.
Ozito
Variables y Tipos de DatosLas variables son las partes importantes de un lenguaje de programacin: ellas sonlas entidades (valores, datos) que actan y sobre las que se acta.Una declaracin de variable siempre contiene dos componentes, el tipo de lavariable y su nombre:
tipoVariable nombre;
Tipos de VariablesTodas las variables en el lenguaje Java deben tener un tipo de dato. Eltipo de la variable determina los valores que la variable puede contener ylas operaciones que se pueden realizar con ella.
Existen dos categorias de datos principales en el lenguaje Java: los tiposprimitivos y los tipos referenciados.
Los tipos primitivos contienen un slo valor e incluyen los tipos como losenteros, coma flotante, los caracteres, etc... La tabla siguiente muestratodos los tipos primitivos soportados por el lenguaje Java, su formato, sutamao y una breve descripcin de cada uno:
Tipo Tamao/Formato Descripcin(Nmeros enteros)byte 8-bit complemento a 2 Entero de un Byteshort 16-bit complemento a 2 Entero cortoint 32-bit complemento a 2 Enterolong 64-bit complemento a 2 Entero largo(Nmeros reales)float 32-bit IEEE 754 Coma flotante de precisin simpledouble 64-bit IEEE 754 Coma flotante de precisin doble(otros tipos)char 16-bit Caracter Un slo carcterboolean true o false Un valor booleano (verdadero o falso)
Los tipos referenciados se llaman as porque el valor de una variable dereferencia es una referencia (un puntero) hacia el valor real. En Javatenemos los arrays, las clases y los interfaces como tipos de datosreferenciados.
Nombres de VariablesUn programa se refiere al valor de una variable por su nombre. Porconvencin, en Java, los nombres de las variables empiezan con unaletra minscula (los nombres de las clases empiezan con una letra
mayscula).
Un nombre de variable Java:debe ser un identificador legal de Java comprendido en una serie decaracteres Unicode. Unicode es un sistema de codificacin quesoporta texto escrito en distintos lenguajes humanos.Unicodeperminte la codificacin de 34.168 caracteres. Esto le permiteutilizar en sus programas Java varios alfabetos como el Japons, elGriego, el Ruso o el Hebreo. Esto es importante para que losprogramadores pueden escribir cdigo en su lenguaje nativo.
1.
no puede ser el mismo que una palabra clave o el nombre de unvalor booleano (true or false)
2.
no deben tener el mismo nombre que otras variables cuyasdeclaraciones aparezcan en el mismo mbito.
3.
La regla nmero 3 implica que podra existir el mismo nombre en otravariable que aparezca en un mbito diferente.
Por convencin, los nombres de variables empiezan por un letraminscula. Si una variable est compuesta de ms de una palabra, como'nombreDato' las palabras se ponen juntas y cada palabra despus de laprimera empieza con una letra mayscula.
Ozito
OperadoresLos operadores realizan algunas funciones en uno o dos operandos. Los operadoresque requieren un operador se llaman operadores unarios. Por ejemplo, ++ es unoperador unario que incrementa el valor su operando en uno.
Los operadores que requieren dos operandos se llaman operadores binarios. Eloperador = es un operador binario que asigna un valor del operando derecho aloperando izquierdo.
Los operadores unarios en Java pueden utilizar la notacin de prefijo o de sufijo. Lanotacin de prefijo significa que el operador aparece antes de su operando:
operador operando
La notacin de sufijo significa que el operador aparece despus de su operando:
operando operador
Todos los operadores binarios de Java tienen la misma notacin, es deciraparencen entre los dos operandos:
op1 operator op2
Adems de realizar una operacin tambin devuelve un valor. El valor y su tipodependen del tipo del operador y del tipo de sus operandos. Por ejemplo, losoperadores aritmticos (realizan las operaciones de aritmtica bsica como la sumao la resta) devuelven nmeros, el resultado tpico de las operaciones aritmtcias.El tipo de datos devuelto por los operadores aritmticos depende del tipo de susoperandos: si sumas dos enteros, obtendrs un entero. Se dice que una operacinevala su resultado.
Es muy til dividir los operadores Java en las siguientes categoras: aritmticos,relacionales y condicionales. lgicos y de desplazamiento y de asignacin.
Operadores AritmticosEl lenguaje Java soporta varios operadores aritticos - incluyendo +(suma), - (resta), * (multiplicacin), / (divisin), y % (mdulo)-- entodos los nmeros enteros y de coma flotante. Por ejemplo, puedesutilizar este cdigo Java para sumar dos nmeros:
sumaEsto + aEsto
O este cdigo para calcular el resto de una divisin:
divideEsto % porEsto
Esta tabla sumariza todas las operaciones aritmticas binarias en Java:Operador Uso Descripcin
+ op1 + op2 Suma op1 y op2- op1 - op2 Resta op2 de op1* op1 * op2 Multiplica op1 y op2/ op1 / op2 Divide op1 por op2
% op1 % op2 Obtiene el resto de dividir op1 porop2
Nota: El lenguaje Java extiende la definicin del operador + para incluirla concatenacin de cadenas.
Los operadores + y - tienen versiones unarias que seleccionan el signodel operando:Operador Uso Descripcin+ + op Indica un valor positivo- - op Niega el operando
Adems, existen dos operadores de atajos aritmticos, ++ queincrementa en uno su operando, y -- que decrementa en uno el valor desu operando.Operador Uso Descripcin++ op ++ Incrementa op en 1; evala el valor antes de incrementar
++ ++ op Incrementa op en 1; evala el valor despus deincrementar-- op -- Decrementa op en 1; evala el valor antes de decrementar
-- -- op Decrementa op en 1; evala el valor despus dedecrementar
Operadores Relacionales y CondicionalesLos valores relacionales comparan dos valores y determinan la relacinentre ellos. Por ejemplo, != devuelve true si los dos operandos sondistintos.
Esta tabla sumariza los operadores relacionales de Java:Operador Uso Devuelve true si> op1 > op2 op1 es mayor que op2>= op1 >= op2 op1 es mayor o igual que op2< op1 < op2 op1 es menor que op2
determinar si un indice de un array est entre dos lmites- esto es, paradeterminar si el indice es mayor que 0 o menor que NUM_ENTRIES (quese ha definido prviamente como un valor constante):
0 < index && index < NUM_ENTRIES
Observa que en algunas situaciones, el segundo operando de unoperador relacional no ser evaluado. Consideremos esta sentencia:
((count > NUM_ENTRIES) && (System.in.read() != -1))
Si count es menor que NUM_ENTRIES, la parte izquierda del operando de&& evala a false. El operador && slo devuelve true si los dosoperandos son verdaderos. Por eso, en esta situacin se puededeteminar el valor de && sin evaluar el operador de la derecha. En uncaso como este, Java no evala el operando de la derecha. As no sellamar a System.in.read() y no se leer un carcter de la entradaestandard.
Aqu tienes tres operadores condicionales:Operador Uso Devuelve true si&& op1 && op2 op1 y op2 son verdaderos|| op1 || op2 uno de los dos es verdadero! ! op op es falso
El operador & se puede utilizar como un sinnimo de && si ambosoperadores son booleanos. Similarmente, | es un sinonimo de || siambos operandos son booleanos.
Operadores de DesplazamientoLos operadores de desplazamiento permiten realizar una manipualcinde los bits de los datos. Esta tabla sumariza los operadores lgicos y dedesplazamiento disponibles en el lenguaje Java:Operador Uso Descripcin>> op1 >> op2 desplaza a la derecha op2 bits de op1> op1 >>> op2 desplaza a la derecha op2 bits de op1(sinsigno)& op1 & op2 bitwise and| op1 | op2 bitwise or^ op1 ^ op2 bitwise xor~ ~ op bitwise complemento
Los tres operadores de desplazamiento simplemente desplazan los bitsdel operando de la izquierda el nmero de posiciones indicadas por eloperador de la derecha. Los desplazamientos ocurren en la direccinindicada por el propio operador. Por ejemplo:
13 >> 1;
desplaza los bits del entero 13 una posicin a la derecha. Larepresentacin binaria del nmero 13 es 1101. El resultado de laoperacin de desplazamiento es 110 o el 6 decimal. Observe que el bitsituado ms a la derecha desaparece. Un desplazamiento a la derecha deun bit es equivalente, pero ms eficiente que, dividir el operando de laizquierda por dos. Un desplazamiento a la izquierda es equivalente amultiplicar por dos.
Los otros operadores realizan las funciones lgicas para cada uno de lospares de bits de cada operando. La funcin "y" activa el bit resultante silos dos operandos son 1.op1 op2 resultado0 0 00 1 01 0 01 1 1
Supon que quieres evaluar los valores 12 "and" 13:
12 & 13
El resultado de esta operacin es 12. Por qu? Bien, la representacinbinaria de 12 es 1100 y la de 13 es 1101. La funcin "and" activa los bitsresultantes cuando los bits de los dos operandos son 1, de otra forma elresultado es 0. Entonces si colocas en lnea los dos operandos y realizasla funcin "and", puedes ver que los dos bits de mayor peso (los dos bitssituados ms a la izquierda de cada nmero) son 1 as el bit resultantede cada uno es 1. Los dos bits de menor peso se evalan a 0 poque almenos uno de los dos operandos es 0:
1101 & 1100 ------
1100El operador | realiza la operacin O inclusiva y el operador ^ realiza laoperacin O exclusiva. O inclusiva significa que si uno de los dosoperandos es 1 el resultado es 1.op1 op2 resultado0 0 00 1 11 0 11 1 1
O exclusiva significa que si los dos operandos son diferentes el resultadoes 1, de otra forma el resultado es 0:
op1 op2 resultado0 0 00 1 11 0 11 1 0
Y finalmente el operador complemento invierte el valor de cada uno delos bites del operando: si el bit del operando es 1 el resultado es 0 y si elbit del operando es 0 el resultado es 1.
Operadores de AsignacinPuedes utilizar el operador de asignacin =, para asignar un valor a otro.Adems del operador de asignacin bsico, Java proporciona variosoperadores de asignacin que permiten realizar operaciones aritmtcias,lgicas o de bits y una operacin de asignacin al mismo tiempo.Especificamente, supon que quieres aadir un nmero a una variable yasignar el resultado dentro de la misma variable, como esto:
i = i + 2;
Puedes ordenar esta sentencia utilizando el operador +=.
i += 2;
Las dos lneas de cdigo anteriores son equivalentes.
Esta tabla lista los operadores de asignacin y sus equivalentes:Operador Uso Equivale a+= op1 += op2 op1 = op1 + op2-= op1 -= op2 op1 = op1 - op2*= op1 *= op2 op1 = op1 * op2/= op1 /= op2 op1 = op1 / op2%= op1 %= op2 op1 = op1 % op2&= op1 &= op2 op1 = op1 & op2|= op1 |= op2 op1 = op1 | op2^= op1 ^= op2 op1 = op1 ^ op2> op2>>>= op1 >>>= op2 op1 = op1 >>> op2
Ozito
ExpresionesLas expresiones realizan el trabajo de un programa Java. Entre otras cosas, lasexpresiones se utilizan para calcular y asignar valores a las variables y paracontrolar el flujo de un programa Java. El trabajo de una expresin se divide endos partes: realizar los clculos indicados por los elementos de la expresin ydevolver algn valor.
Definicin: Una expresin es una serie de variables, operadores y llamadas amtodos (construida de acuerdo a la sintaxis del lenguaje) que evala a un valorsencillo.
El tipo del dato devuelto por una expresin depende de los elementos utilizados enla expresin. La expresin count++ devuelve un entero porque ++ devuelve unvalor del mismo tipo que su operando y count es un entero. Otras expresionesdevuelven valores booleanos, cadenas, etc...
Una expresin de llamada a un mtodo devuelve el valor del mtodo; as el tipo dedato de una expresin de llamada a un mtodo es el mismo tipo de dato que elvalor de retorno del mtodo. El mtodo System.in.read() se ha declarado comoun entero, por lo tanto, la expresin System.in.read() devuelve un entero.
La segunda expresin contenida en la sentencia System.in.read() != -1 utiliza eloperador !=. Recuerda que este operador comprueba si los dos operandos sondistintos. En esta sentencia los operandos son System.in.read() y -1.System.in.read() es un operando vlido para != porque devuelve un entero. AsSystem.in.read() != -1 compara dos enteros, el valor devuelto porSystem.in.read() y -1. El valor devuelto por != es true o false dependiendo dela salida de la comparacin.
Como has podido ver, Java te permite construir expresiones compuestas ysentencias a partir de varias expresiones pequeas siempre que los tipos de datosrequeridos por una parte de la expresin correspondan con los tipos de datos de laotra. Tamben habrs podido concluir del ejemplo anterior, el orden en que seevalan los componentes de una expresin compuesta.
Por ejemplo, toma la siguiente expresin compuesta:x * y * z
En este ejemplo particular, no importa el orden en que se evale la expresinporque el resultado de la multiplicacin es independiente del orden. La salida essiempre la misma sin importar el orden en que se apliquen las multiplicaciones. Sinembargo, esto no es cierto para todas las expresiones. Por ejemplo, esta expresinobtiene un resultado diferente dependiendo de si se realiza primero la suma o ladivisin:
x + y / 100
Puedes decirle directamente al compilador de Java cmo quieres que se evale unaexpresin utilizando los parntesis ( y ). Por ejemplo, para aclarar la sentenciaanterior, se podra escribir: (x + y)/ 100.
Si no le dices explcitamente al compilador el orden en el que quieres que serealicen las operaciones, l decide basndose en la precedencia asignada a losoperadores y otros elementos que se utilizan dentro de una expresin.Los operadores con una precedencia ms alta se evalan primero. Por ejemplo. eloperador divisin tiene una precedencia mayor que el operador suma, por eso, enla expresin anterior x + y / 100, el compilador evaluar primero y / 100. As
x + y / 100es equivalente a:
x + (y / 100)Para hacer que tu cdigo sea ms fcil de leer y de mantener deberas explicar eindicar con partesis los operadores que se deben evaluar primero.
La tabla siguiente muestra la precedencia asignada a los operadores de Java. Losoperadores se han listado por orden de precedencia de mayor a menor. Losoperadores con mayor precedencia se evalan antes que los operadores con unprecedencia relativamente menor. Lo operadores con la misma precedencia seevalan de izquierda a derecha.
Precedencia de Operadores en Javaoperadores sufijo [] . (params) expr++ expr--operadores unarios ++expr --expr +expr -expr ~ !creacin o tipo new (type)exprmultiplicadores * / %suma/resta + -desplazamiento > >>>relacionales < > = instanceofigualdad == !=bitwise AND &bitwise exclusive OR ^bitwise inclusive OR |AND lgico &&OR lgico ||condicional ? :
asignacin = += -= *= /= %= ^= &= |= = >>>=
Ozito
Sentencias de Control de FlujoLas sentencias de control de flujo determinan el orden en que se ejecutarn las otras sentenciasdentro del programa. El lenguaje Java soporta varias sentencias de control de flujo, incluyendo:Sentencias palabras clavetoma de decisiones if-else, switch-casebucles for, while, do-whileexcepciones try-catch-finally, throwmiscelaneas break, continue, label:, return
Nota: Aunque goto es una palabra reservada, actualmente el lenguaje Java no la soporta.Podemos utilizar las rupturas etiquetadas en su lugar.
La sentencia if-else
La sentencia if-else de java proporciona a los programas la posibilidad de ejecutarselectivamente otras sentencias basndose en algn criterio. Por ejemplo, supon quetu programa imprime informacin de depurado basndose en el valor de una variablebooleana llamada DEBUG. Si DEBUG fuera verdadera true, el programa imprimira lainformacin de depurado, como por ejemplo, el valor de una variable como x. SiDEBUG es false el programa proceder normalmente. Un segmento de cdigo queimplemente esto se podra parecer a este:. . .
if (DEBUG) System.out.println("DEBUG: x = " + x);. . .
Esta es la versin ms sencilla de la sentencia if: la sentencia gobernada por if seejecuta si alguna codicin es verdadera. Generalmente, la forma sencilla de if se puedeescribir as:if (expresin) sentenciaPero, y si quieres ejecutar un juego diferente de sentencias si la expresin es falsa?Bien, puedes utilizar la sentencia else. Echemos un vistazo a otro ejemplo. Supon quetu programa necesita realizar diferentes acciones dependiendo de que el usuario pulseel botn OK o el botn Cancel en un ventana de alarma. Se podra hacer estoutilizando una sentencia if: . . .
// Respuesta dependiente del boton que haya pulsado el usuario // OK o Cancel . . .
if (respuesta == OK) { . . .
// Cdigo para la accin OK . . .
} else { . . .
// cdigo para la accin Cancel . . .
}Este uso particular de la sentencia else es la forma de capturarlo todo. Existe otraforma de la sentecia else, else if que ejecuta una sentencia basada en otra expresin.Por ejemplo, supon que has escrito un programa que asigna notas basadas en la
puntuacin de un examen, un Sobresaliente para una puntuacin del 90% o superior,un Notable para el 80% o superior y dems. odras utilizar una sentencia if con unaserie de comparaciones else if y una setencia else para escribir este cdigo:int puntuacion;String nota;
if (puntuacion >= 90) { nota = "Sobresaliente";} else if (puntuacion >= 80) { nota = "Notable";} else if (puntuacion >= 70) { nota = "Bien";} else if (puntuacion >= 60) { nota = "Suficiente";} else { nota = "Insuficiente";}Una sentencia if puede tener cualquier nmero de sentencias de acompaamiento elseif. Podras haber observado que algunos valores de puntuacion pueden satisfacer msuna de las expresiones que componen la sentencia if. Por ejemplo, una puntuacin de76 podra evaluarse como true para dos expresiones de esta sentencia:puntuacion>= 70 y puntuacion >= 60. Sin embargo, en el momento de ejecucin, el sistemaprocesa una sentencia if compuesta como una sla; una vez que se ha satisfecho unacondicin (76 >= 70), se ejecuta la sentencia apropiada (nota = "Bien";), y el controlsale fuera de la sentencia if sin evaluar las condiciones restantes.
La sentencia switch
La sentencia switch se utiliza para realizar sentencias condicionalmente basadas enalguna expresin. Por ejemplo, supon que tu programa contiene un entero llamadomes cuyo valor indica el mes en alguna fecha. Supon que tambin quieres mostrar elnombre del mes basndose en su nmero entero equivalente. Podras utilizar lasentencia switch de Java para realizar esta tarea:int mes;. . .
switch (mes) {case 1: System.out.println("Enero"); break;case 2: System.out.println("Febrero"); break;case 3: System.out.println("Marzo"); break;case 4: System.out.println("Abril"); break;case 5: System.out.println("May0"); break;case 6: System.out.println("Junio"); break;case 7: System.out.println("Julio"); break;case 8: System.out.println("Agosto"); break;case 9: System.out.println("Septiembre"); break;case 10: System.out.println("Octubre"); break;case 11: System.out.println("Noviembre"); break;case 12: System.out.println("Diciembre"); break;}La sentencia switch evala su expresin, en este caso el valor de mes, y ejecuta lasentencia case apropiada. Decidir cuando utilizar las sentencias if o switch dependendel juicio personal. Puedes decidir cual utilizar basndose en la buena lectura delcdigo o en otros factores.
Cada sentencia case debe ser nica y el valor proporcionado a cada sentencia casedebe ser del mismo tipo que el tipo de dato devuelto por la expresin proporcionada ala sentencia switch.
Otro punto de interes en la sentencia switch son las sentencias break despus decada case. La sentencia break hace que el control salga de la sentencia switch ycontine con la siguiente lnea. La sentencia break es necesaria porque las sentenciascase se siguen ejecutando hacia abajo. Esto es, sin un break explcito, el flujo decontrol seguira secuencialmente a travs de las sentencias case siguientes. En elejemplo anterior, no se quiere que el flujo vaya de una sentencia case a otra, por esose han tenido que poner las sentencias break. Sin embargo, hay ciertos escenario enlos que querrs que el control proceda secuencialmente a travs de las sentenciascase. Como este cdigo que calcula el nmero de das de un mes de acuerdo con elritmico refrn que dice "Treinta tiene Septiembre...".int mes;int numeroDias;. . .
switch (mes) {case 1:case 3:case 5:case 7:case 8:case 10:case 12: numeroDias = 31; break;case 4:case 6:case 9:case 11: numeroDias = 30; break;case 2: if ( ((ano % 4 == 0) && !(ano % 100 == 0)) || ano % 400 == 0) ) numeroDias = 29; else numeroDias = 28; break;}Finalmente, puede utilizar la sentencia default al final de la sentencia switch paramanejar los valores que no se han manejado explcitamente por una de las sentenciascase.int mes;. . .
switch (mes) {case 1: System.out.println("Enero"); break;case 2: System.out.println("Febrero"); break;case 3: System.out.println("Marzo"); break;case 4: System.out.println("Abril"); break;case 5: System.out.println("Mayo"); break;case 6: System.out.println("Junio"); break;case 7: System.out.println("Julio"); break;
case 8: System.out.println("Agosto"); break;case 9: System.out.println("Septiembre"); break;case 10: System.out.println("Octubre"); break;case 11: System.out.println("Noviembre"); break;case 12: System.out.println("Diciembre"); break;default: System.out.println("Ee, no es un mes vlido!"); break;}
Sentencias de Bucle
Generalmente hablando, una sentencia while realiza una accin mientras se cumplauna cierta condicin. La sintaxis general de la sentencia while es:while (expresin) sentenciaEsto es, mientras la expresin sea verdadera, ejecutar la sentencia.
sentencia puede ser una sla sentencia o puede ser un bloque de sentencias. Unbloque de sentencias es un juego de sentencias legales de java contenidas dentro decorchetes('{'y '}'). Por ejemplo, supon que adems de incrementar contador dentrode un bucle while tambin quieres imprimir el contador cada vez que se lea uncarcter. Podras escribir esto en su lugar:. . .
while (System.in.read() != -1) { contador++; System.out.println("Se ha leido un el carcter = " + contador);}. . .
Por convencin el corchete abierto '{' se coloca al final de la misma lnea donde seencuentra la sentencia while y el corchete cerrado '}' empieza una nueva lneaindentada a la lnea en la que se encuentra el while.
Adems de while Java tiene otros dos constructores de bucles que puedes utilizar entus programas: el bucle for y el bucle do-while.
Primero el bucle for. Puedes utilizar este bucle cuando conozcas los lmites del bucle(su instruccin de inicializacin, su criterio de terminacin y su instruccin deincremento). Por ejemplo, el bucle for se utiliza frecuentemente para iterar sobre loselementos de un array, o los caracteres de una cadena.// a es un array de cualquier tipo. . .
int i;int length = a.length;for (i = 0; i < length; i++) { . . .
// hace algo en el elemento i del array a . . .
}Si sabes cuando estas escribiendo el programa que quieres empezar en el inicio delarray, parar al final y utilizar cada uno de los elementos. Entonces la sentencia for esuna buena eleccin. La forma general del bucle for puede expresarse asi:for (inicializacin; terminacin; incremento) sentencias
inicializacin es la sentencia que inicializa el bucle -- se ejecuta una vez al iniciar elbucle.terminacin es una sentecia que determina cuando se termina el bucle. Esta expresinse evala al principio de cada iteraccin en el bucle. Cuando la exprein se evala afalse el bucle se termina.Finalmente, incremento es una expresin que se invoca en cada interaccin del bucle.Cualquiera (o todos) de estos componentes puden ser una sentencia vaca (un punto ycoma).
Java proporciona otro bucle, el bucle do-while,que es similar al bucle while que sevi al principio, excepto en que la expresin se aval al final del bucle:do { sentencias} while (Expresin Booleana);La sentencia do-while se usa muy poco en la construccin de bucles pero tiene sususos. Por ejemplo, es conveniente utilizar la sentencia do-while cuando el bucle debeejecutarse al menos una vez. Por ejemplo, para leer informacin de un fichero,sabemos que al menos debe leer un carcter:int c;InputStream in;. . .
do { c = in.read(); . . .
} while (c != -1);
Sentencias de Manejo de ExcepcionesCuando ocurre un error dentro de un mtodo Java, el mtodo puede lanzar unaexcepcin para indicar a su llamador que ha ocurrido un error y que el error estutilizando la sentencia throw. El mtodo llamador puede utilizar las sentencias try,catch, y finally para capturar y manejar la excepcin. Puedes ver Manejar ErroresUtilizando Excepciones para obtener ms informacin sobre el lanzamiento y manejode excepciones.
Sentencias de Ruptura
Ya has visto la sentencia break en accin dentro de la sentencia switchanteriormente. Como se observ anteriormente, la sentencia break hace que elcontrol del flujo salte a la sentencia siguiente a la actual.
Hay otra forma de break que hace que el flujo de control salte a una sentenciaetiquetada. Se puede etiquetar una sentencia utilizando un identificador legal de Java(la etiqueta) seguido por dos puntos (:) antes de la sentencia:SaltaAqui: algunaSentenciaJavaPara saltar a la sentencia etiquetada utilice esta forma de la sentencia break.break SaltaAqui;Las rupturas etiquetadas son una alternativa a la sentencia goto que no estsoportada por el lenguaje Java.
Se puede utiliza la sentencia continue dentro de un bucle para saltar de la sentenciaactual hacia el principio del bucle o a una sentencia etiquetada. Considera estaimplementacin del mtodo indexOf() de la clase String que utiliza la forma de
Arrays y CadenasAl igual que otros lenguajes de programacin, Java permite juntar y manejar mltiplesvalores a travs de un objeto array (matriz). Tambin se pueden manejar datoscompuestos de mltiples caracteres utilizando el objeto String (cadena).
ArraysEsta seccin te ensear todo lo que necesitas para crear y utilizar arrays entus programas Java.
Como otras variables, antes de poder utilizar un array primero se debedeclarar. De nuevo, al igual que otras variables, la declaracin de un arraytiene dos componentes primarios: el tipo del array y su nombre. Un tipo dearray incluye el tipo de dato de los elementos que va contener el array. Porejemplo, el tipo de dato para un array que slo va a contener elementosenteros es un array de enteros. No puede existir un array de tipo de datosgenrico en el que el tipo de sus elementos est indefinido cuando se declarael array. Aqu tienes la declaracin de un array de enteros:int[] arrayDeEnteros;La parte int[] de la declaracin indica que arrayDeEnteros es un array deenteros. La declaracin no asigna ninguna memoria para contener loselementos del array.
Si se intenta asignar un valor o acceder a cualquier elemento dearrayDeEnteros antes de haber asignado la memoria para l, el compiladordar un error como este y no compilar el programa:testing.java:64: Variable arraydeenteros may not have been initialized.Para asignar memoria a los elementos de un array, primero se debeejemplarizar el array. Se puede hacer esto utilizando el operador new de Java.(Realmente, los pasos que se deben seguir para crear un array son similares alos se deben seguir para crear un objeto de una clase: declaracin,ejemplarizacin e inicializacin.
La siguiente sentencia asigna la suficiente memoria para que arrayDeEnterospueda contener diez enteros.int[] arraydeenteros = new int[10]En general, cuando se crea un array, se utiliza el operador new, ms el tipode dato de los elementos del array, ms el nmero de elementos deseadosencerrado entre cochetes cuadrados ('[' y ']').TipodeElemento[] NombredeArray = new TipodeElementos[tamanoArray]Ahora que se ha asignado memoria para un array ya se pueden asignarvalores a los elemetos y recuperar esos valores:
for (int j = 0; j < arrayDeEnteros.length; j ++) { arrayDeEnteros[j] = j;
System.out.println("[j] = " + arrayDeEnteros[j]);}Como se puede ver en el ejemplo anterior, para referirse a un elemento delarray, se aade corchetes cuadrados al nombre del array. Entre los corchetescaudrados se indica (bien con una variable o con una expresin) el ndice delelemento al que se quiere acceder. Observa que en Java, el ndice del arrayempieza en 0 y termina en la longitud del array menos uno.
Hay otro elemento interesante en el pequeo ejemplo anterior. El bucle foritera sobre cada elemento de arrayDeEnteros asignndole valores eimprimiendo esos valores. Observa el uso de arrayDeEnte