Академический Документы
Профессиональный Документы
Культура Документы
JAVA I
(Primera Parte)
Programacin en Java
Modulo 1:Comenzando
Requerimientos
Hardware Virtualmente cualquier hardware Intel, Sparc, PowerPC Con 128 Mb en RAM Un espacio en disco duro de 140 Mb Software Entorno de programacin Java Developer Kit 1.4.x o superior Java Doc 1.4.x o superior Entorno de desarrollo Editor de texto como notepad Editores o IDE de Java como Java Creator o Netbeans
3
LANIA 2007
Historia de Java
Ultima versin. JDK 1.5.x
LANIA 2007
Qu es Java?
Es un lenguaje de programacin Es un compilador Sistema de ejecucin Juego de herramientas de desarrollo API Es una mquina virtual
LANIA 2007
Qu es Java?
Lenguaje de programacin Java Programas fuente de Java
Bytecode compilado
API de Java
LANIA 2007
Caractersticas de Java
Uso de la orientacin a objetos Posibilidad de desarrollar aplicaciones distribuidas Posibilidad de procesamiento paralelo (threads) Posibilidad de incorporar seguridad Seguridad bsica inherente Posibilidad de ejecutarse en mltiples plataformas
LANIA 2007
LANIA 2007
Programacin tradicional
LANIA 2007
Programacin Java
La plataforma Java
LANIA 2007
10
Cargador de clases
Carga todas las clases necesarias para la ejecucin de los programas Mantiene la seguridad al separar las clases cargadas localmente por clases cargadas por la red Previene spoofing (Una clase se hace pasar por otra)
LANIA 2007 12
Verificador de cdigo
Se asegura por ejemplo que: El cdigo cumpla con la especificacin de la JVM Qu el cdigo no viole la integridad del sistema Que los tipos de parmetros sean los adecuados
LANIA 2007
13
Garbage Collector
Muchos lenguajes como C pueden crear alojamiento dinmico de datos en memoria. En estos lenguajes el desalojamiento de los datos de la memoria es un proceso manual En Java existe un proceso regular que libera la memoria Esta operacin es automtica y libera al programador de esta labor
LANIA 2007 14
Intrprete (java)
Depurador (jdb)
Visualizacin de applets
LANIA 2007
15
Compilando:
javac nombre_clase_publica.java
Resultado:
nombre_clase_publica.class
Corriendo:
java
LANIA 2007
nombre_clase_publica
16
EJERCICIOS
Instalar el JDK
Netbeans Javadoc
LANIA 2007
17
Programacin en Java
Modulo 2:Programacin Orientada a Objetos
Orientacin a objetos
Tcnica para el modelado de sistemas Actores (objetos)
Caractersticas (atributos) Operaciones o funcionalidades (mtodos)
LANIA 2007
19
Atributos y operaciones
Atributos: caractersticas de un objeto
Datos Propiedades Caractersticas
Clases e Instancias
LANIA 2007
21
Clases
Una clase:
Es una plantilla o diseo Puede compararse a un molde o un plano arquitectnico
Modelo de Clases
En UML, una clase es representada por un rectngulo que posee tres divisiones:
<N o m b r e C lase> < A tr ib u to > < M to d o >()
LANIA 2007
23
Mtodos
LANIA 2007
24
Cliente Caracteristicas propias, como: Razn social Posicin X Posicin Y KAOS S.A. X: 19 , Y: 17
Luis Diaz X: 1 , Y: 22
LANIA 2007
25
Mecnicos
Mecnico
Nombre: Jorge Castro X: 6 Y: 7
Mecnico
Nombre: Luis Diaz X: 1 Y: 22
Mecnico
Nombre: Pedro Perez X: 17 Y: 12
Clientes
Cliente
Nombre: INETI S.A. X: 6 Y: 12
Cliente
Nombre: KAOS S.A. X: 19 Y: 17
LANIA 2007
26
Cliente llama
Pedro Perez X: 17 , Y: 12
Luis Diaz X: 1 , Y: 22
LANIA 2007
27
Mecnicos
Mecnico
Nombre: Jorge Castro X: 6 Y: 12 mover(6, 12)
Mecnico
Nombre: Luis Diaz X: 1 Y: 22 mover( , )
Mecnico
Nombre: Pedro Perez X: 19 Y: 17 mover(19, 17)
Clientes
Cliente
Nombre: INETI S.A. X: 6 Y: 12
Cliente
Nombre: KAOS S.A. X: 19 Y: 17
LANIA 2007
28
Mecnicos
Mecnico
Nombre: Jorge Castro X: 6 Y: 12 mover(6, 12)
Mecnico
Nombre: Luis Diaz X: 1 Y: 22 mover( , )
Mecnico
Nombre: Pedro Perez X: 19 Y: 17 mover(19, 17)
Clientes
Cliente
Nombre: INETI S.A. X: 6 Y: 12
Cliente
Nombre: KAOS S.A. X: 19 Y: 17
Cliente
Nombre: NOVA A.G. X: 10 Y: 15
LANIA 2007
29
Pedro Perez X: 19 , Y: 17
Luis Diaz X: 1 , Y: 22
KAOS S.A. X: 19 , Y: 17
LANIA 2007
30
Uso de la documentacin
Frame de seleccin de paquete Frame de seleccin de clase
Programacin en Java
Modulo 3:Identificadores, Palabras Clave y Tipos
Identificadores
Un identificador es un nombre dado a una variable, mtodo o clase. En el lenguaje de programacin de java, un identificador comienza con una letra, guin bajo(_), o un signo de pesos($); puede ser de cualquier longitud; y otros que el primer caracter , puede contener alguna secuencia de letras, digitos, guiones bajos, o signos de pesos. Lo siguiente es una lista de identificadores vlidos. Aunque los cuatro son vlidos, los ltimos dos identificadores tienen aspectos no deseables: identifier userName _sys_var1 $change El cdigo fuente de programas escritos en lenguaje de programacin de Java es efectivamente en Unicode. Tenga cuidado de caracteres no-ASCII, porque Unicode puede soportar diferentes caracteres que se ven iguales.
33
LANIA 2007
Es igual que,
totals = a + b + c + d + e + f;
LANIA 2007 34
LANIA 2007
35
Comentarios
Los comentarios son cadenas de texto que el programador usa para entender y hacer legible Clsico de C su cdigo para otros
/* ClasicoHolaMundo.java */ public class ClasicoHolaMundo { /** * Clsico Programa "Hola Mundo!" */
Tipo javadoc
public static void main(String[] args) { // escribe por la salida estndar System.out.println("Hola mundo!"); } } LANIA 2007 36
Una lnea
Palabras reservadas
Palabras que pertenecen al lenguaje y que no se puede utilizar como nombres de variables o clases
LANIA 2007
37
LANIA 2007
38
LANIA 2007
39
Tamao
32 bits 64 bits
Rango
+/-3.40282347E+38F +/- 1.79769313486231570E+308
LANIA 2007
41
LANIA 2007
42
Programacin en Java
Modulo 4: Expresiones y control de flujo
Paso 2 Asignacin
identificador = valor; ID = 12;
LANIA 2007
46
LANIA 2007
LANIA 2007
48
Constantes
Para valores que no cambian una vez asignados:
final double IMPUESTO_IVA = 15.00;
Use la palabra reservada final para volverlo inmodificable El compilador mandara un mensaje de error en el caso de que se intente hacer un cambio en el valor de una constante
LANIA 2007
49
Operadores
Tipo de operador Operador + Aritmtico * / % > < Relacional >= <= !=
LANIA 2007
Descripcin Suma Resta Multiplicacin Divisin Mdulo Mayor que Menor que Mayor o igual que Menor o igual que Diferente Igual
Ejemplo a+b a-b a*b a/b a%b a>b a<b a>=b a<=b a!=b a==b
51
==
Operadores
Tipo de operador Lgico Operador ! && II = ++ -Asignacin += -= *= /= %= Casting
LANIA 2007 Instancia
Descripcin No Y O Asignacin Incremento en 1 Decremento en 1 Suma y asignacin Resta y asignacin Multiplicacin y asignacin Divisin y asignacin Mdulo y asignacin Convertir tipo Es instancia de clase?
Ejemplo !a a&&b aIIb a=b a++ o ++a a-- o --a a+=b a-=b a*=b a/=b a%=b (char)b a instance of b52
(tipo) instanceof
Expresiones complejas:
c = 25 - 5 * 4 / 2 - 10 + 4; Resultado de izquierda a derecha: 34 Resultado de acuerdo a las reglas de precedencia: 9
LANIA 2007
Promocin
Sucede automticamente cuando:
Asignamos un tipo menor a un tipo mayor
Asignamos tipo int a tipo long
LANIA 2007
55
Conversin de tipos
Disminuye el rango de valores (recortar") identificador_variable = (tipo_destino) valor int numero1 = 53; int numero2 = 47; byte numero3; numero3 = (byte) (numero1 + numero2); // No se pierden datos int myInt; long myLong = 99L; myInt = (int) (myLong); // no se pierden datos, ceros. int myInt; long myLong = 123987654321L; myInt = (int) (myLong); // Nmero pierde exactitud Convirtiendo tipos puntos flotante en enteros remueve los valores a la derecha del punto decimal
56
LANIA 2007
Los valores de punto flotante son por defecto double si no especificas que sean floats.
float float1 = 27.9; // causa error float float1 = 27.9F; // correcta float float1 = (float) 27.9; // correcta
LANIA 2007
57
Strings (Cadenas)
Las cadenas no son tipos de datos primitivos. Tiene ciertas funcionalidades que hacen que su uso sea comparable a los tipos primitivos. Declaracin: String s = ; // Cadena vaca String s1 = Hola; String s2 = Adios; Concatenacin: String s3 = s1 + y + s2 //s3 = Hola y Adios
LANIA 2007
58
Estructuras de Control
if
estructura
ESTRUCTURAS DE SELECCION
Se ejecuta o no una sentencia o bloque de sentencias segn se cumpla o no una determinada condicin.
if (condicin) {
sentencias
}
p.e. if (velocidad > 120) { System.out.println(Cuidado, su velocidad es excesiva); }
LANIA 2007 59
Estructuras de Control
if - else
estructura
ESTRUCTURAS DE SELECCION
if (condicin) {
}
sentencias else if (condicin) { sentencias sentencias
} else { }
p.e. if (a > b) { System.out.println(El nmero mayor es el + a); } else { System.out.println(El nmero mayor es el + b); }
LANIA 2007 60
Estructuras de Control
(?:)
estructura
ESTRUCTURAS DE SELECCION
Se relaciona con la estructura if-else. Este es el unico operador de Java que requiere tres operandos. El primer operando es una expresin booleana, el segundo es el valor que tomar la expresin si el primer operando es verdadero y el tercer operando si es falso. valor = (condicin booleana ? valor si verdadero : valor si falso )
LANIA 2007
61
Estructuras de Control
switch
estructura Es una estructura de seleccin multiple. Permite la seleccin de una sentencia o conjunto de sentencias entre mltiples casos. switch (expresion) { case valor1: sentencias; break; case valor2: case valor3: sentencias; break; ....... default : sentencias; break; }
LANIA 2007 62
ESTRUCTURAS DE SELECCION
Estructuras de Control
while
estructura
ESTRUCTURAS DE REPETICION
Permite que mientras se cumpla una determinada condicin se repita una sentencia o un bloque de sentencias.
while (condicin) {
sentencias
LANIA 2007
63
Estructuras de Control
ESTRUCTURAS DE REPETICION
do - while
estructura
Una sentencia o grupo de sentencias se repiten mientras se cumpla una determinada condicin. En esta estructura la condicion se evalua despues de ejecutar las sentencias.
do {
sentencias
} while (condicin);
LANIA 2007 64
Estructuras de Control
for
estructura
ESTRUCTURAS DE REPETICION
}
p.e. for (int i = 0 ; i < 5 ; i++) { System.out.print ( i ); System.out.println (Hola a todos. ); }
LANIA 2007 65
El mtodo main
El mtodo main es la primera operacin que se ejecuta en un programa Java. Declaracin: public static void main(String[] args) Se encarga de poner en marcha el programa Solo puede haber uno.
LANIA 2007
66
Ejercicio 4.1
Construya un programa que convierta de grados Fahrenheit a grados centgrados y viceversa F = (9/5)*C + 32 C = (5/9)*(F -32) Compruebe sus resultados para: F = 212 F = 500 C = 100 C = 500
LANIA 2007
67
Ejercicio 4.2
1. Escriba un programa que simule tirar dos dados
(int)(Math.random()*6) + 1;
2. Cuntas veces se debern tirar los dados para que la suma de los dados sea 10?
LANIA 2007
68
Ejercicio 4.3
Escriba un programa que convierta un nmero decimal a hexadecimal. El cambio de base se realiza mediante divisiones sucesivas por 16 las cuales el resto determinan los dgitos hexadecimales.
LANIA 2007
69
Ejercicio 4.4
Escriba un programa que muestre si un billete de lotera tuvo o no tuvo reintegro. El reintegro se obtiene cuando el ltimo digito del billete coincide con el del billete ganador. Declare el billete de lotera ganador como una constante
LANIA 2007
70
Programacin en Java
Modulo 5: Arreglos
1 public class Edades 2 { 3 public void calculaEdades() 4 { 5 int uno = 1; 6 int dos = 2; 7 int tres = 3; 8 int cuatro = 4; 9 int cinco = 5; 10 int seis = 6; 11 int siete = 7; 12 int ocho = 8; 13 int nueve = 9; 14 int diez = 10; 15 } 16}
LANIA 2007
72
La solucin: arreglos
Los arreglos te permiten almacenar tantos valores como necesites Los arreglos pueden contener tipos primitivos o tipos referencia
char [] grupos;// arreglo de char int [] edades;// arreglo de int String [] nombres;// arreglo de String Alumno [] alumnos;// arreglo de Alumno
LANIA 2007
74
LANIA 2007
75
Arreglos y tipos
Arreglos son referencias a objetos Arreglos de ints tienen el tipo arreglo de int" Arreglos de Alumno tienen el tipo arreglo de referencias a Alumno"
LANIA 2007
76
LANIA 2007
77
LANIA 2007
78
LANIA 2007
79
LANIA 2007
80
LANIA 2007
81
LANIA 2007
82
LANIA 2007
83
LANIA 2007
84
LANIA 2007
85
LANIA 2007
86
Todos los arreglos son objetos Declarando un arreglo se declara variables referencia
LANIA 2007
88
LANIA 2007
89
LANIA 2007
91
LANIA 2007
92
Arreglos bidimensionales
Como una hoja de clculo, con lneas y columnas Ejemplo Ventas mensuales figuran para varios aos Misma sintaxis que arreglos unidimensionales, excepto por un conjunto adicional de corchetes
LANIA 2007
93
Arreglos bidimensionales
tipo [][] identificador = new tipo [tamao_1][tamao_2];
int [] calificacionesMensuales = new int[12]; int [][] calificacionesMensualesGrupo = new int[numeroAlumnos][ 12];
LANIA 2007
94
Arreglos bidimensionales
public class Arreglos { public static void main(String[] args) { int [][] arregloIrregular = new int [5][]; int [] fila1 = new int [3]; int [] fila2 = new int [4]; int [] fila3 = new int [5]; int [] fila4 = new int [6]; int [] fila5 = new int [7]; arregloIrregular[0] = fila1; arregloIrregular[1] = fila2; arregloIrregular[2] = fila3; arregloIrregular[3] = fila4; arregloIrregular[4] = fila5;
LANIA 2007 95
LANIA 2007
96
Arreglos bidimensionales
for(int columna = 0; columna < arregloIrregular.length; columna++) for(int fila = 0; fila < arregloIrregular[columna].length; fila++) arregloIrregular[columna][fila] = (int) (Math.random() * 100 + 1); for(int columna = 0; columna < arregloIrregular.length; columna++) { for(int fila = 0; fila < arregloIrregular[columna].length; fila++) System.out.print(arregloIrregular[columna][fila] + "\t"); System.out.println(); } } }
LANIA 2007
97
Ejercicios 5.1
Escriba un programa que obtenga el nmero ms grande de un vector de enteros. Genere los nmeros de manera aleatoria Que saque el promedio
LANIA 2007
98
Ejercicio 5.2
Escriba un programa que convierta un nmero decimal a hexadecimal. El cambio de base se realiza mediante divisiones sucesivas por 16 las cuales el resto determinan los dgitos hexadecimales. Guarde los digitos en un arreglo de tipo char e imprmalos correctamente
LANIA 2007
99
Ejercicio 5.3
Escriba un programa que sume dos matrices de 4 x 4. Inicialice los elementos de la matriz de manera aleatoria Imprima los resultados de cada matriz
LANIA 2007
100
Ejercicio 5.5
Elabore un programa que represente el juego de ajedrez en una matriz. La figuras se representaran por caracteres Ejemplo: Pen: P Reina: Q Rey: K Torre: T Caballo: C Alfil: A Libre: _ Imprima el tablero
LANIA 2007 101
Programacin en Java
Modulo 6: Clases y Objetos
Declaracin de clases
Sintaxis:
Ejemplo:
LANIA 2007
103
Declaracin de Atributos
Sintaxis:
Ejemplo:
LANIA 2007
104
Declaracin de Constructores
Sintaxis:
Ejemplo:
LANIA 2007
105
Declaracin de Mtodos
Sintaxis:
Ejemplo:
LANIA 2007
106
Definicin de Clases
class nombreClase { private int variable; public nombreClase() { } Delimitadores public void nombreMetodo() { <Conjunto de instrucciones> } public static void main(String[] args) { nombreClase app = new nombreClase(); } } Mtodo Mtodo Constructor Atributo
LANIA 2007
108
public int nombreMetodo2(int parametro) { int variable; variable = parametro + 2; return variable; } Uso del parmetro
LANIA 2007
110
Creando objetos
Paso 1 Declaracin nombreClase identificador; Alumno miAlumno; El tipo de la variable es referencia_a_nombre_clase (referencia a Copiadora) Paso 2 Inicializacin identificador = new NombreClase(); miAlumno = new Alumno(); Declaracin e inicializacin juntas NombreClase identificador = new NombreClase(); Alumno miAlumno = new Alumno();
LANIA 2007
111
Creando objetos
Paso 3 Asignar valores
An no has asignado valores a las variables del objeto tales como el precio Variables son inicializadas con valores por defecto Para asignar valores:
Declara e inicializa las variables de objeto Especifica la referencia al objeto cuando asignes el valor
LANIA 2007
112
Creando objetos
Paso 3 Asignando valores
1 public class Alumno 2{ 3 String nombre; 4 float promedio; 5 boolean vigente; 6 public static void main (String args[]) 7 { 8 Alumno miAlumno; 9 miAlumno = new Alumno(); 10 miAlumno.nombre = Juan Prez; 11 miAlumno.promedio = 8.99F; 12 miAlumno.vigente = true; 13 14 Alumno otroAlumno; 15 otroAlumno = new Alumno(); 16 otroAlumno.nombre = Luis Garca; 17 otroAlumno.promedio = 7.99F; 18 otroAlumno.vigente = false; 19 } 20} LANIA 2007 113
Constructores
Mtodos ejecutados automticamente al crear un objeto de una clase (new). Se usan para llevar a cabo labores de inicializacin. Simplifican la sintaxis y apoyan el encapsulamiento de los datos. Los mtodos constructores de una clase tienen que tener el mismo nombre que la clase. class Cliente {
// Constructor de la clase Cliente Cliente (String str, long num) { ...; } }
LANIA 2007
114
// Atributo // Mtodo
115
Ejemplos de constructores
class Cliente { String nombre; long dni; Cliente (String str, long num) { nombre = str; dni = num; } } class CuentaBancaria { long numero; Cliente titular; long saldo; CuentaBancaria (long num, Cliente clt, long s) { numero = num; titular = clt; saldo = s; } }
LANIA 2007 116
Ejemplos de invocacin
Automticamente al crear objetos.
Cliente cliente1 = new Cliente ("Luis Gomez", 25672046); CuentaBancaria cuenta1 = new CuentaBancaria (6831531, cliente1, 100000); CuentaBancaria cuenta2 = new CuentaBancaria (8350284, new Cliente ("Pilar Garcia", 15165442), 200000);
LANIA 2007
117
LANIA 2007
118
1 public class Alumno 2{ 3 public static void main (String args[ ]) 4 { 5 String nombre = Juan Prez; 6 int edad = 12; 7 System.out.println(Nombre del alumno: "+nombre); 8 System.out.println(Edad del alumno: "+ edad); 9 } 10}
LANIA 2007
120
Mtodo trabajador
LANIA 2007
Llamando un mtodo
Tpicamente se llama un mtodo desde un mtodo diferente El mtodo que llama se detiene y el mtodo trabajador se ejecuta El mtodo continua en el punto siguiente a donde llamo al mtodo trabajador El mtodo que llama y el mtodo trabajador pueden estar contenidos en la misma o en diferente clase Se pueden llamar mtodos en cualquier orden
LANIA 2007 122
Sintaxis y ejemplos
En la misma clase Mtodo_trabajador ([ valores_argumentos]); 1 public class Alumno 2 { 3 public void metodoLLama() 4 { 5 6 informacionAlumno(); 7 } 8 9 public void informacionAlumno () 10 { 11 System.out.println("La Edad del alumno es de 12 aos"); 12 } 13}
LANIA 2007 123
Sintaxis y ejemplos
LANIA 2007
124
Pasando argumentos
Se incluyen en los parntesis de los mtodos que llaman Pasan literales o variables Se presentan en el orden establecido en la declaracin del mtodo
Nota: Todos los parmetros a mtodos se pasan por valor
LANIA 2007 125
Sintaxis y ejemplos
LANIA 2007
126
Sintaxis y ejemplos
Diferente clase: programa Alumno
1 public class Alumno 2 { 3 4 public void informacionAlumno (int edad) 5 { 6 System.out.println("La Edad del alumno es de " + edad + " aos"); 7 } 8}
LANIA 2007
127
La expresin en la cual se llama al mtodo es igual al valor de retorno Puedes combinar la llamada y el uso del valor de retorno en una lnea, cuando se use el valor de retorno
int suma = libreria.suma( 10, 2); if (libreria.suma( 10, 2) > MAXIMO);
LANIA 2007 128
La referencia this
public class Imprimir { private String s=""; public Imprimir(String s) { this.s = s; } public void ejecuta() { System.out.println(s); } public void concatena(Imprimir Otro){ this.ejecuta(); Otro.ejecuta(); } }
LANIA 2007 129
public static void main(String[] args) { Imprimir a = new Imprimir("Hola"); Imprimir b = new Imprimir("Mundo"); a.ejecuta(); a.concatena(b); }
Ocultamiento de datos
Supongamos el siguiente cdigo:
Da invlido Combinacin Invlida No hay verificacin
LANIA 2007
130
Ocultamiento de datos
Solucin
LANIA 2007
131
Encapsulamiento
Los atributos solo pueden ser accedidos dentro del objeto Existen mtodos pblicos para acceder a los atributos
Alumno
-clave -nombre -CURP -direccion +setNombre( ) +getNombre( ) +setCURP( ) +getCURP( )
LANIA 2007 132
LANIA 2007
133
Sobrecarga de mtodos
public class SobreCarga { private int x; private float y; /** Sobrecarga de constructores */ public SobreCarga(int x) { this.x = x; } public SobreCarga(float y) { this.y = y; } /** Sobrecarga de mtodos */ public boolean set(int x){ this.x = x; } public boolean set(float y){ this.y=y; } }
LANIA 2007
134
Sobre herencia
Una escuela tiene un sistema de control escolar que modela las siguientes clases:
Sobre herencia
Para reducir la duplicacin se usa herencia:
Todos los miembros Persona estn disponibles para ser Catedratico y Alumno.
LANIA 2007 136
Definicin de herencia
Permite que elementos comunes puedan ser definidos en una clase y ser compartido por otras Clases de las que se hereda: superclases o clases padre Clases que heredan: subclases o clases hijo
LANIA 2007
137
Sintaxis y ejemplo
Sintaxis
Class nombre_subclase extends nombre_superclase { sentencias_subclase }
LANIA 2007
138
Sintaxis y ejemplo
Ejemplo public class Persona { private String nombre; private int edad; private String curp; public Persona(){ curp = ""; } public Persona(String nombre,in edad) { setNombre(nombre); setEdad(edad); }
LANIA 2007 139
Sintaxis y ejemplo
public void setNombre(String nombre) this.nombre = nombre; } public String getNombre() return nombre; } public void setEdad(int edad) this.edad = edad; } { {
LANIA 2007
140
Sintaxis y ejemplo
public int getEdad() return edad; } {
public void setCurp(String curp) this.curp = curp; } public String getCurp() return curp; } }
LANIA 2007
141
Clase Hijo
public class Catedratico extends Persona { private float salario; private String cedulaProfesional; public Catedratico(){ salario = 2500F; cedulaProfesional = ""; } public Catedratico(String nombre, int edad, char sexo){ super(nombre, edad, sexo); }
LANIA 2007
142
Clase Hijo
public void setSalario(float salario) { this.salario = salario; } public float getSalario() { return salario; } public void setCedulaProfesional(String asignatura) { this.asignatura = asignatura; } public String getCedulaProfesional() { return cedulaProfesional; } } LANIA 2007
143
Probando herencia
Una clase solo puede heredar de una superclase a la vez Prueba la herencia con la frase es un El ejemplo Persona, Catedratico, y Alumno es correcto:
Un Catedratico es una Persona Un Alumno es una Persona
LANIA 2007 144
Paquetes
Conjunto de clases definidas por un directorio. Objetivo: Evitar conflictos entre smbolos. Cada clase pertenece siempre a un package. Si no se incluye ningn package para una clase, Java la incluye en el package DefaultPackage.
LANIA 2007
145
Declaracin de packages
graphics\Circle.java
package graphics; public class Circle { public void paint () { ... } ... } }
LANIA 2007 146
graphics\Rectangle.java
package graphics; public class Rectangle { public void paint () { ... } ...
Packages y directorios
Nombre del package = Path del directorio. CLASSPATH: Variable de entorno con directorios donde buscar packages. Packages importados automticamente:
java.lang, DefaultPackage, directorio actual directorio en CLASSPATH
LANIA 2007
148
Ejercicio 6.1
Implementar el siguiente diagrama de clases
cd Empresa Empleado + + + + Nombre: String Salario: float Empleado(String) Empleado(String, float) imprimDetalles() : void setSalario(float) : boolean
Secretaria
LANIA 2007
149
Ejercicio 6.2
Implemente una clase azar que devuelva un nmero aleatorio entre el 1 y el 99999. Implemente dos clases: dado y loteria que hereden de azar. En la clase Loteria agregue un mtodo que se llame digitoreintegro y devuelva el ltimo digito
LANIA 2007
150
Ejercicio 6.3
Elabore una clase para el manejo de nmeros hexadecimales. Imprima su valor Sume hexadecimales
cd Otros Hexadecimal + + + + Decimal: int Digitos[]: char Hexadecimal() Hexadecimal(int) imprime() : void suma(Hexadecimal) : Hexadecimal
LANIA 2007
151
Ejercicio 6.4
Elabore un programa para el manejo del ajedrez
LANIA 2007
152
Programacin en Java
Modulo 7:Funcionalidades avanzadas Laboratorio Nacional de Informtica Avanzada A. C. 2007
LANIA 2007
154
LANIA 2007
155
LANIA 2007
156
LANIA 2007
157
La clase Object
La clase Object es la raiz de todas las clase en Java Una clase cuya declaracin no tiene la clasula extends, implicitamente usa extends Object public class Punto { } Es equivalente a: public class Punto extends Object { }
LANIA 2007 158
LANIA 2007
159
Ejemplo
LANIA 2007
160
Comparacin de referencias
public static void main(String[] args) { // TODO code application logic here Empleado a = new Empleado(); Empleado b = new Empleado(); Empleado c = a; if(a == b) { System.out.println("a == b"); } c.setNombre("Otro Nombre"); System.out.println(a.getNombre()); }
LANIA 2007 161
162
El mtodo toString
Convierte un objeto a cadena Se usa durante la concatenacin de cadenas Sobrecargando este mtodo se puede lograr imprimir la informacin de un objeto en un formato definido por el usuario
LANIA 2007 163
Ejemplo toString
public class Punto { protected int x; protected int y; /** Creates a new instance of Punto */ public Punto() { x = 0; y = 0; } public Punto(int x, int y) { this.x = x; this.y = y; } public String toString() { String temp = "("+x+","+y+")"; return temp; } }
LANIA 2007
164
LANIA 2007
165
LANIA 2007
166
Ejemplo
public static void main(String[] args) { // TODO code application logic here Computadora a[] = new Computadora[10]; for(int i = 0; i < 10; i++) { a[i] = new Computadora(); System.out.println(a[i]); } } public class Computadora { private static int NumerodeSerie = 0; /** Creates a new instance of Computadora */ public Computadora() { NumerodeSerie++; } public String toString() { return "El nmero de serie es:" + NumerodeSerie; } } LANIA 2007 167
Clases abstractas
A medida que subimos en la jerarqua de herencia nos encontramos con clases que representan conceptos cada vez ms abstractos Existirn mtodos de los cuales no queremos implementarlos pues dependen mucho de las especializacin de la clase Este tipo de clases se denominan abstractas y alguno o todos sus mtodos no tienen implementacin
LANIA 2007
169
Interfaces
Una public interface es un contrato entre el cdigo cliente y la clase que implementa la interfaz. Una interface en Java es una declaracin forma del tal contrato en el cual todos los mtodos no tienen implementacin Una clase puede implementar muchas interfaces
LANIA 2007
171
Sintaxis
LANIA 2007
172
Ejercicio 7.1
Modifique la clase azar para que reciba un parmetro que indique el lmite superior de un rango de los valores aleatorioss Utilice super en los constructores de las clases dado y loteria Le parmetro super de dado es 6 El parmetro super de loteria es 9999
LANIA 2007
173
Ejercicio 7.2
Cree un mtodo toString para los programas Hexadecimal y Ajedrez
LANIA 2007
174
Ejercicio 7.3
Utilice el wrapper Integer y reescriba la clase Hexadecimal El constructor recibir tanto cadenas como enteros
LANIA 2007
175
Programacin en Java
Modulo 8: Excepciones
Laboratorio Nacional de Informtica Avanzada A. C. 2007
Excepciones
La clase Exception define como tratar condiciones de error que se encuentran al programar Las excepciones pueden ocurrir cuando Se trata de abrir un archivo que no existe Se pierde la condicin de red Las operaciones se salen de rango No existe la clase que se est llamando
LANIA 2007
177
Ejemplo
LANIA 2007
178
Manejo de excepciones
Para capturar una excepcin en particular hay que colocar el cdigo que puede lanzar la excepcin en un bloque try y entonces de crea una lista de bloques catch para cada posible excepcin que se desee capturar
LANIA 2007
179
La sentencia finally
La sentencia finally define un bloque de cdigo que se ejecuta siempre, independientemente de si una excepcin fue capturada o no try { prendeMotor(); conduce(); } catch (motorDescompuestoException e) { anexaEstadoMotoraBitacora(); } finally { paraMotor(); }
LANIA 2007 180
LANIA 2007
181
AWTException IOException RuntimeException Excepciones definidas Excepciones definidas por el programador por el programador
NullPointerException ClassCastException
182
LANIA 2007
183
LANIA 2007
184
class CuentaBloqueada extends Exception { long numero; CuentaBloqueada (long num) { numero = num; } String descripcion () { return "La cuenta " + numero + " esta bloqueada"; } }
LANIA 2007 185
LANIA 2007
186
LANIA 2007
187
Programacin en Java
Modulo 9: Aplicaciones basadas en texto Laboratorio Nacional de Informtica Avanzada A. C. 2007
Ejemplo
LANIA 2007
190
Ejemplo
LANIA 2007
192
System.in
Permite leer de la entrada estndar
System.err
Permite escribir a la salida estndar de error
LANIA 2007 193
Archivos
Los archivos se puede manipular a travs del paquete java.io La clase que maneja archivos es File
Permite crear archivos Manipular archivos Leer y escribir archivos
LANIA 2007
194
Utilidades
LANIA 2007
196
La clase Math
Contiene un grupo de funciones matemticas Es una clase esttica Ejemplos: Trigonometra: sin, cos, tan Aritmetica: log, exp, sqrt, pow Aletorios: random Constantes: PI
LANIA 2007
197
La clase String
Se utiliza para el manejo de cadenas Se puede efecutar operaciones:
Concatenar Busqueda Comparacin Tamao
LANIA 2007
198
El API de Colecciones
Una coleccin es un objeto simple que representa a un grupo de objetos conocido como elementos Tiene un conjunto de Interfaces que agrupan a objetos: Collection: Un grupo de objetos si un orden. Pueden ser duplicados Set: Una coleccin de objetos no duplicados y ordenados List: Una coleccin de objetos ordenados; se permite la duplicacin
LANIA 2007
199
La implementacin HashSet
Una clase implementada de la interfaz set es HashSet
LANIA 2007
200
La implemantacin ArrayList
La implementacin de una lista es la clase ArrayList
LANIA 2007
201
Iteradores
El proceso de Iteracin es la recuperacin de todos los elementos de una coleccin
LANIA 2007
202
Mapas
Un mapa es una coleccin que asocia una clave con un valor.
LANIA 2007
203
La herramienta jar
Se utiliza para comprimir y extraer archivos class Uso: Jar [opciones] [Archivo.jar] [archivos] Ejemplo: Comprime Jar cvf Projecto.jar Projecto Descomprime Jar xvf Projecto.jar
LANIA 2007
204