INACAP Universidad Tecnológica de Chile Sede Santiago Centro Taller de Programación I Curso Java J2SE Introducción a Java Ing. Manuel López Ramos
Parte I Qué es Java?
Qué es Java? Java normalmente es considerado como un lenguaje de programación. Sin embargo, Java considera 4 puntos importantes para el desarrollo de software:
Qué es Java? Java normalmente es considerado como un lenguaje de programación. Sin embargo, Java considera 4 puntos importantes para el desarrollo de software: 1) Es un lenguaje de programación Permite realizar programas de computador, utilizando sintaxis y palabras reservadas similares a las de los lenguajes C y C++. Incentiva también a utilizar el paradigma de programación orientado al objeto para el desarrollo de software.
Qué es Java? Java normalmente es considerado como un lenguaje de programación. Sin embargo, Java considera 4 puntos importantes para el desarrollo de software: 1) Es un lenguaje de programación 2) Es una plataforma de desarrollo Permite el desarrollo de software, utilizando un entorno de programación orientado a objetos, con herramientas y utilidades que permiten desarrollar prototipos y software en poco tiempo y con alta escalabilidad. Además, provee de una API (interfaz de programación de aplicaciones) con bibliotecas extensas de funciones de amplia utilización.
Qué es Java? Java normalmente es considerado como un lenguaje de programación. Sin embargo, Java considera 4 puntos importantes para el desarrollo de software: 1) Es un lenguaje de programación 2) Es una plataforma de desarrollo 3) Es una tecnología de software/hardware Java es una tecnología; no sólo es un lenguaje y un conjunto de bibliotecas de programación, sino que además ofrece a los desarrolladores una serie de modelos, metodologías y técnicas que permiten el desarrollo de soluciones informáticas, utilizando formas ya probadas en la industria. Muchas de las bibliotecas de desarrollo están estructuradas de forma tal que obligan al programador a seguir ciertos pasos en la construcción de las soluciones, siguiendo modelos estándares de software, tales como OMT y OMT++, modelos de capas, modelos cliente-servidor y otros. También permite implementar soluciones para robótica o sobre silicio, en forma de chips, procesadores, placas de desarrollo electrónico y dispositivos portátiles.
Qué es Java? Java normalmente es considerado como un lenguaje de programación. Sin embargo, Java considera 4 puntos importantes para el desarrollo de software: 1) Es un lenguaje de programación 2) Es una plataforma de desarrollo 3) Es una tecnología de software/hardware 4) Es una máquina virtual Todos los programas que se desarrollan en la plataforma Java (utilizando el lenguaje Java) se ejecutan sobre una arquitectura de CPU virtual, denominada Máquina Virtual de Java (Java Virtual Machine, o JVM), lo que permite la portabilidad de las aplicaciones de Java y su ejecución en casi cualquier sistema de hardware para el cual se haya escrito una JVM.
Java y sus 3 grandes ramas... Java, considerado como plataforma de desarrollo completa, puede ser dividido en 3 grandes subplataformas, cada una orientada a soluciones con diversos objetivos: J2SE (Java 2 Standard Edition) Desarrollo de aplicaciones de escritorio y distribuidas. J2EE (Java 2 Enterprise Edition) Desarrollo de aplicaciones Web con bases de datos y empresariales. J2ME (Java 2 Micro Edition) Desarrollo de aplicaciones para dispositivos portátiles (PDAs, celulares, etc.)
Java y sus 3 grandes ramas... En el siguiente gráfico se pueden observar las plataformas de Java existentes y el tipo de software/hardware al que están orientadas comúnmente: Dispositivos habilitados con tecnología Java Entornos de escritorio habilitados con tecnología Java Servidores de trabajo Servidores de alto rendimiento
Parte II Cómo se trabaja con la tecnología Java en el desarrollo de aplicaciones?
Modelo de desarrollo de aplicaciones en Java En el siguiente esquema se indican los pasos a seguir para el desarrollo de una aplicación de Java. Proyecto de Java con un archivo fuente MiClase.java Paso 1: escritura de un código fuente en el lenguaje Java.
Modelo de desarrollo de aplicaciones en Java En el siguiente esquema se indican los pasos a seguir para el desarrollo de una aplicación de Java. MiClase.java javac Paso 2: compilación del código fuente anterior, utilizando un compilador de Java.
Modelo de desarrollo de aplicaciones en Java En el siguiente esquema se indican los pasos a seguir para el desarrollo de una aplicación de Java. MiClase.java javac 00110 01110 00010 MiClase.class Paso 3: luego de la compilación, se obtiene un código objeto, denominado Código de Bytes (o Bytecode).
Modelo de desarrollo de aplicaciones en Java También se pueden compilar muchos archivos fuentes dentro del proyecto de una única aplicación de software: Proyecto de Java con varios archivos fuentes 00110 01110 00010 MiClase01.java MiClase01.class MiClase02.java MiClase03.java javac 00110 01110 00010 MiClase02.class 00110 01110 00010 MiClase03.class Paso opcional: se pueden compilar muchos códigos fuentes para obtener muchos archivos de código de bytes dentro de un único proyecto.
Modelo de desarrollo de aplicaciones en Java Una vez que se ha terminado de compilar los archivos fuente del proyecto y se han obtenido los archivos de código de bytes, se procede a la ejecución de la aplicación de Java: 00110 01110 00010 MiClase01.class 00110 01110 00010 MiClase02.class 00110 01110 00010 MiClase03.class java (para PC/Windows) java (para PC/GNU/Linux) java (para celulares, para robots, para tostadoras, etc.) Archivo comprimido con varios archivos objeto (archivo.jar o carpeta) Paso 4: se ejecutan los archivos de código de bytes en la JVM adecuada para cada plataforma de hardware.
Parte III Desarrollo de aplicaciones en Java
Aplicaciones en Java Java es un lenguaje basado en la sintaxis de los lenguajes C y C++, mientras que basa su metodología de programación en lenguajes tales como C++ y Smalltalk. Una aplicación en Java está formada por los siguientes elementos: Proyecto de Java (en NetBeans, Eclipse, etc.) Archivos.java Códigos fuentes 00110 01110 00010 00110 01110 00010 00110 01110 00010 00110 01110 00010 00110 01110 00010 Archivos de código de bytes (clases compiladas) Archivos.class JAR JAR JAR JAR JAR Bibliotecas empaquetadas Archivos.jar
Creación de aplicaciones en Java Para crear aplicaciones en Java se pueden utilizar: un editor de texto + una consola de sistema operativo, o bien un entorno integrado de desarrollo de aplicaciones (conocido como IDE) Si, por ejemplo, se crea un proyecto en NetBeans, se pueden observar las siguientes unidades de aplicación: Paquetes de códigos fuente (directorios que agrupan los archivos.java) Códigos fuente (archivos.java) Proyecto de Java Directorio de bibliotecas precompiladas (directorio que agrupa los archivos.jar externos al proyecto)
Código fuente de Java (concepto de clase) Una vez que se ha creado el proyecto de Java sobre algún IDE conveniente, es necesario crear uno o más archivos fuente (archivos con código de Java). 1) Un código de Java se denomina bajo el concepto de clase de Java. 2) Las clases contienen el código ejecutable de la aplicación. 3) Las clases, por ende, pueden contener variables y subrutinas.
Cómo crear una clase de Java? (parte 1) Cómo crear una clase de Java? La creación de una clase de Java es simple. Basta con crear un archivo de texto y agregar la sentencia inicial public class <nombredeclase> junto con un par de llaves ( { y } ) para encerrar el código interno de ella. Finalmente, la estructura base de la clase de Java queda distribuida de la siguiente forma: Más adelante se indicará el significado de la palabra reservada public.
Cómo crear una clase de Java? (parte 2) Luego de crear la estructura base, se debe crear alguna función que permita ejecutar código de Java. Las clases en general no están vacías: pueden contener variables y subrutinas. 1) A las variables creadas directamente dentro de la estructura de clase se las conoce con el nombre de atributos de clase. 2) A las subrutinas creadas directamente dentro de la estructura de clase se las conoce con el nombre de métodos de clase (o funciones). 3) El método de clase principal dentro de una aplicación de Java (en J2SE) se denomina método main, y es similar en importancia y uso a la función main de los programas en lenguajes C y C++. 4) El método main contiene el código que se ejecutará al inicio de la aplicación; una vez que el código de este método se ejecute completamente, la aplicación finaliza irremediablemente.
Cómo crear una clase de Java? (parte 3) El prototipo o encabezado del método main es exactamente el siguiente: public static void main(string[] args) seguido de un par de llaves que delimitan el bloque de código ejecutable que iniciará la aplicación. El significado de las palabras claves public, static y void se explicará en una próxima oportunidad. Dentro del método main, se pueden colocar las sentencias de Java deseadas.
Parte IV El Lenguaje de programación Java (palabras claves del lenguaje y estructuras de programación generales)
Comentarios en Java En Java, la creación de comentarios puede realizarse de dos formas distintas: 1) Comentarios de 1 línea: Se anotan anteponiendo los caracteres //. Por ejemplo: // Este es un comentario de una única línea // Y este es otro comentario independiente // del anterior... 2) Comentarios multilínea: Se anotan encerrando el comentario entre los caracteres /* y */. Por ejemplo: /* Este es un comentario de múltiples líneas que continúa en esta línea y en esta otra. Aquí termina... */
Tipos de datos en Java Java es un lenguaje basado en la sintaxis de los lenguajes C y C++, mientras que basa su metodología de programación en lenguajes tales como C++ y Smalltalk. Java posee 8 tipos de datos primitivos (o básicos, dados por el lenguaje). Estos son: Tipo de dato Tamaño Rango de datos Ejemplo byte 8 bits -127 a +128 byte A = 2; short 16 bits -32768 a +32767 short B = -45; int 32 bits -2,147,483,648 a 2,147,483,647 int C = -1023452; long 64 bits -9,223,372,036,854,775,808 a +9,223,372,036,854,775,807 float 32 bits 1.40129846432481707e-45 a 3.40282346638528860e+38 double 64 bits 4.94065645841246544e-324 a +- 1.79769313486231570e+308 long D = 4567L; float E = 3.14159F; double F = 2.7149D; char 16 bits un carácter Unicode char G = '@'; boolean 1 bit true / false boolean H = true; (observar con atención los sufijos para algunos datos)
Creación y utilización de variables (parte 1) En Java, la creación de variables se realiza de igual forma que en el lenguaje C: 1) Creación de variables: Para crear variables y/o inicializarlas, se utilizan las sintaxis siguientes: <tipodedato> <nombrevariable> ; Declaración (indicación del tipo) <tipodedato> <nombrevariable> = <valor>; Definición (declaración + inicialización) Ejemplos: int a; int b = 4; char c = '@'; float d = 8.7F, e = 3.1415927F, f = -5.6F; Las variables en Java pueden crearse e inicializarse en cualquier lugar dentro del bloque de un método (no sólo al inicio, como en el lenguaje C).
Creación y utilización de variables (parte 2) En Java, la creación de variables se realiza de igual forma que en el lenguaje C: 2) Utilización de variables: Para utilizar el dato almacenado en una variable, basta con invocar el nombre de la variable en cuestión. Ejemplos: a = a + 1; b = (c + a) - 4; c = 'A'; d = 0.0F;
Operadores matemáticos y lógicos (parte 1) En Java, se pueden utilizar los siguientes operadores aritméticos y lógicos dentro de expresiones de tipo matemático: Operador Descripción + adición - sustracción / signo * multiplicación / división entera/decimal % módulo o resto de la división entera & AND (Y) lógico de bits OR (O) lógico de bits ^ XOR (O-exclusivo) lógico de bits ~ negación lógica de bits ( ) paréntesis (agrupación) ++ incremento en 1 unidad -- decremento en 1 unidad Operador Descripción == igual que!= diferente a < menor que <= menor o igual que > mayor que >= mayor o igual que && & AND condicional en cortocircuito AND condicional normal OR condicional en cortocircuito OR condicional normal! negación condicional >> desplazamiento de bits a la derecha << desplazamiento de bits a la izquierda >>> desplazamiento de bits a la derecha sin signo
Operadores matemáticos y lógicos (parte 2) En Java también existen operadores de asignación, para escribir expresiones más cortas: Operador a += b a -= b a *= b a /= b a %= b a &= b a = b a ^= b Descripción equivalente a a = a + b equivalente a a = a - b equivalente a a = a * b equivalente a a = a / b equivalente a a = a % b equivalente a a = a & b equivalente a a = a b equivalente a a = a ^ b
Operadores matemáticos y lógicos (parte 3) Por último, la siguiente tabla muestra el orden de precedencia de las operaciones aritmético-lógicas en Java: Tipo de Operador Operadores posfijos Descripción [ ]. (parametros) expr++ expr-- Operadores unarios ++expr --expr +expr -expr ~! Creación o conversión new (tipo) expr Multiplicación/división * / % Adición/sustracción + - Desplazamiento << Comparación < <= = instanceof Igualdad ==!= AND a nivel de bit OR a nivel de bit & ^ XOR a nivel de bit AND lógico && OR lógico Condicional? : Asignación = += -= *= /= %= &= ^= = <<= = =
Entrada y salida de datos Actividad práctica Cree un proyecto en NetBeans, con una única clase, y luego escriba expresiones y sentencias de Java, utilizando todos los tipos de datos, así como algunos de los operadores aritmético-lógicos que considere más importantes.
Entrada y salida de datos (parte 1) Java posee una serie de métodos generales para mostrar salidas por la consola. Estos métodos son los siguientes: a) System.out.println() Imprime un valor en consola y agrega un salto de línea al final del string. Ejemplos: System.out.println("Mi primer mensaje en Java"); int valornumerico = 123456; System.out.println("El valor es " + valornumerico) System.out.println("El siguiente es un mensaje " + "bastante largo como para ser " + "escrito en una única " + "línea de programa.");
Entrada y salida de datos (parte 2) b) System.out.print() Imprime un valor en consola, pero no agrega automáticamente un salto de línea al final del string. Ejemplos: System.out.print("Mi segundo mensaje en Java"); boolean tengofrio = false; System.out.print(" Tengo frío? " + tengofrio) System.out.print("Para marcar un salto de línea " + "se ocupa un carácter \n" + "como en el lenguaje C\n");
Entrada y salida de datos (parte 3) c) System.out.printf() Imprime un string, mediante especificadores de formato, en consola. Ejemplos: float valorpi = 3.1415927F; System.out.printf("PI vale %f\n", valorpi); int miedad = 23; System.out.printf("Tengo %i años.\n", miedad); long valor1 = 4, valor2 = 56; System.out.printf("Valores: %10i %10i",valor1,valor2);
Entrada y salida de datos Actividad práctica Cree una aplicación en Java, con tres clases distintas, y copie los ejemplos de cada método presentado (println, print y printf) para visualizar cómo se ejecutan en consola.
Operadores condicionales en Java Las condiciones en Java tienen la siguiente forma: <variable_o_expresion> <operador_condicional> <variable_o_expresion> Los operadores condicionales son los siguientes: == (igual a),!= (distinto a), < (menor que), > (mayor que), <= (menor o igual que) y >= (mayor o igual que). Ejemplos: 3 == 4 (valor de verdad: false) 4 + 1 > 4-2 (valor de verdad: true) a*2 >= b/2 etc. Las condiciones también pueden estar formadas por otras expresiones condicionales, formándose entonces expresiones condicionales compuestas: a > b & c <= 1 (operador lógico condicional & - Y lógico) a < 1 b > c (operador lógico condicional - O lógico)
Ciclos iterativos en Java Java posee 3 tipos de ciclos iterativos (al igual que en el lenguaje C y C++): a) Bloque for: Permite implementar ciclos iterativos para contar progresivamente. Sintaxis: for ([<inicialización>]; [<condición_mientras>]; [<expr_incremento>]) { // sentencia01 // sentencia02 // sentencia03...... } El bloque se ejecuta de la siguiente forma: 1) Inicialización de la variable. 2) Si la condición no se cumple, se termina el ciclo. 3) Se realiza la ejecución del bloque. 4) Se calcula la expresión de incremento. 5) Volver al paso 2.
Entrada y salida de datos Actividades prácticas Cree un programa en Java que muestre (por consola) las tablas de multiplicación del 2 y el 3 (el segundo factor recorre desde el valor 0 al 12, dentro de cada tabla). Crear un programa en Java que muestre (por consola) las tablas de multiplicación del 1 al 12. El segundo factor de cada tabla recorre los números del 1 al 12 también. Utilice printf para imprimir las tablas. Cree un programa en Java que muestre (por consola) una tabla con los cuadrados y cubos de los números entre el 0 y el 10.