Download Semana de la 8 a la 11
Document related concepts
no text concepts found
Transcript
Capacitación Java Primer Cuatrimestre 2007 ¿Qué es Java y POO? Historia Lenguaje Características de Java La Maquina Virtual de Java (JVM) Edición, compilación y ejecución de programas. Componentes de una aplicación en Java. Principios de POO Clases, Objetos y Mensajes Herencia Capacitación Java Semana 1 Lenguaje Java (I) • Lenguaje de programación para diseñar aplicaciones que funcionen en conjunto con Internet, en múltiples plataformas de hardware y software y en dispositivos tan variados como computadoras, televisores, teléfonos celulares, etc. 3 Lenguaje Java (II) • Fue desarrollado por Sun Microsystems en 1991 (Proyecto GREEN) para el control de dispositivos electrónicos. • Está basado en gran medida en el lenguaje C++. • JAVA está orientado a objetos • JAVA es sencillo de aprender (tiene un conjunto más sencillo pero poderoso que otros lenguajes parecidos) 4 Características de Java (I) – Pequeño (programas más rápidos para descargar) – Seguro (minimiza los riesgos de seguridad asociados a los “hackers”) – Portable (permite ser ejecutado en diferentes plataformas sin modificación alguna: Windows, Macintosh, etc.) 5 Características de Java (II) – Tiene capacidad de ser utilizado en páginas Web (“applets”). – Soporta interfaces gráficas de usuario, conectividad de redes y bases de datos, y otros. – Es un lenguaje robusto para desarrollar una amplia variedad de programas. 6 Máquina Virtual de Java • Encargada de interpretar los códigos bytecodes ya compilados. • JDK( Java Development Kid) – Paquetes de clases ya definidas • SDK (Software Develpment Kid) – Clases, Herramientas de compilación (javac) y ejecución (java) • Ultima versión J2SE 1.4 – www.java.sun.com/j2se/1.4 7 Herramientas de Desarrollo • Vienen en el JDK – Compilador • javac – Máquina Virtual • Java – Visor de Applets • appletViewer 8 Edición de un Programa • Utilizar editor de texto • Almacenar con extension .java – Ejemplo.java • El nombre de la clase debe coincidir con el nombre del archivo • Java es sensible a mayúsculas. 9 Compilación de un Programa • Luego de escribir el código debe compilarlo • Digite la orden javac Ejemplo.java • Detección y corrección de errores • Se crea el archivo Ejemplo.class 10 Ejecución de un Programa • El archivo .class tiene el bytecode del programa • Debe usar el interprete javac – java Ejemplo • No usar extension .class al ejecutar 11 El Path de Java • Modificar el archivo autoexec.bat para poder compilar de donde sea. • SET PATH= %PATH%; C:\jdk1.1.2\bin • SET CLASSPATH = .;C:\ 12 Estructura de un Programa (I) • Un programa se compone de una o más clases • La clase principal debe tener un método main() • La librerías o datos predefinidos deben indicarse con import • Nombre del archivo fuente debe coincidir con el de la clase principal 13 Estructura de un Programa (II) • Incluye: – – – – – Declaración de importación de paquetes Declaración de clases Método main() Métodos definidos por el usuario Comentarios del programa • Ver ejemplo archivo Ejemplo1.java 14 Declaración import • Las clases están agrupadas en paquetes • La directiva import las incorpora al programa • La sintaxis es – Import nombrePaquete.nombreClase; • Debe importar solo las clases que necesita 15 Declaración de Clases • Los programas son colecciones de clases • Debe haber al menos una y con método main(), y de ser necesario otros métodos y variables Class Potencia { int total; public static void main (String [] arg) { int i,j; j=0,i=2; } int resta() { total--; } } 16 Métodos definidos por el usuario • Contienen sentencias que hacen una tarea • Los métodos se definen en la clase a la que pertenecen • Estructura: tipo_retorno nombreMetodo ( lista_parametros) { sentencias return expresión } • Ver ejemplo archivo Evaluar.class 17 Comentarios • Comentarios de Bloque /* todo esto es un comentario y continua aquí */ • Comentarios de línea i=100; // esto es un comentario //esto es otro 18 Errores comunes • Errores de sintaxis • Errores lógicos • Errores de tiempo de ejecución 19 Elementos de un programa • • • • • Identificadores Palabras reservadas Comentarios Signos de puntuación y separadores Paquetes – java.lang, java.io, java.util – Java.lang es el núcleo, no se declara y contiene a System, Integer, String, Math 20 Aplicaciones y Applets • Aplicación es un programa que corre bajo el sistema operativo. • Applet es una aplicación que se trasmite por Internet y se un navegador con JVM 21 Ejemplo Hola Mundo public class HolaMundo { public static void main(String[] args) { System.out.println(“Hola Mundo!"); } } Elementos del Lenguaje Java Tipos de datos en Java Constantes, Variables Entradas y Salidas Clases de tipos básicos Operadores y expresiones Conversiones de Tipos Capacitación Java Semana 2 Tipos de Datos en Java • Tipo de Datos: conjunto de valores que puede tomar una variable • Los tipos de datos en Java son: – Enteros • int, byte, short y long – Flotantes (reales) • float, double – Caracteres • Letras, digitos, simbolos – Lógicos (boolean) • true o false 24 Tipo Dato void • Se usa en métodos que no retornan valor alguno. – void imprimir(); – void desplegar(); • No se pueden declarar variables tipo void, solo se usa en métodos 25 Constantes o Literales • Enteras 123456 en lugar de 123.456 1024 es int 1024L es long Octal 0777 Hexadecimal 0XFF3A 0xad12 • Reales duoble 85.236 .63 83. 45e-2 float 85.236F .63f 1.1E3 26 Constantes o Literales • Carácter ‘a’ ‘Z’ char sigma = ‘\344’ ‘\n’ ‘\t’ ‘\b’ ‘\”’ // caracteres de escape • Aritmética Caracteres char m = (char) (‘T’ + 5); • Constantes final – final int MESES = 12; 27 Constantes o Literales • Enteras 123456 en lugar de 123.456 1024 es int 1024L es long Octal 0777 Hexadecimal 0XFF3A 0xad12 • Reales duoble 85.236 .63 83. 45e-2 Float 85.236F .63f 1.1E3 28 Declaración de variables • Primero se anota el tipo, luego el nombre y se permite inicializar el valor <tipo dato> < nombre variable> = <valor inicial> • Ejemplos int numero = 0; int suma, resta ; long distancia = 40000L; float t = 2.5F; double prom = 25.25; boolean esta = false; char letra = ´j´; 29 Variables • Es una posición con nombre en memoria don de se almacena un dato • Tiene un nombre que describe su propósito • Hay que declararlas antes de usarlas • En una clase • En un método o bloque de código • En un punto de utilización 30 Duración de la variable • Dependiendo de donde se defina • El alcance o ámbito va desde declaración hasta limite del bloque – Variables locales – Variables de clase • Acceso controlado mediante private, protected y public 31 Reglas de Acceso • private – Solo visible en la clase • protected – Vista en todo el paquete • public – Accesible desde cualquier lugar 32 Entradas y Salidas • La entrada y salida se lee en flujos • La entrada básica es el teclado y la salida es la pantalla • La clase System define dos objetos con este fin – System.in (entrada) – System.out (salida) 33 Salida (System.out) • Metodos utilizados – print() – println() – flush • Ejemplo int x= 1000; System.out.print(“El valor de x es ” + x) 34 Entrada (System.in) • System.in.read() // lee solo un caracter • Necesita un objeto de la clase InputStreamReader y lo inicializa con la System.in • Ejemplo BufferedReader entrada = new BufferedReader( new InputStreamReader(System.in)); String palabra; palabra = entrada.readLine(); System.out.println(“Valor leido ” + palabra ); 35 Clases Tipos Básicos • Integer – Integer n = new Integer (250); – parseInt() – intValue(); – toString; • Long – Long distancia = new Long (45000L); – longValue() 36 Clases Tipos Básicos • Float – – – – Float n = new Float (250.25F); valueOf(); // recibe un cadena floatValue(); toString; • Duoble – Double n = new Double (250.25); – valueOf(); – doubleValue(); • Ejemplo Área del Triangulo Area.Java 37 Operadores y Expresiones • Una expresión es una sentencia que retorna un resultado • Similar a una ecuación – 3 + x +25 * y – Tenemos operadores(+ *) y operandos (3,25,x, y) • Unarios, Binarios y otros • Asignación = • Ej a= 20; b=c=f=0; 38 Operadores Aritméticos Operador Ej. Uso Descripción + op1 + op2 Suma op1 y op2 - op1 - op2 Resta op2 de op1 * op1 * op2 Multiplica op1 por op2 / op1 / op2 Divide op1 entre op2 % op1 % op2 Calcula el remanente. ArithmeticDemo.java Operadores Incremento/Decremento Operador Uso Descripción ++ op++ Incrementa op en 1. Asigna primero, incrementa después. ++ ++op Incrementa op en 1. Incrementa primero, asigna después. -- op-- Decrementa op en 1. Asigna primero, decrementa después. -- --op Decrementa op en 1. Decrementa primero, asigna después. Operadores Relacionales Operador Uso Retorna verdadero > op1 > op2 op1 es mayor que op2 >= op1 >= op2 op1 es mayor que o igual que op2 < op1 < op2 op1 es menor que op2 <= op1 <= op2 op1 es menor que o igual que op2 == op1 == op2 op1 y op2 son iguales != op1 != op2 op1 y op2 son diferentes Ej. RelationalDemo.java Operadores Condicionales Operador Uso Retorna verdadero si && op1 && op2 op1 y op2 son ambos verdad. (shortcircuit) || op1 | | op2 o op1 o op2 es verdad. (shortcircuit) ! !op op es falso. & op1 & op2 op1 y op2 son ambos verdad. (nonshortcircuit) | op1 | op2 o op1 o op2 es verdad. (non-shortcircuit) ^ op1 ^ op2 si op1 y op2 son diferentes – esto es si uno u otro de los operandos es verdad, pero no los dos. Operadores de Cambio Operador Uso Operación >> op1 >> op2 Cambia bits de op1 a la derecha basado en op2 << op1 << op2 Cambia bits de op1 a la izquierda basado en op2 >>> op1 >>> op2 Cambia bits de op1 a la derecha basado en op2 (unsigned) Operadores Bitwise Operador Uso Operación & op1 & op2 Bitwise and | op1 | op2 Bitwise or ^ op1 ^ op2 Bitwise xor ~ ~op2 Bitwise complement Operadores de Asignación Operador Uso Equivalente 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 <<= op1 <<= op2 op1 = op1 << op2 >>= op1 >>= op2 op1 = op1 >> op2 >>>= op1 >>>= op2 op1 = op1 >>> op2 Otros Operadores Operador Descripción ?: Abreviación if - else [] Empleado para declarar arreglos y accesar elementos. . Usado para formar nombres cualificados ( parametros Delimita una lista de parámetros separados por ) coma ( tipo ) Convierte un valor al tipo especificado new Crea un nuevo objeto ó un nuevo arreglo instanceof Determina si su primer operando es una instancia del segundo operando. (descendencia directa o no). Conversiones de Tipos • Puede ser explicita o implícita – Implícita: valor de un tipo se convierten a tipos mayores – Explicita: conversión usando el cast – int precios =(int)25.36 + (int)36.36 47 Flujos de Control Control condicional Anidamientos Control iterativo Variables lógicas como interruptores o banderas Ciclos anidados Capacitación Java Semana 3 Estructuras de Control • Controlan el comportamiento de un programa, proceso o método • Permite combinar instrucciones • Hay tres tipos de estructuras para controlar el flujo: – Secuencia – Selección – Repetición 49 Sentencia if if (Expresión) Acción; ó if (Condición) Sentencia; • Evalúa la Expresión o Condición si esta es verdadera realiza la Acción o las Sentencias • En el caso contrario continua con la siguiente sentencia del programa • Varias acciones usan {} 50 Sentencia if • Ejemplo Valor Absoluto: import java.io*; class Absoluto { public static void main(String [] a ) throws IOException { int valor; BufferedReader entrada = new BufferedReader( new InputStreamReader (System.in)); String dato; System.out.println(“Introduzca un valor entero:” ); System.out.flush( ); dato = entrada.readLine(); valor = Integer.parseInt(dato); if (valor < 0) valor =valor * -1; System.out.println(“El valor absoluto es ” + valor); } } Ver Absoluto.java 51 Sentencia if-else If (Expresión) Acción1; else Acción2; • • • La Acción son sentencias terminadas en ; Puede haber un grupo de sentencias encerradas entre {} Si Expresión es verdadera ejecuta Acción1 y de lo contrario hace Acción2 52 Sentencia if-else • Ejemplo Mayor: import java.io.*; public class Mayor { public static void main(String []ar) throws IOException { int numero1, numero2; BufferedReader lectura = new BufferedReader(new InputStreamReader(System.in)); String cadena; System.out.print("Introduzca Primer Numero Entero: "); System.out.flush(); cadena = lectura.readLine(); numero1 = Integer.parseInt(cadena); System.out.print("Introduzca Segundo Numero Entero: "); System.out.flush(); cadena = lectura.readLine(); numero2 = Integer.parseInt(cadena); if (numero1 > numero2) System.out.println("El mayor es " + numero1); else System.out.println("El mayor es " + numero2); } } } Ver Mayor.java 53 Sentencia if básica if ( a>b) && (a<c) { a=b; //varias sentencias usar bloques { } b=b++; }else { b=a; a=a--; } 54 Sentencias if – else Anidadas If (expresion1) sentencias1 else if (expresion2) sentencias2 else if (expresion3) sentencias3 else sentencias4 Ver Mayorde3.java 55 Sentencia switch • Su utiliza para seleccionar una alternativa de muchas • Es útil cuando la selección se basa en un valor • La expresión se denomina expresión de control o selector • Pueden ser del tipo int , char, boolean, pero no double o string 56 Sentencia switch switch (selector) { case etiqueta1: case etiqueta2: case etiqueta3: default: sentencias1; break; sentencias2; break; sentencias3; break; sentencias4; //opcional } 57 Ejemplo switch Switch (opcion) Ver Notas.java { case 0: case 1: case2 : System.out.print(“Menor que 3”) break; case3: System.out.print(“Igual a 3”) break; default: System.out.print(“Mayor que 3”) } 58 Expresión Condicional Operador ? • Tiene formato C ? A : B • Condición ? Expresión1 : Expresión2 • Pregunta por valor de Condición, si es verdadera ejecuta la Expresión1, sino ejecuta la Expresión2 59 Ejemplo C ? A : B int entrada1; int entrada2; entrada1 = Integer.parseInt(lectura.readline()); entrada2 = Integer.parseInt(lectura.readline()); int menor = (entrada1 < entrada2) ? entrada1 : entrada2 // asigna a menor la entrada con menor valor Ver MayorMenor.java 60 Sentencias Repetitivas • Un bucle repite una secuencia de sentencia un número de veces • Las sentencias se denominan cuerpo del bucle • Cada repetición se llama iteración 61 Diseño de Ciclos • Debe considerar lo siguiente para elaborar ciclos efectivos: – El cuerpo del bucle – Sentencia de inicialización – Condiciones de terminación 62 Sentencia while while (condición) sentencia; ó while (Condición) { sentencia 1; … sentencia n; } • Las sentencias se ejecutan mientras la condición sea verdadera • Varias acciones usan {} 63 Sentencia while • Ejemplo Contador y Asteriscos: int x =0; while(x<10) System.out.println(“X: “ + x++); …. n=20; int contador = 0; //iniciación while(contador < n) // prueba condición { System.out.print(“ * ”); contador ++; //actualización } 64 Ciclos con Centinelas • Un centinela es un valor que sirve para terminar el ciclo. {// uso de centinelas final int valorParada = -1; int dato =Integer.parseInt(entrada.readLine()); while(dato != valorParada) { // … cuerpo del ciclo suma += dato; dato =Integer.parseInt(entrada.readLine()); }// fin while } 65 • • Ciclos usando Indicadores o Banderas Se utilizan variables tipo boolean como indicadores o banderas para controlar el ciclo. El indicador se inicializa false antes de entrar el ciclo y cambia a true cuando se da un hecho especifico. El ciclo se ejecuta mientras el indicador es false. digitoLeido = false; while(!digitoLeido) { System.out.printl(“Introduzca un digito”); dig = System.in.read(); //lee un carácter digitoLeido = ((‘0’>=dig) && (dig >= ´9´)); …. } 66 Uso de break en ciclos • El comando break se utiliza para terminar un ciclo anormalmente. • Se puede usar en ciclos while, for, do-while, aunque su uso es mas frecuente en switch. While (condicion1) { …. if (condicion2) break; …. } 67 Uso de break con etiquetas • Formato Break etiqueta; • Transfiere el control a donde esta la etiqueta inicio: While (condicion1) { if (condicion2) break inicio; if (condicion2) break salir; } salir: 68 Ciclos while(true) • Los ciclos se ejecutan mientras la condición sea verdadera • Se define la condición como verdadera y nunca cambia …. While (true) { contador++; … if contador > maximo break; ….. } 69 Sentencia for • Su uso en indicado en ciclos controlados por un contador • Ejecuta sentencias un número fijo de veces. • Sintaxis for (Inicialización; Condición; IncreóDecre) sentencias; //imprime Hola 10 veces For (int i = 0 ; i<10 ; i++) System.out.println(“Hola!”); 70 Partes del for • Inicialización: define valor de variables de control. • Condición: expresión lógica que determina si el ciclo se hace o no. • Incremento: aumenta o disminuye la variables(s) de control • Sentencias: son las acciones que se ejecutan en el ciclo. 71 Formato ascendente y descendente • Ascedente for (int n= 1; n<=10; n++) System.out.println(“\t” + n +”\t” + n * n); • Descentente for (int n= 10; n>5; n--) System.out.println(“\t” + n +”\t” + n * n); 72 Sentencias nulas en for • Cualquiera de las partes del for puede ser nula. • Se usa ; • Puede simular un while for (; contador < 5 ; ) { contador ++; System.out.print(“Ciclo! ” + “\t”) } 73 Sentencia continue • Se usa en ciclos y hace que continué con la siguiente iteración • En el while/do-while lo envía a la condición de control • En el for pasa a la expresión de incremento • Se puede usar con etiquetas continue; continue etiqueta; 74 Sentencia do-while • Es un ciclo que se ejecuta al menos una vez, y luego revisa la condición para iterar o salir del ciclo. • Formato do sentencias; while (expresión) 75 Ciclos Anidados • Constan de un bucle externo con uno más internos. Puede anidar for, while, do-while for(int x=1; x<= Xultimo; x++) { for(int y =1; y<= Yultimo; y++) { int producto; producto = x * y; System.out.println( x + “ * ” + y + “=” + producto); } } 76