Curso Basico Java

1027
Índice Tutor Básico Nota: Este tutor está basado en una traducción-adaptación del tutorial de Sun que puedes encontrar: aquí Tu Primera 'Taza' de Java La Primera 'Taza' de Java En Windows En UNIX En Mac OS ¿Por donde Empezar? ¿Por dónde Empezar? El compilador Javac El visualizador de Applets El intérprete Java El decompilador Javap Conceptos Básicos Conceptos Básicos de Programación Orientada a Objetos Características del Lenguaje Variables y Tipos de Datos Operadores Expresiones Control de Flujo Arrays y Cadenas

Transcript of Curso Basico Java

  • 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

  • continue que contina en una sentencia etiquetada:public int indexOf(String str, int fromIndex) { char[] v1 = value; char[] v2 = str.value; int max = offset + (count - str.count); test: for (int i = offset + ((fromIndex < 0) ? 0 : fromIndex); i
  • 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