Programacion Avanzada Java
Programacion Avanzada Java
en Java
Información general
• Profesores:
– Miguel Ángel Corella, José María Fuentes y
Francisco Saíz.
• Índice del curso:
– Introducción.
• El lenguaje Java.
• Programación orientada a objetos en Java.
– Jerarquías de clases.
– Excepciones.
– Applets.
– Interfaces de usuario.
El lenguaje Java
Características principales (I)
• Lenguaje interpretado.
• Fuertemente tipado.
• Sintaxis similar a C/C++.
• Sin punteros: Garbage collection.
• 100% portable.
• Integra librearías estándar para:
– Interfaces de usuario.
– Objetos distribuidos.
– Threads.
Características principales (y II)
class Ejemplo {
...
}
Java Virtual Machine
class Aux { JVM
...
}
Compilador
Java
Ejemplo.class Aux.class
Comparativa: Java vs. C++ (I)
Java C++
• Interpretado • Compilado
• Variables y literales:
– Declaración y utilización de variables y
literales similar a C/C++.
Compatibilidad entre tipos
byte b = 42;
char c = 'a'; // también válido: c = 97;
short s = 1024;
int i = 50000;
long l = 120000;
float f = 5.67f;
double d = .1234;
double result = (f*b) + (i/c) - (d*s);
– Lógicos:
&&, ||, !
– Operadores de bit:
&, |, ^, ~, >>, <<
– Relacionales:
>, <, >=, <=, ==, !=
– Condicional:
If-then-else: (condicion) ? acción1 : acción2
Precedencia de operadores
( ) [ ] .
++ -- ~ !
Orden de ejecución de operadores
new
* / %
+ -
>> >>> <<
> >= < <= instanceof
== !=
&
^
|
&&
||
? :
= += *= -= /=
Igualdad de precedencia
Arrays
• Declaración:
int a[];
• Reserva de tamaño:
a = new int[3];
int b[] = {1, 2, 3, 4};
• Asignación de valores:
a[1] = 7;
b = a;
• Errores:
a[6] = 7; // Fuera del rango
a = {1, 2, 3}; // Sólo válido en la inicialización
int c[5]; // La dimensión sólo al hacer new
char str[] = “hola”; // Los Strings no son arrays en Java
Arrays multidimensionales
case valor2:
…
break;
default:
…
}
Iteraciones
• Tres tipos de iteraciones.
while (condición1) {
…
}
do {
…
} while (condición1)
long numero;
String titular; Variables
long saldo; (datos)
cuenta2.ingresar(1000);
• Al ejecutar un método sobre un objeto de la clase X, las
variables de dicha clase X toman los valores que tiene el
objeto.
Llamadas desde métodos
• Los métodos pueden invocar directamente otros
métodos de la misma clase (sin “.”).
• Al ejecutar un método invocado sobre un objeto de clase
A, las llamadas a otros métodos de la clase A se
ejecutan sobre el mismo objeto a menos que se
invoquen sobre otro objeto
cuenta3 = new CuentaBancaria ();
cuenta2.transferencia (cuenta3, 1000);
class CuentaBancaria {
...
void transferencia (CuentaBancaria destino, long cantidad) {
if (cantidad <= saldo ) {
retirar (cantidad);
destino.ingresar (cantidad);
}
}
}
Acceso a objetos
class Cliente {
CuentaBancaria cuenta1 =
new CuentaBancaria (6831531, cliente1, 100000);
CuentaBancaria cuenta2 =
new CuentaBancaria (8350284,
new Cliente ("Pilar Garcia", 15165442),
200000);
Constructor por defecto