Está en la página 1de 23

INTRODUCCION A LA PROGRAMACION

LENGUAJE DE PROGRAMACION JAVA

Qu es Java?
Java es toda una tecnologa orientada al desarrollo de software con el cual podemos realizar cualquier tipo de programa. Hoy en da, la tecnologa Java ha cobrado mucha importancia en el mbito de Internet gracias a su plataforma J2EE. Pero Java no se queda ah, ya que en la industria para dispositivos mviles tambin hay una gran acogida para este lenguaje. La tecnologa Java est compuesta bsicamente por 2 elementos: el lenguaje Java y su plataforma. Con plataforma nos referimos a la mquina virtual de Java (Java Virtual Machine). Una de las principales caractersticas que favoreci el crecimiento y difusin del lenguaje Java es su capacidad de que el cdigo funcione sobre cualquier plataforma de software y hardware. Esto significa que nuestro mismo programa escrito para Linux puede ser ejecutado en Windows sin ningn problema. Adems es un lenguaje orientado a objetos que nos brinda una solucin para cada necesidad que pudiramos tener. EL ENTORNO DE DESARROLLO DE JAVA Existen distintos programas comerciales que permiten desarrollar cdigo Java. La compaa Sun, creadora de Java, distribuye gratuitamente el Java Development Kit (JDK). Se trata de un conjunto de programas y libreras que permiten desarrollar, compilar y ejecutar programas en Java. Cualquier programador con un mnimo de experiencia sabe que una parte muy importante (muchas veces la mayor parte) del tiempo destinado a la elaboracin de un programa se destina a la deteccin y correccin de errores. Los IDEs (Integrated Development Environment), tal y como su nombre indica, son entornos de desarrollo integrados, con los cuales en un mismo programa es posible escribir el cdigo Java, compilarlo y ejecutarlo sin tener que cambiar de aplicacin. Estos entornos integrados permiten desarrollar las aplicaciones de forma mucho ms rpida, incorporando en muchos casos libreras con componentes ya desarrollados, los cuales se incorporan al proyecto o programa. Ejemplos de este tipo de entornos encontramos a JCreator, Eclipse, Netbeans, etc. El compilador de Java Se trata de una de las herramientas de desarrollo incluidas en el JDK. Realiza un anlisis de sintaxis del cdigo escrito en los archivos fuente de Java (con extensin *.java). Si no encuentra errores en el cdigo genera los archivos compilados (con extensin *.class). En otro caso muestra la lnea o lneas errneas. En el JDK de Sun dicho compilador se llama javac.exe. Tiene numerosas opciones, algunas de las cuales varan de una versin a otra. La JVM es el intrprete de Java. Ejecuta los bytecodes (archivos compilados con extensin *.class) creados por el compilador de Java (javac.exe).

Palabras Clave Son una serie de palabras reservadas las cuales tienen un significado especial para Java y por lo tanto no se pueden utilizar como nombres de variables. Dichas palabras son: abstract boolean break byte case catch char class const continue default do double else extends final finally float for goto If implements import instanceof int interface long native new null package private protected public return short static super switch synchronized this throw throws transient try void volatile while

Tipos de datos y Variables en JAVA Todas las variables en el lenguaje Java deben tener un tipo de dato. El tipo de la variable determina los valores que la variable puede contener y las operaciones que se pueden realizar con ella. Existen dos categoras de datos principales en el lenguaje Java: los tipos primitivos y los tipos referenciados. Los tipos primitivos contienen un slo valor e incluyen los tipos como los enteros, coma flotante, los caracteres, etc.. La tabla siguiente muestra todos los tipos primitivos soportados por el lenguaje Java, su formato, su tamao y una breve descripcin de cada uno.

Tipo

Tamao

Descripcin
Entero de un Byte Entero corto Entero Entero largo Coma flotante de precisin simple Entre 6 y 7 cifras decimales Coma flotante de precisin doble (15 cifras decimales)

Valor
-128 a 127 -32768 a 32767 -2.147.483.648 a 2.147.483.647 -9.223.372.036.854.775.808 a

(Nmeros enteros) byte 1 byte short 2 bytes int 4 bytes long 8 bytes

9.223.372.036.854.775.807 -3.402823E38 a -1.401298E-45 y de 1.401298E-45 a 3.402823E38 -1.79769313486232E308 a -4.94065645841247E-324 y de 4.94065645841247E-324 a 1.79769313486232E308


Cdigo ASCII True o false

(Nmeros reales) float 4 bytes IEEE 754

double

8 bytes IEEE 754

(otros tipos) char 16-bit Caracter boolean 1 byte

Un slo carcter valor booleano (verdadero o falso)

Los tipos primitivos de Java tienen algunas caractersticas importantes que se resumen a Continuacin: 1. El tipo boolean no es un valor numrico: slo admite los valores true o false. El tipo bolean no se identifica con el igual o distinto de cero, como en C/C++. El resultado de la expresin lgica que aparece como condicin en un bucle o en una bifurcacin debe ser boolean. 2. El tipo char contiene caracteres en cdigo UNICODE (que incluye el cdigo ASCII), y ocupan 16 bits por carcter. Comprende los caracteres de prcticamente todos los idiomas. 3. Los tipos byte, short, int y long son nmeros enteros que pueden ser positivos o negativos, con distintos valores mximos y mnimos. A diferencia de C/C++, en Java no hay enteros unsigned. 4. Los tipos float y double son valores de punto flotante (nmeros reales) con 6-7 y 15 cifras decimales equivalentes, respectivamente. 5. Se utiliza la palabra void para indicar la ausencia de un tipo de variable determinado. 6. A diferencia de C/C++, los tipos de variables en Java estn perfectamente definidos en todas y cada una de las posibles plataformas. Por ejemplo, un int ocupa siempre la misma memoria y tiene el mismo rango de valores, en cualquier tipo de computadora. Caracteres de Java Los caracteres de java pueden agruparse en letras, digitos, espacios en blanco, caracteres especiales, signos de puntuacin y secuencias de escape. Letras, dgitos y otros Estos caracteres son utilzados para formar las constantes, los identificadores y las palabras clave de Java. Son los siguientes: Letras maysculas de los alfabetos internacionales: A-Z (son vlidas las letras acentuadas y la ) Letras Minsculas de los alfabetos internacionales: a-z (son vlidas las letras acentuadas y la ) Digitos de los alfabetos internacionales, entre los que se encuentran 0-9 Caracteres _, $ y cualquier caracter Unicode por encima de 00C0 Espacios en Blanco Los caracteres espacio en blancotabulador horizontal, avance de pgina, nueva lnea, retorno de carro, son caracteres denominados espacios en blanco, porque la labor que desempean es la misma que la del espacio en blanco: actuar como separadores entre los elementos de un programa, lo cual permite escribir programas ms legibles. Los espacios en blanco en exceso son ignorados por el compilador. Caracteres especiales y signos de puntuacin Este grupo de caracteres se utiliza de diferentes formas; por ejemplo, para indicar que un identificador es una funcin o un array; para especificar una determinada operacin, etc. Son los siguientes: , . ; : ? ( ) [ ] { } < ! | / \ ~ + % ^ * = >

Secuencias de escape Una secuencia de escape esta formada por el carcter \ seguido de una letra o combinacin de digitos. Son utilizados para hacer referencia a caracteres no imprimibles. El lenguaje Java tiene predefinidas las siguientes secuencias de escape: Secuencia \n \t \b \r \f \ \ \\ \ddd \udddd \u0007 \u000B ASCII CR+LF HT BS CR FF \ Definicin Ir al principio de la siguiente lnea Tabulador Horizontal Retroceso (Backspace) Retorno de carro sin avance de lnea Alimentacin de pgina solo para impresora Comilla simple Comilla doble Barra invertida Carcter ASCII. Representacin octal Carcter ASCII. Representacin Unicode Alerta, pitido Tabulador vertical (slo para impresora)

BEL VT

Identificadores Es un conjunto de caracteres de cualquier longitud que sirve para identificar las entidades del programa (clases, mtodos, constantes, variables, paquetes, sentencias del programa, etc.). Cada lenguaje tiene sus propias reglas que definen como pueden estar construidos. Un identificador en Java se forma de la siguiente manera: consta de uno o ms caracteres en donde el primer carcter debe ser una letra, el carcter de subrayado _ o el carcter $. No se pueden comenzar por un digito ni pueden contener caracteres especiales. Las letras pueden ser maysculas o minsculas. Una letra mayscula es diferente a una minscula. Pueden tener cualquier nmero de caracteres. Constantes Simblicas El uso de constantes dentro de un programa es importante porque hace ms fcil de modificar un programa. Declarar una constante simblica significa decirle al compilador Java el nombre de la constante y su valor. Esto se hace utilizando el calificador final y/o el static, como se indica en seguida: fnal static int cte1=1 ; final static String cte2= Pulse una tecla para continuar; final double cte3=3.1416; Como se observa para declara una constante simblica se debe anteponer el calificador final, o bien los calificadores final y static, al tipo y nombre de la constante, que ser iniciada con el valor deseado. El primer caso corresponde cuando se desea declarar una constante dentro del cuerpo de un mtodo para que solo sea visible dentro de el y solo existe durante la ejecucin del mismo; en este caso se dice que es una constante local al mtodo. El segundo caso corresponde cuando se desea declarar una constante simblica dentro de una clase y fuera de todo mtodo esto con el fin de que solo exista un acopia de la constante para todos los objetos que se declaren de esa clase (esto se logra con el calificador static).Si no se especifica static cada objeto incluir su propia copia de la constante.Con el calificador final se especifica que el valor de la constante no se puede modificar durante el programa ya que dara lugar a un error.

Nombres de Variables en Java Un programa se refiere al valor de una variable por su nombre. Por convencin, en Java, los nombres de las variables empiezan con una letra minscula (los nombres de las clases empiezan con una letra mayscula). Si una variable est compuesta de ms de una palabra, como 'nombreDato' las palabras se ponen juntas y cada palabra despus de la primera empieza con una letra mayscula. Un nombre de variable Java. Debe ser un identificador legal de Java comprendido en una serie de caracteres Unicode. Unicode es un sistema de codificacin que soporta texto escrito en distintos lenguajes humanos. Unicode permite la codificacin de 34.168 caracteres. Esto le permite utilizar en sus programas Java varios alfabetos como el japons, el griego, el ruso o el hebreo. Esto es importante para que los programadores puedan escribir cdigo en su lenguaje nativo. No puede ser el mismo que una palabra clave o el nombre de un valor booleano (true or false), no deben tener el mismo nombre que otras variables cuyas declaraciones aparezcan en el mismo mbito. Declaracin La Sintaxis para la declaracin de una variable es la siguiente: tipo variable; Donde tipo es el nombre de un tipo de dato conocido por Java y variable es un identificador vlido en Java. Es preciso declarar las variables antes de utilizarlas. Se puede declara una variable en tres lugares: En una clase como miembro de la clase Al principio de un mtodo o bloque de cdigo En el punto de utilizacin El mbito de una variable es el mbito en le que estn declaradas. Comentarios Un comentario es un mensaje a cualquiera que lea el cdigo fuente con la intencin de hacer mas clara y fcil la comprensin de un programa. Java incluye tres tipos de comentarios: 1. Para comentarios que ocupan ms de una lnea se utilizan los caracteres /* al empezar y */ para finalizar el comentario. Estos comentarios pueden ocupar varias lneas, sin embargo no pueden anidarse. 2. Para comentarios de una sola lnea se utilizan los caracteres // al inicio de la lnea. 3. Son comentarios especiales que se utilizan para generar la documentacin acerca del programa. Este tipo de comentario comienza con /** y termina con */.

Expresiones Las expresiones son combinaciones de constantes, variables, smbolos de operacin, parntesis y nombres de funciones especiales. Por ejemplo: a+(b * 2)/c Cada expresin toma un valor que se determina tomando los valores de las variables y constantes implicadas y la ejecucin de las operaciones indicadas. Una expresin consta de operadores y operandos.

Segn sea el tipo de datos que manipulan, se clasifican las expresiones en: Aritmticas, relacinales y lgicas

Operadores y Operandos
Operadores: Son elementos que relacionan de forma diferente, los valores de una o mas variables y/o constantes. Es decir, los operadores nos permiten manipular valores. Operadores de Java Los operadores realizan algunas funciones en uno o dos operandos. Los operadores que requieren un operador se llaman operadores unarios. Por ejemplo, ++ es un operador unario que incrementa el valor su operando en uno. Los operadores que requieren dos operandos se llaman operadores binarios. El operador = es un operador binario que asigna un valor del operando derecho al operando izquierdo. Los operadores unarios en Java pueden utilizar la notacin de prefijo o de sufijo. La notacin 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 decir aparecen entre los dos operandos: op1 operador op2 Adems de realizar una operacin tambin devuelve un valor. El valor y su tipo dependen del tipo del operador y del tipo de sus operandos. Por ejemplo, los operadores aritmticos (realizan las operaciones de aritmtica bsica como la suma o la resta) devuelven nmeros, el resultado tpico de las operaciones aritmticas. El tipo de datos devuelto por los operadores aritmticos depende del tipo de sus operandos: si sumas dos enteros, obtendrs un entero. Operadores Aritmticos El lenguaje Java soporta varios operadores aritmticos incluyendo + (suma), - (resta), * (multiplicacin), / (divisin), y % (mdulo) en todos los nmeros enteros y de coma flotante. Esta tabla sumariza todas las operaciones aritmticas binarias en Java. Operador + * / % Uso op1 + op2 op1 - op2 op1 * op2 op1 / op2 op1 % op2 Descripcin Suma op1 y op2 Resta op2 de op1 Multiplica op1 y op2 Divide op1 por op2 Obtiene el resto de dividir op1 por op2

Nota: El lenguaje Java extiende la definicin del operador + para incluir la concatenacin de cadenas.

Los operadores + y - tienen versiones unarias que seleccionan el signo del operando. Operador Uso Descripcin + + op Indica un valor positivo - op Niega el operando Adems, existen dos operadores de atajos aritmticos, ++ que incrementa en uno su operando, y -que decrementa en uno el valor de su operando. Operador ++ ++ --Uso op ++ ++ op op --- op Descripcin Incrementa op en 1; evala el valor antes de incrementar Incrementa op en 1; evala el valor despus de incrementar Decrementa op en 1; evala el valor antes de decrementar Decrementa op en 1; evala el valor despus de decrementar

Operadores Relacionales y Condicionales Los valores relacionales comparan dos valores y determinan la relacin entre ellos. Por ejemplo, != devuelve true si los dos operandos son distintos. Esta tabla resume los operadores relacionales de Java. Operador > >= < <= == != Uso op1 > op2 op1 >= op2 op1 < op2 op1 <= op2 op1 = = op2 op1 != op2 Devuelve true si op1 es mayor que op2 op1 es mayor o igual que op2 op1 es menor que op2 op1 es menor o igual que op2 op1 y op2 son iguales op1 y op2 son distintos

Frecuentemente los operadores relacionales se utilizan con otro juego de operadores, los operadores condicionales, para construir expresiones de decisin ms complejas. Uno de estos operadores es && que realiza la operacin Y booleana . Por ejemplo se puede utilizar dos operadores relacionales diferentes junto con && para determinar si ambas relaciones son ciertas. En algunas situaciones, el segundo operando de un operador 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 dos operandos son verdaderos. Por eso, en esta situacin se puede determinar el valor de && sin evaluar el operador de la derecha. En un caso como este, Java no evala el operando de la derecha. As no se llamar a System.in.read() y no se leer un carcter de la entrada estndar.

Operadores condicionales. Operador && || ! Uso op1 && op2 op1 || op2 ! op Devuelve true si op1 y op2 son verdaderos uno de los dos es verdadero op es falso

El operador & se puede utilizar como un sinnimo de && si ambos operadores son booleanos. Similarmente, | es un sinonimo de || si ambos operandos son booleanos.

Operadores de Asignacin Puedes utilizar el operador de asignacin =, para asignar un valor a otro. Adems del operador de asignacin bsico, Java proporciona varios operadores de asignacin que permiten realizar operaciones aritmticas, lgicas o de bits y una operacin de asignacin al mismo tiempo. Especficamente, suponga que se quiere aadir un nmero a una variable y asignar el resultado dentro de la misma variable, como esto: i = i + 2; Puedes simplificar 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 op1 += op2 op1 -= op2 op1 *= op2 op1 /= op2 op1 %= op2 op1 &= op2 op1 |= op2 op1 ^= op2 Equivale a op1 = op1 + op2 op1 = op1 - op2 op1 = op1 * op2 op1 = op1 / op2 op1 = op1 % op2 op1 = op1 & op2 op1 = op1 | op2 op1 = op1 ^ op2

Expresiones Java Las expresiones realizan el trabajo de un programa Java. Entre otras cosas, las expresiones se utilizan para calcular y asignar valores a las variables y para controlar el flujo de un programa Java. El trabajo de una expresin se divide en dos partes: realizar los clculos indicados por los elementos de la expresin y devolver algn valor.

Definicin: Una expresin es una serie de variables, operadores y llamadas a mtodos (construida de acuerdo a la sintaxis del lenguaje) que evala a un valor sencillo. El tipo del dato devuelto por una expresin depende de los elementos utilizados en la expresin. La expresin count++ devuelve un entero porque ++ devuelve un valor del mismo tipo que su operando y count es un entero. Otras expresiones devuelven valores booleanos, cadenas, etc. Una expresin de llamada a un mtodo devuelve el valor del mtodo; as el tipo de dato de una expresin de llamada a un mtodo es el mismo tipo de dato que el valor de retorno del mtodo. En Java los operadores con una precedencia ms alta se evalan primero. La tabla siguiente muestra la precedencia asignada a los operadores de Java. Los operadores se han listado por orden de precedencia de mayor a menor. Los operadores con mayor precedencia se evalan antes que los operadores con precedencia relativamente menor. Lo operadores con la misma precedencia se evalan de izquierda a derecha. Conversin entre tipos de datos Cuando Java tiene que evaluar una expresin en la que intervienen operandos de diferentes tipos, primero convierte, slo para realizar las operaciones solicitadas, los valores de los Operandos al tipo del operando cuya preescisin sea ms alta. Cuando se trata de una asignacin, convierte el valor de la derecha al tipo de la variable de la izquierda siempre que no haya prdida de informacin. En otro caso Java exige que la conversin se realice explcitamente. La siguiente figura resume los tipos colocados de izquierda a derecha de menos a ms precisos; las flechas indican las conversiones implcitas permitidas: char byte short int long float double

Estructura bsica de un programa en Java Un programa en Java esta dividido en clases. Una clase en si se puede entender como un programa independiente, tiene sus propios datos y tambin maneja esos datos "a su modo", hablamos de atributos y mtodos. Un mtodo es un grupo de instrucciones que realizan una o ms acciones. Uno de los mtodos de la clase principal debe ser obligatoriamente main().Asimismo, un programa contendr una serie de declaraciones import que permitirn incluir clases predefinidas. La estructura general sera la siguiente:

import paquete; //Declaracin para importar clases incluidas en algn paquete class NombreClase { public static void main( String [] args) { /* Esta lnea especifica un mtodo que el intrprete Java busca para ejecutar en primer lugar, public significa que el mtodo main puede ser llamado por cualquiera, incluyendo el intrprete Java, static es una palabra clave que le dice al compilador que main se refiere a la clase principal y no a ninguna instancia de la clase. De esta forma, si alguien intenta hacer otra instancia de la clase, el mtodo main no se instanciara, void indica que main no devuelve nada. Esto es importante ya que Java realiza una estricta comprobacin de tipos, incluyendo los tipos que se ha declarado que devuelven los mtodos. args[] es la declaracin de un array de Strings. Estos son los argumentos escritos tras el nombre de la clase en la lnea de comandos: */ //Declaraciones locales; Sentencias; } // Definiciones de otros mtodos dentro de la clase static tipo func1() { } static tipo func2() { } } Una mnima aplicacin en java La aplicacin ms pequea posible es la que simplemente imprime un mensaje en la pantalla. Tradicionalmente, el mensaje suele ser "Hola Mundo". Esto es justamente lo que hace el siguiente fragmento de cdigo:

// Aplicacin HolaMundo class HolaMundo { public static void main( String[ ] args ) { System.out.println("\n*********HOLA MUNDO BIENVENIDO A JAVA*******"); } // cierra main } // cierra clase Este ejemplo necesita una pequea explicacin. Todo en Java est dentro de una clase, incluyendo programas autnomos. El cdigo fuente se guarda en archivos con el mismo nombre que la clase que contienen y con extensin .java. Una clase (class) declarada pblica (public) debe seguir este convenio. En

el ejemplo anterior, la clase es Hola, por lo que el cdigo fuente debe guardarse en el fichero Hola.java El compilador genera un archivo de clase (con extensin .class) por cada una de las clases definidas en el archivo fuente. Los programas que se ejecutan de forma independiente y autnoma, deben contener el mtodo main(). La palabra reservada void indica que el mtodo main no devuelve nada. El mtodo main debe aceptar un array de objetos tipo String. Por acuerdo se referencia como args, aunque puede emplearse cualquier otro identificador. La palabra reservada static indica que el mtodo es un mtodo de clase, asociado con la clase en vez de a instancias de la misma. El mtodo main debe ser esttico o de clase. La palabra reservada public significa que un mtodo puede ser llamado desde otras clases, o que la clase puede ser usada por clases fuera de la jerarqua de la propia clase. Otros tipos de acceso son private o protected. La utilidad de impresin (en pantalla por ejemplo) forma parte de la librera estndar de Java: la clase System define un campo pblico esttico llamado out. El objeto out es una instancia de PrintStream, que ofrece el mtodo println(String) para volcar datos en la pantalla (la salida estndar). Aplicacin HolaMundo Vamos ver en detalle la aplicacin anterior, lnea a lnea. Esas lneas de cdigo contienen los componentes mnimos para imprimir Hola Mundo en la pantalla. // // Aplicacin HolaMundo Estas lneas son comentarios. class HolaMundo { Esta lnea declara la clase HolaMundo. El nombre de la clase especificado en el archivo fuente se utiliza para crear un archivo nombredeclase.class en el directorio en el que se compila la aplicacin. En nuestro caso, el compilador crear un archivo llamado HolaMundo.class. public static void main( String args[] ) { Como se comento toda clase debe contener el mtodo main System.out.println("\n*********HOLA MUNDO BIENVENIDO A JAVA*******"); Esta es la funcionalidad de la aplicacin. Esta lnea muestra el uso de un nombre de clase y mtodo. Se usa el mtodo println() de la clase System. El mtodo println() toma una cadena como argumento y la escribe en el stream de salida estndar; en este caso, la ventana donde se lanza la aplicacin. } //cierra main } //cierra clase Finalmente, se cierran las llaves que limitan el mtodo main() y la clase HolaMundoApp.

Compilacion y Ejecucion de HolaMundo Archivos Fuente Java Se deber construir usando cualquier editor de texto por ejemplo el Bloc de notas de windows y se deber grabar en un nuevo archivo con el nombre de la clase (HolaMundo) y la extensin .java. Respetar maysculas y minsculas que se hayan puesto en la clase, tener cuidado si utiliza notepad porque en ocasiones lo graba como holamundo.java.txt si esto sucede no se puede compilar o sdk informa que no lo encuentra, en notepad seleccionar tipo=all files o irse a msdos y renombrarlo a .java solamente.

Compilacin El compilador javac se encuentra en el directorio bin por debajo del directorio java, donde se haya instalado el JDK. Este directorio bin, si se han seguido las instrucciones de instalacin, debera formar parte de la variable de entorno PATH del sistema. Si no es as, tendra que revisar la Instalacin del JDK. El compilador de Java traslada el cdigo fuente Java a byte-codes, que son los componentes que entiende la Mquina Virtual Java. Una vez creado el archivo fuente HolaMundoApp.java, se puede compilar con la lnea siguiente: c:\j2sdk1.4.0\misejemplos>javac HolaMundo.java observar que j2sdk1.4.0\misejemplos es el folder que contiene el archivo HolaMundo.java. javac es el compilador de java y lo que hace aparte de mostrar los errores que puede tener el programa es crear un nuevo archivo con extensin .class, es decir en este ejemplo en el folder ahora aparte de tener holamundo.java deber haber un archivo llamado HolaMundo.class, que es el equivalente a los archivos.exe o executables de windows. Si no se han cometido errores al teclear ni se han tenido problemas con el path al archivo fuente ni al compilador, no debera aparecer mensaje alguno en la pantalla, y cuando vuelva a aparecer el prompt del sistema, se debera ver un archivo HolaMundoApp.class nuevo en el directorio donde se encuentra el archivo fuente. Ejecucin Para ejecutar la aplicacin HolaMundoApp, hemos de recurrir al intrprete java, que tambin se encuentra en el directorio bin, bajo el directorio j2sdk1.4.0. Se ejecutar la aplicacin con la lnea siguiente c:\j2sdk1.4.0\misejemplos>java HolaMundo Enseguida aparecera en pantalla la respuesta de Java con el mensaje que se mando a desplegar en este caso : HOLA MUNDO BIENVENIDO A JAVA (entre asteriscos). Problemas de compilacin A continuacin presentamos una lista de los errores ms frecuentes que se presentan a la hora de compilar un archivo con cdigo fuente Java, nos basaremos en errores provocados sobre nuestra mnima aplicacin Java de la seccin anterior, pero podra generalizarse sin demasiados problemas. Command not found

No se ha establecido correctamente la variable PATH del sistema para el compilador javac. El compilador javac se encuentra en el directorio bin, que cuelga del directorio java, que cuelga del directorio donde se haya instalado el JDK (Java Development Kit). method printl(java.lang.String) not found in class java.io.PrintStream. System.out.printl( "HolaMundo!); ^ Error tipogrfico, el mtodo es println no printl. Cant find class HolaMundoApp Este es un error muy sutil. Generalmente significa que el nombre de la clase es distinto al del archivo que contiene el cdigo fuente, con lo cual el archivo nombre_archivo.class que se genera es diferente del que cabra esperar. Por ejemplo, si en nuestro archivo de cdigo fuente de nuestra aplicacin HolaMundo.java colocamos en vez de la declaracin actual de la clase HolaMundo, la lnea: class Holamundo { se crear un archivo Holamundo.class, que es diferente del HolaMundo.class, que es el nombre esperado de la clase; la diferencia se encuentra en la a minscula y mayscula. Un problema muy comn al tiempo de ejecucin es que java mande un mensaje de classnotfound, si esto pasa al querer ejecutar el programa, solo irse al prompt de msdos y escribir la orden: C:>SET CLASSPATH=.; Y volver a ejecutar el programa. Un cdigo fuente Java slo puede tener una clase con el modificador de acceso public. Si el modificador de la clase es public, el cdigo fuente debe tener el mismo nombre que la clase. Un archivo fuente (*.java) puede contener ms de una clase, pero slo una puede ser public.

CARACTERISTICAS DE PROGRAMAS O APLICACIONES EN CONSOLA 1.- Todos los programas en java son y empiezan con una clase. 2.- Todos los programas en java deben llevar un mtodo principal, llamado main() quien es quien contiene el cdigo normal del programa. 3.- La clase y el mtodo main deben abrir y cerrar sus propias llaves {} 4.- Las instrucciones terminan con punto y coma (;) 5.- Java tambin es "case sensitive" es decir diferenca maysculas y minsculas. Concepto de Clase Una clase es una agrupacin de datos (variables o campos) y de funciones (mtodos) que operan sobre esos datos. A estos datos y funciones pertenecientes a una clase se les denomina variables y mtodos o funciones miembro. La programacin orientada a objetos se basa en la programacin de clases. Un programa se construye a partir de un conjunto de clases. Una vez definida e implementada una clase, es posible declarar elementos de esta clase de

modo similar a como se declaran las variables del lenguaje (de los tipos primitivos int, double, String, ). Los elementos declarados de una clase se denominan objetos de la clase. De una nica clase se pueden declarar o crear numerosos objetos. La clase es lo genrico: es el patrn o modelo para crear objetos. Cada objeto tiene sus propias copias de las variables miembro, con sus propios valores, en general distintos de los dems objetos de la clase. Las clases pueden tener variables static, que son propias de la clase y no de cada objeto

ENTRADA Y SALIDA EN JAVA Entradas y salidas de datos son las tareas ms comunes en cualquier lenguaje de programacin. En Java la entrada y la salida se lee y escribe en flujos (streams). La fuente bsica de entrada de datos es el teclado y la fuente de salida de datos es la pantalla. La clase System define dos referencias a objetos static para la gestion de la entrada y la salida por consola: System.in para entrada por el teclado

System.out para salida por pantalla El primero es una referencia a un objeto de la clase BufferedInputStream en la cual hay diversos mtodos para poder captar caracteres tecleados. El segundo es una referencia a un objeto de la clase PrintStream con mtodos como: print( ) Transfiere una cadena de caracteres al buffer de la pantalla. println( ) Transfiere una cadena de caracteres y el carcter de fin de lnea alal buffer de la pantalla. Con respecto a la entrada de datos los elementos bsicos de este flujo son caracteres individuales, no cadenas como ocurre con el objeto out. Entre los mtodos de la clase se encuentra read( ), que devuelve el carcter actual en el buffer de entrada. No resulta practico el captar la entrada carcter a carcter, es preferible hacerlo lnea a lnea. Para ello se utilza la clase InputStreamReader, de la que se crea un objeto inicializado con System.in, este objeto que se crea se utiliza a su vez como argumento para inicalizar otro objeto de la clase BufferedReader, que ya permite captar lneas de caracteres del teclado con el mtodo readLine (); En el siguiente ejemplo se muestra la entrada de datos utilizando lo que se ha descrito. Programa ejemplo: import java.io.*; class prog1 { public static void main(String[] args) throws IOException { // declarando variables a usar int edad = 0; String nom=""; // creando un objeto llamado teclado especializado en capturas

BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in)); // capturando datos System.out.println("dame nombre: "); nom=teclado.readLine(); System.out.println("dame edad: "); edad = Integer.parseInt(teclado.readLine()); // convirtiendo a meses edad =edad * 12; System.out.println(nom+" tu tienes "+edad +" meses"); } // cierra main } // cierra clase En java, generalmente todo se maneja mediante objetos, primero se esta creando un objeto llamado teclado que tenga capacidad de leer una string, desde el dispositivo de entrada estndar (teclado o System.in). Se esta usando la instruccin System.out.println(string); para mandar mensajes al usuario Se esta usando el mtodo readline() que tiene el objeto teclado, para leer la string del teclado fsico. Se esta usando Integer.parseInt, , para convertir la string a una variable numrica. Entrada y Salida con Cuadros de dialogo // Imprimir varias lneas de texto en un cuadro de dilogo. // paquetes de Java import javax.swing.JOptionPane; // el programa usa JOptionPane public class Bienvenido4 { // el mtodo main empieza la ejecucin de la aplicacin de Java public static void main( String args[] ) { JOptionPane.showMessageDialog( null, "Bienvenido\na\nla programacion\nen Java!" ); System.exit( 0 ); // terminar la aplicacin con la ventana } // fin del mtodo main }

Instrucciones de control de programa permiten alterar la secuencia normal de ejecucin de un programa. Estas instrucciones se dividen en tres grandes categoras: 1.- Instrucciones Condicionales que en java se implementan con las instrucciones if y switch. b) Instrucciones de ciclos con for while do...while INSTRUCCIONES CONDICIONALES JAVA Una de las mas poderosas caractersticas de cualquier computador es la capacidad que tiene de tomar decisiones. Es decir al comparar dos alternativas diferentes el computador puede tomar una decisin basndose en la evaluacin que hace de alguna condicin.

ejemplo de instrucciones condicionales: si sueldo > 3000 desplegar rico si no desplegar pobre Fin-si si sexo = 'm' imprime mujer si no imprime hombre Fin-si De los ejemplos observar que los caminos a seguir por el computador dependern de la evaluacin que el computador hace con y de la condicin. Todo lenguaje de programacin debe tener instrucciones que permitan formar condiciones e instrucciones que pueden evaluar esas condiciones. Cuando la computadora evala una condicin el resultado de esa evaluacin solo es evaluado de dos maneras o la condicin es CIERTA o la condicin es FALSA. Esto depender del valor que tenga asignado o que se haya capturado para la variable que esta en la condicin, por ejemplo si se capturo 6000 en sueldo en el ejemplo a) entonces el computador indicara que la condicin es CIERTA pero en otro caso si a la variable sueldo primero se le asigno un valor de 250 entonces el computador indicara que la condicin es FALSA. Ya dependiendo del resultado de la evaluacin, el computador ejecuta las instrucciones contenidas en el grupo de cierto o falso respectivamente. Empezaremos el anlisis por la CONDICIN. CONDICIONES SIMPLES JAVA Una condicin simple se define como el conjunto de variables y/o constantes unidas por los llamados operadores relacinales. INSTRUCCIN IF JAVA Es la instruccin condicional mas usada en los diversos lenguajes de programacin, su formato completo y de trabajo en java es: cargar o asignar la variable de condicin; if (condicin) { grupo cierto de instrucciones;} else { grupo falso de instrucciones; }; Notas.- Observar donde van y donde no van los puntos y comas; - La condicin va entre parntesis ; - Si un if no ocupa un grupo falso de instrucciones entonces no se pone el else, y la llave antes del else si terminara con punto y coma. Ejemplo: Prog2.java

import java.io.*; class prog2 { public static void main(String[] args) { // declarando variables a usar int sueldo = 0; // creando un objeto llamado teclado especializado en capturas BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in)); // capturando datos try { System.out.println("dame sueldo: "); sueldo = Integer.parseInt(teclado.readLine()); } catch(IOException variablerror) {System.out.println("error de captura "); } if (sueldo >= 3000) { System.out.println("RICO ");} else { System.out.println("POBRE"); }; } // cierra main } // cierra clase Recordar que es valido usar mas de una instruccin dentro del grupo cierto o falso del if. Prog3.java: ahora con strings import java.io.*; class prog3 { public static void main(String[] args) { // declarando variables a usar String carrera=""; // creando un objeto llamado teclado especializado en capturas BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in)); // capturando datos try { System.out.println("dame carrera: "); carrera = teclado.readLine(); } catch(IOException variablerror) {System.out.println("error de captura "); } if ( carrera.compareTo("informatica") == 0 ) { System.out.println("INTELIGENTE ");} else { System.out.println("NORMAL"); }; // cierra if } // cierra main } // cierra clase

TAREAS PROGRAMACION JAVA 1.- Capturar un numero entero cualesquiera e informar si es o no es mltiplo de 4 ( recordar el operador mod(%), analizado en el tema de operadores aritmticos). 2.- Capturar los cinco datos mas importantes de un Empleado, incluyendo el sueldo diario y los das trabajados desplegarle su cheque semanal solo si gan mas de $500.00 en la semana, en caso contrario desplegarle un bono de despensa semanal de $150.00.

3.- Capturar los datos mas importantes de un estudiante incluyendo tres calificaciones construir una boleta de calificaciones si el estudiante es de la carrera de medicina, en caso contrario construir una pantalla mas bonita todavia que despliega un oficio citando a los padres del estudiante a una platica amistosa con los maestros de la escuela. CONDICIONES COMPUESTAS JAVA En muchas ocasiones es necesario presentar mas de una condicin para su evaluacin al computador. Por ejemplo que el computador muestre la boleta de un alumno si este estudia la carrera de medicina y su promedio de calificaciones es mayor de 70. Una condicin compuesta se define como dos o mas condiciones simples unidas por los llamados operadores lgicos. Los operadores lgicos que java reconoce son; OPERADOR && || ! SIGNIFICADO "Y" LOGICO "O" LOGICO "NO" NEGACION

Ejemplo: if ( (sueldo > 1000 ) && ( sexo=='m') ) etc, etc, etc. Notas: Observar que cada condicin simple lleva sus propios parentesis. Si la variable es de tipo string el dato va entre comillas("), pero si la variable es de tipo char el dato va entre apostrofes('). Para que el computador evale como CIERTA una condicin compuesta que contiene el operador lgico "&&", las dos condiciones simples deben ser ciertas. Para que el computador evale como CIERTA una condicin compuesta que contiene el operador lgico "||", basta con que una de las condiciones simples sea cierta. La cantidad total de casos posibles cuando se unen dos o mas condiciones simples esta dada por la relacin donde n = cantidad de condiciones, la primera mitad de ellos empieza en cierto y la segunda mitad en falso. Ejemplo, si formamos una condicin compuesta con dos condiciones simples y el operador lgico "y", la cantidad total de casos posibles serian verdad. Tabla de verdad con "y" CONDICION1 C C F F CONDICION2 C F C F , y se puede construir la siguiente tabla de

CONDICION1 Y

CONDICION2

C F F F

La evaluacin final, se obtiene usando la regla anteriormente descrita para una condicin compuesta, que contiene el operador "Y". Esta tabla significa lo siguiente; 1.- Cualquiera que sean la cantidad de datos procesados, siempre caer en uno de estos cuatro casos generales. La tabla de verdad para una condicin compuesta con "Or" es la siguiente; CONDICION1 C C F F CONDICION2 C F C F
CONDICION1 OR CONDICION2

C C C F

Construir una tabla de verdad para una condicin compuesta de tres o mas condiciones simples, es tambin tarea sencilla, solo recordar que; 1.- La cantidad posible de casos es 2^n casos posibles, la mitad empiezan con Cierto y la otra mitad empiezan con Falso. 2.- Para evaluar esta condicin triple primero se evalan las dos primeras incluyendo su operador bajo las reglas ya descritas y luego se evala el resultado parcial contra la ultima condicin y ultimo operador para obtener la evaluacin final. TAREAS PROGRAMACION JAVA 1.- Construir un programa que capture un numero cualesquiera e informe si es o no es mayor de 50 y mltiplo de tres. ( solo escribir el mensaje de respuesta de manera muy clara y esto resuelve el problema ) 3.- Capturar los datos de un producto incluyendo su cantidad en existencia, desplegar una orden de compra si la cantidad en existencia del producto es menor que el punto de reorden, o si el origen del producto es nacional. 4.- Construir un programa que capture los datos de un empleado, desplegar su cheque semanal si gana mas de $500.00 y si esta en el departamento de produccin, en caso contrario desplegarle un bono de despensa del 25% de su sueldo semanal

INSTRUCCIN SWITCH Tambin existen ocasiones o programas donde se exige evaluar muchas condiciones a la vez, en estos casos o se usa una condicin compuesta muy grande o se debe intentar convertir el problema a uno que se pueda resolver usando la instruccin SWITCH. Esta instruccin es una instruccin de decisin mltiple donde el compilador prueba o busca el valor contenido en una variable ENTERA o CHARACTER contra una lista de constantes apropiadas, es decir enteras, character, cuando el computador encuentra el valor de igualdad entre variable y constante entonces ejecuta el grupo de instrucciones asociados a dicha constante, si no encuentra el valor de igualdad entre variable y constante, entonces ejecuta un grupo de instrucciones asociados a un default, aunque este ultimo es opcional.

El formato de esta instruccin es el siguiente; switch(var) { case const1: instruccin(es); break; case const2: instruccin(es); break; case const3: instruccin(es); break; .................. default: instruccin(es); } prog4.java import java.io.*; class prog4 { public static void main(String[] args) { // declarando variables a usar char letra=' '; // creando un objeto llamado teclado especializado en capturas BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in)); // capturando datos try { System.out.println("dame una letra : "); letra= teclado.readLine().charAt(0); } catch(IOException variablerror) {System.out.println("error de captura "); } switch(letra) { case 'a': System.out.println("aguila ");break; case 'b': case 'B': System.out.println("becerro ");break; case 'c': System.out.println("caballo "); break; default: System.out.println("no hay "); } } // cierra main } // cierra clase CICLO FOR Este ciclo es uno de los mas usados para repetir una secuencia de instrucciones sobre todo cuando se conoce la cantidad exacta de veces que se quiere que se ejecute una instruccin simple o compuesta. Su formato general es: for (inicializacin; condicin; incremento) { instruccin(es); };

En su forma simple la inicializacin es una instruccin de asignacin que carga una variable de control de ciclo con un valor inicial. La condicin es una expresin relacional que evala la variable de control de ciclo contra un valor final o de parada que determina cuando debe acabar el ciclo. El incremento define la manera en que la variable de control de ciclo debe cambiar cada vez que el computador repite un ciclo. Se deben separar esos 3 argumentos con punto y coma ; EJEMPLO Codigo prog7.java import java.lang.*; import java.io.*; class prog7 { public static void main(String[] args) { // ciclo for for(int x=1; x<=5; x++) { System.out.println(x+" MAMA" + '\n'); }; } // cierra main } // cierra clase Casos Particulares del ciclo for: 1.- El ciclo comienza en uno y se incrementa de uno en uno este es el caso mas general. 2.- Pero el valor inicial puede se diferente de uno, ejemplo; for(x=5;x<=15;x=x+1){ etc.}; 3.- Incluso el valor inicial puede ser negativo, ejemplo; for (x = -3 ;x<= 8; x=x+1) { etc.}; 4.- Los incrementos tambin pueden ser diferentes al de uno en uno, ej.; for (x=1; x<= 20; x=x+3){ etc. }; 5.- Incluso pueden ser decrementos, solo que en este caso, recordar; 5.1.-el valor inicial de la variable debe ser mayor que el valor final. 5.2.-cambiar el sentido de la condicin. Ejemplo: for (x= 50 ; x >= 10; x= x-4 ) { etctera };

CICLO WHILE JAVA En este ciclo el cuerpo de instrucciones se ejecuta mientras una condicin permanezca como verdadera en el momento en que la condicin se convierte en falsa el ciclo termina. Su formato general es : cargar o inicializar variable de condicin; while(condicin) { grupo cierto de instrucciones; instruccin(es) para salir del ciclo; }; Un error muy comun con el while, es poner un punto y coma(;) despues de la (condicin) ejemplo while(condicion); <--esto es y causa un error. Prog8.java

import java.lang.*; import java.io.*; class prog8 { public static void main(String[] args) { // ciclo for int x=1; while ( x<=5 ) { System.out.println(x+" PAPA" + '\n'); x++; }; } // cierra main } // cierra clase While puede llevar dos condiciones en este caso inicializar 2 variables de condicin y cuidar que existan 2 de rompimiento o terminacin de ciclo. El grupo cierto de instrucciones puede ser una sola instruccin o todo un grupo de instrucciones. La condicin puede ser simple o compuesta. Los casos generales de for tambien se aplican a while. A este ciclo tambin se le conoce tambin como ciclo de condicin de entrada o prueba por arriba porque este ciclo evala primero la condicin y posteriormente ejecuta las instrucciones. CICLO DO WHILE JAVA Su diferencia bsica con el ciclo while es que la prueba de condicin es hecha al finalizar el ciclo, es decir las instrucciones se ejecutan cuando menos una vez porque primero ejecuta las instrucciones y al final evala la condicin. Tambin se le conoce por esta razn como ciclo de condicin de salida. Su formato general es : cargar o inicializar variable de condicin; do { grupo cierto de instruccin(es); instruccin(es) de rompimiento de ciclo; } while (condicin); prog9.java import java.io.*; class prog9 { public static void main(String[] args) { // ciclo for int x=1; do { System.out.println(x+" HIJO" + '\n'); x++; } while (x<=5) ; } // cierra main } // cierra clase Otra diferencia bsica con el ciclo while es que, aunque la condicin sea falsa desde un principio el cuerpo de instrucciones se ejecutara por lo menos una vez.

CONCLUSIONES ACERCA DE CICLOS JAVA El problema de dado un problema cualesquiera cual ciclo se debe usar se resuelve con: Si se conoce la cantidad exacta de veces que se quiere que se ejecute el ciclo o si el programa de alguna manera puede calcularla usar for. Si se desconoce la cantidad de veces a repetir el ciclo o se quiere mayor control sobre la salida o terminacin del mismo entonces usar while. Si se quiere que al menos una vez se ejecute el ciclo entonces usar do while.