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