40
PROGRAMACIÓN EN JAVA TUTORIAL RESUMIDO Definición: Java es un lenguaje de programación orientado a objetos , desarrollado por Sun Microsystems a principios de 1991, con el que se van a poder crear tanto programas asociados a páginas HTML (applets) como programas independientes de éstas (aplicaciones). Y todo ello, independiente de la plataforma de computación. Características principales: - Orientado a Objetos: Java organiza sus programas en una colección de objetos. Esto nos va a permitir estructurar los programas de una manera más eficiente y en un formato más fácil de comprender. - Distribuido: Java dispone de una serie de librerías para que los programas se puedan ejecutar en varias máquinas y puedan interactuar entre sí. - Robusto: Java está diseñado para crear software altamente fiable. - Seguro: Java cuenta con ciertas políticas que evitan que se puedan codificar virus con este lenguaje, sin olvidar además que existen muchas otras restricciones que limitan lo que se puede o no se puede hacer con los recursos críticos de una máquina. - Interpretado: La interpretación y ejecución se hace a través de la Máquina Virtual Java (JVM). - Máquina Virtual Java es el entorno en el que se ejecutan los programas Java, su misión principal es la de garantizar la ejecución de las aplicaciones Java en cualquier plataforma. - Independiente de la Arquitectura: El código compilado de Java se va a poder usar en cualquier plataforma. - Multiejecución: Java permite elaborar programas que permitan ejecutar varios procesos al mismo tiempo sobre la misma máquina. Tipos de aplicaciones Java Applets

Documento JAVA

Embed Size (px)

DESCRIPTION

Java

Citation preview

PROGRAMACIN EN JAVA

TUTORIAL RESUMIDO

Definicin:

Java es un lenguaje de programacin orientado a objetos , desarrollado por Sun Microsystems a principios de 1991, con el que se van a poder crear tanto programas asociados a pginas HTML (applets) como programas independientes de stas (aplicaciones). Y todo ello, independiente de la plataforma de computacin.

Caractersticas principales:

- Orientado a Objetos: Java organiza sus programas en una coleccin de objetos. Esto nos va a permitir estructurar los programas de una manera ms eficiente y en un formato ms fcil de comprender.- Distribuido: Java dispone de una serie de libreras para que los programas se puedan ejecutar en varias mquinas y puedan interactuar entre s.- Robusto: Java est diseado para crear software altamente fiable.- Seguro: Java cuenta con ciertas polticas que evitan que se puedan codificar virus con este lenguaje, sin olvidar adems que existen muchas otras restricciones que limitan lo que se puede o no se puede hacer con los recursos crticos de una mquina.- Interpretado: La interpretacin y ejecucin se hace a travs de la Mquina Virtual Java (JVM).- Mquina Virtual Java es el entorno en el que se ejecutan los programas Java, su misin principal es la de garantizar la ejecucin de las aplicaciones Java en cualquier plataforma.- Independiente de la Arquitectura: El cdigo compilado de Java se va a poder usar en cualquier plataforma.- Multiejecucin: Java permite elaborar programas que permitan ejecutar varios procesos al mismo tiempo sobre la misma mquina.

Tipos de aplicaciones Java

AppletsSon programas Java pensados para ser colocados dentro de una pgina web. Pueden ser interpretados por cualquier navegador con capacidades Java. Estos programas se insertan en las pginas usando una etiqueta especial (como tambin se insertan vdeos, animaciones flash u otros objetos). Hoy da mediante applets se pueden integrar en las pginas web aplicaciones multimedia avanzadas (incluso con imgenes 3D o sonido y vdeo de alta calidad)

Aplicaciones de consola Son programas independientes al igual que los creados con los lenguajes tradicionales.

Aplicaciones grficas Aquellas que utilizan las clases con capacidades grficas (como awt por ejemplo).

Servlets Son aplicaciones que se ejecutan en un servidor de aplicaciones web y que como resultado de su ejecucin resulta una pgina web.

Midlet Aplicacin creada con Java para su ejecucin en sistemas de propsito simple o dispositivos mviles. Los juegos Java creados para telfonos mviles son midlets.

Hay tres ediciones de Java: cada una de ellas se corresponde con una plataforma que incluye una serie de funciones, paquetes y elementos del lenguaje (es decir la API, Application Program Interface).

Java SE Java Standard Edition. Antes se la conoca como J2SE (el dos se refiere a Java 2). Permite escribir cdigo Java relacionado con la creacin de aplicaciones y applets en lenguaje Java comn. Es decir, es el Java normal.

Java EE Java Enterprise Edition. Todava conocida como J2EE. Pensada para la reacin de aplicaciones Java empresariales y del lado del servidor.

Java Mobile Edition. Tambin conocida como J2ME. Pensada para la creacin de aplicaciones Java para dispositivos mviles.

Versiones de Java

Desde la versin 1.2 se habla de Java 2. Desde la versin 1.6 se ha abandonado la terminologa Java 2 y ahora se habla de Java 6 y Java 7 para las versiones 1.6 y 1.7 del kit de desarrollo. Cada versin tiene varias revisiones, as la versin 1.6.7 del SDK indica versin 6 de Java, revisin 7.

Java 1.0 (JDK 1.0) Fue la primera versin de Java y propuso el marco general en el que se desenvuelve Java. est oficialmente obsoleto, pero hay todava muchos clientes con esta versin.

Java 1.1 (JDK 1.1) Mejor la versin anterior incorporando las siguientes mejoras: JDBC, API de acceso a bases de datos RMI llamadas a mtodos remotos. Es una tcnica de comunicacin de procesos en red JavaBeans, componentes independientes reutilizables. Internacionalizacin para crear programas adaptables a todos los idiomas Clases internas

Java 2 (J2SE 1.2) Apareci en Diciembre de 1998 al aparecer el JDK 1.2. Incorpor notables mejoras como por ejemplo: JFC. Java Foundation classes. El conjunto de clases de todo para crear programas ms atractivos de todo tipo. Dentro de este conjunto estn: El paquete Swing. Mejorando notablemente al anterior paquete AWT. Se trata de todo un conjunto de clases que permiten desarrollar fcilmente entornos de ventanas. Es parte de JFC. Enterprise Java beans. Para la creacin de componentes para aplicaciones distribuidas del lado del servidor Java Media. Conjunto de paquetes para crear paquetes multimedia: Java 2D. Paquete (parte de JFC) que permite crear grficos de alta calidad en los programas de Java. Java 3D. Paquete (parte de JFC) que permite crear grficos tridimensionales. Java Media Framework. Paquete marco para crear elementos multimedia Java Speech. Para reconocimiento de voz. Java Sound. Audio de alta calidad Java TV. Televisin interactiva

JNDI. Java Naming and Directory Interface. Servicio general de bsqueda de recursos. Integra los servicios de bsqueda ms populares (como LDAP por ejemplo).Java Servlets. Herramienta para crear aplicaciones de servidor web (y tambin otros tipos de aplicaciones). Java Cryptography. Algoritmos para encriptar y desencriptar. Java Help. Creacin de sistemas de ayuda. Jini. Permite la programacin de electrodomsticos. Java card. Versin de Java dirigida a pequeos dispositivos electrnicos. Java IDL. Lenguaje de definicin de interfaz. Permite crear aplicaciones tipo CORBA (plataforma de desarrollo de sistemas distribuidos) Clases para la creacin de colecciones

Java 1.3 (J2SE 1.3) Se utiliza la mquina virtual de Hotspot (ms rpida y segura). Se modifica RMI para que trabaje con CORBA JPDA, Java Platform Debugger Architectura

Java 1.4 (J2SE 1.4) Aparecen las aserciones (assert) Expresiones regulares estilo Perl. NIO. Nuevo interfaz de entrada y salida de datos. JAXP. API de desarrollo de documentos XML.

Java 1.5 (J2SE 1.5) Aparecen las plantillas Metadatos Autoboxing, conversin automtica de tipos a tipos envolventes. Enumeraciones Argumentos variables (varargs) Mejora del bucle for

Java 1.6 (Java SE 6) Combinacin con otros lenguajes (PHP, Ruby, Perl,) ltimas especificaciones de JAX-WS 2.0, JAXB 2.0, STAX y JAXP para crear servicios web.

ELEMENTOS BSICOS DE JAVALa sintaxis de un lenguaje define los elementos de dicho lenguaje y cmo se combinan para formar un programa. Los elementos tpicos de cualquier lenguaje son los siguientes:

Identificadores: los nombres que se dan a las variablesTipos de datosPalabras reservadas: las palabras que utiliza el propio lenguajeSentenciasBloques de cdigoComentariosExpresionesOperadoresIdentificadores en JAVAUn identificador es un nombre que identifica a una variable, a un mtodo o funcin miembro, a una clase. Todos los lenguajes tienen ciertas reglas para componer los identificadores:

Todos los identificadores han de comenzar con una letra, el carcter subrayado ( _ ) o el carcter dollar ( $ ).Puede incluir, pero no comenzar por un nmeroNo puede incluir el carcter espacio en blancoDistingue entre letras maysculas y minsculasNo se pueden utilizar palabras reservadas como identificadores

Comentarios

En Java existen tres tipos de comentarios:

Comentarios en una sola lnea // comentarioComentarios de varias lneas /* comentario */Comentarios de documentacin /** comentario */

Sentencias

Una sentencia es una orden que se le da al programa par a realizar una tarea especfica, estas pueden ser:

int i=1; // declarar una variable e inicializarlaimport java.awt.*; // importar clasesSystem.out.println("El primer programa"); // mostrar un mensaje en pantallarect.mover(10, 20); // llamar a una funcin

Las sentencias acaban con ; este carcter separa una sentencia de la siguiente.

Bloques de cdigo

Un bloque de cdigo es un grupo de sentencias que se comportan como una unidad. Un bloque de cdigo est limitado por las llaves de apertura { y cierre }.

Expresiones

Una expresin es todo aquello que se puede poner a la derecha del operador asignacin =. Por ejemplo:

x=123;y=(x+100)/4;area=circulo.calcularArea(2.5);Rectangulo r=new Rectangulo(10, 10, 200, 300);

La primera expresin asigna un valor a la variable x.La segunda, realiza una operacin.La tercera, es una llamada a una funcin miembro calcularArea desde un objeto circulo de una clase determinada.La cuarta, reserva espacio en memoria para un objeto de la clase Rectangulo mediante la llamada a una funcin especial denominada constructor.

Variables

Una variable es un nombre que se asocia con una porcin de la memoria del ordenador, en la que se guarda el valor asignado a dicha variable.Todas las variables han de declararse antes de usarlas, la declaracin consiste indicar el tipo de dato y el nombre de la variable. Una vez declarada se le podr asignar valores. Java tiene tres tipos de variables:

de instanciade claselocalesLas variables de instancia: se usan para guardar los atributos de un objeto particular.

Las variables de clase: son similares a las variables de instancia, con la excepcin de que los valores que guardan son los mismos para todos los objetos de una determinada clase.En el siguiente ejemplo, PI es una variable de clase y radio es una variable de instancia. PI guarda el mismo valor para todos los objetos de la clase Circulo, pero el radio de cada crculo(objeto) puede ser diferente.

class Circulo{static final double PI=3.1416;double radio;}

Las variables locales: se utilizan dentro de las funciones miembro o mtodos.En el siguiente ejemplo area es una variable local a la funcin calcularArea en la que se guarda el valor del rea de un objeto de la clase Circulo.

class Circulo{double calcularArea(){double area=PI*radio*radio;return area;}}Las variables locales se declaran en el momento en el que son necesarias. Tambin se pueden inicializar en el momento en el que son declaradas.

int x=0;String nombre="Angel";double a=3.5, b=0.0, c=-2.4;boolean bNuevo=true;int[ ] datos;

Delante del nombre de cada variable se ha de especificar el tipo de variable que hemos destacado en letra negrita. Las variables pueden ser

Un tipo de dato primitivoEl nombre de una claseUn arrayLas variables son uno de los elementos bsicos de un programa, y se deben

Declararint i; // declararInicializarint i=2; // inicializarUsari+i; // usar

Caracteres

Un carcter est siempre rodeado de comillas simples como 'A', '9', '', etc. El tipo de dato char sirve para guardar estos caracteres. Existen caracteres que se utilizan para representar caracteres de control o caracteres que no se imprimen, llamados caracteres de escape.

Variables booleanas

Una variable booleana solamente puede guardar uno de los dos posibles valores:true (verdadero) y false (falso).

boolean encontrado=false;{...}encontrado=true;

Variables enteras

Una variable entera consiste es cualquier cifra precedida por el signo ms (opcional), para los positivos, o el signo menos, para los negativos. Son ejemplos de nmeros enteros:12, -36, 0, 4687, -3598

Como ejemplos de declaracin de variables enteras tenemos:

int numero=1205;int x,y;long m=30L;

Variables en coma flotante

Las variables del tipo float o double (coma flotante) se usan para guardar nmeros en memoria que tienen parte entera y parte decimal.

double PI=3.14159;double g=9.7805, c=2.9979e8;

Valores constantes

Cuando se declara una variable de tipo final, se ha de inicializar y cualquier intento de modificarla en el curso de la ejecucin del programa da lugar a un error.Normalmente, las constantes de un programa se suelen poner en letras maysculas, para distinguirlas de las que no son constantes. He aqu ejemplos de declaracin de constantes.

final double PI=3.141592653589793;final int MAX_DATOS=150;

Las cadenas de caracteres o strings

Las cadenas de caracteres o strings en Java son objetos de la clase String.String mensaje="El primer programa";

Palabras reservadas

En el siguiente cuadro se listan las palabras reservadas, aquellas que emplea el lenguaje Java, y que el programador no puede utilizar como identificadores (nombre de una variable).Las palabras reservadas se pueden clasificar en las siguientes categoras:

Tipos de datos: boolean, float, double, int, charSentencias condicionales: if, else, switchSentencias iterativas: for, do, while, continueTratamiento de las excepciones: try, catch, finally, throwEstructura de datos: class, interface, implements, extendsModificadores y control de acceso: public, private, protected, transientOtras: super, null, this.

OPERADORES EN JAVATodos los lenguajes de programacin permiten realizar operaciones entre los tipos de datos bsicos: suma, resta, producto, cociente, etc.

Los operadores aritmticosJava tiene cinco operadores aritmticos cuyo significado se muestra en la tablaAdjunta

El cociente entre dos enteros da como resultado un entero. Por ejemplo, al dividir 20 entre 7 nos da como resultado 2. El operador mdulo da como resultado el resto de la divisin entera. Por ejemplo 20%7 da como resultado 6 que es el resto de la divisin entre 20 y 7.

El operador asignacin

Nos habremos dado cuenta que el operador ms importante y ms frecuentemente usado es el operador asignacin =, que hemos empleado para la inicializacin de las variables. As,

int numero;numero=20;

la primera sentencia declara una variable entera de tipo int y le da un nombre (numero). La segunda sentencia usa el operador asignacin para inicializar la variable con el nmero 20. Consideremos ahora, la siguiente sentencia.

a=b;

que asigna a a el valor de b. A la izquierda siempre tendremos una variable tal como a, que recibe valores, a la derecha otra variable b, o expresin que tiene un valor. Por tanto, tienen sentido las expresiones

a=1234;double area=calculaArea(radio);superficie=ancho*alto;

Las asignaciones mltiples son tambin posibles. Por ejemplo, es vlida la Sentencia

c=a=b; // equivalente a c=(a=b);

La cual puede ser empleada para inicializar en la misma lnea varias variables

c=a=b=321; // asigna 321 a a, b y c

El operador asignacin se puede combinar con los operadores aritmticos

As, la sentenciax=x+23; equivale a x+=23;

Concatenacin de strings

En Java se usa el operador + para concatenar cadenas de caracteres o strings. Veremos en el siguiente apartado una sentencia como la siguiente:

System.out.println("la temperatura centgrada es "+ tC);

El operador + cuando se utiliza con strings y otros objetos, crea un solo string que contiene la concatenacin de todos sus operandos. Si alguno de los operandos no es una cadena, se convierte automticamente en una cadena. Por ejemplo, en la sentencia anterior el nmero del tipo double que guarda la variable tC se convierte en un string que se aade al string "la temperatura centgrada es ".

Concatena una cadena de caracteres con un tipo bsico de dato, que convierte automticamente en un string. El operador += tambin funciona con cadenas.

String nombre="Juan ";nombre+="Garca";System.out.println(nombre);

La precedencia de operadores

El lector conocer que los operadores aritmticos tienen distinta precedencia, as la expresin

a+b*c

es equivalente a

a+(b*c)

ya que el producto y el cociente tienen mayor precedencia que la suma o la resta. Sin embargo, si queremos que se efecte antes la suma que la multiplicacin tenemos de emplear los parntesis

(a+b)*c

Para realizar la operacin a/bc escribiremos

a/(b*c);

La conversin automtica y promocin (casting)Cuando se realiza una operacin, si un o perando es entero (int) y el otro es de coma flotante (double) el resultado es en coma flotante ( double).

int a=5;double b=3.2;double suma=a+b;

Cuando se declaran dos variables una de tipo int y otra de tipo double.

int entero;double real=3.20567;

qu ocurrir cuando asignamos a la variable entero el nmero guardado en la variable real?. Como hemos visto se trata de dos tipos de variables distintos cuyo tamao en memoria es de 32 y 64 bits respectivamente. Por tanto, la sentencia

entero=real;

convierte el nmero real en un nmero entero eliminando los decimales. La variable entero guardar el nmero 3. Supongamos que deseamos calcular la divisin 7/3, como hemos visto, el resultado de la divisin entera es 2, an en el caso de que tratemos de guardar el resultado en una variable del tipo double, como lo prueba la siguiente porcin de cdigo.

int ia=7;int ib=3;double dc=ia/ib;

Si queremos obtener una aproximacin decimal del nmero 7/3, hemos de promocionar el entero ia a un nmero en coma flotante, mediante un procedimiento denominado promocin o casting.

int ia=7;int ib=3;double dc=(double)ia/ib;

Como aplicacin, consideremos el clculo del valor medio de dos o ms nmeros enteros

int edad1=10;int edad2=15;double media=(double)(edad1+edad2)/2;

El valor medio de 10 y 15 es 12.5, sin la promocin se obtendra el valor errneo 12.Imaginemos ahora, una funcin que devuelve un entero int y queremos guardarlo en una variable de tipo float. Escribiremos:

float resultado=(float)retornaInt() ;

Los operadores unarios

Los operadores unarios son:++ Incremento-- Decrementoactan sobre un nico operando y el resultado de la operacin depende de que el operador est a la derecha i++ o a la izquierda ++i.Conoceremos, primero el significado de estos dos operadores a partir de las sentencias equivalentes:i=i+1; //aadir 1 a ii++;Del mismo modo, lo son

i=i-1; //restar 1 a ii--;

Examinemos ahora, la posicin del operador respecto del operando. Consideremos en primer lugar que el ope rador unario ++ est a la derecha del operando. La sentencia

j=i++;

asigna a j, el valor que tena i. Por ejemplo, si i vala 3, despus de ejecutar la sentencia, j toma el valor de 3 e i el valor de 4. Lo que es equivalente a las dos sentencias

j=i;i++;

Un resultado distinto se obtiene si el operador ++ est a la izquierda del operandoj=++i;

asigna a j el valor incrementado de i. Por ejemplo, si i vala 3, despus de ejecutar la sentencia j e i toman el valor de 4. Lo que es equivalente a las dos sentencias

++i;j=i;

Los operadores relacionalesLos operadores relacionales son smbolos que se usan para comparar dos valores. Si el resultado de la comparacin es correcto la expresin considerada es verdadera, en caso contrario es falsa

Los operadores lgicosLos operadores lgicos son:&& AND (el resultado es verdadero si ambas expresiones son verdaderas)|| OR (el resultado es verdadero si alguna expresin es verdadera)! NOT (el resultado invierte la condicin de la expresin)AND y OR trabajan con dos operandos y retornan un valor lgico basadas en las denominadas tablas de verdad. El operador NOT acta sobre un operando. Estas tablas de verdad son conocidas y usadas en el contexto de la vida diaria, por ejemplo: "si hace sol Y tengo tiempo, ir a la playa", "si NO hace sol, me quedaren casa", "si llueve O hace viento, ir al cine". Las tablas de verdad de los operadores AND, OR y NOT se muestran en las tablas siguientes

Los operadores AND y OR combinan expresiones relacionales cuyo resultadoviene dado por la ltima columna de sus tablas de verdad. Por ejemplo:

(a