Ana Velez
Bibliografa:
Core Java 1.2, Volmenes I II. C.S. Horstmann, Gary Cornell, Prentice Hall, 1999. Tutorial de Java en http://java.sun.com
El lenguaje Java
Desarrollo en Java
Java Development Kit (JDK):
Java Runtime Environment (JRE):
Java Virtual Machine. Java API: lenguaje bsico y libreras estndar.
Compilacin e interpretacin
Ejemplo.java class Ejemplo { ... } class Aux { ... }
Interpretado
Portable Todo memoria dinmica Garbage collection No existen punteros Todos los mtodos virtuales No hay herencia mltiple Informacin sobre clases en tiempo de ejecucin. Tratamiento genrico de tipos (wrappers).
Compilado
Aspectos no portables Memoria automtica y dinmica Gestin del programador Existen punteros No todos los mtodos virtuales Hay herencia mltiple Informacin muy escasa (dynamic_cast). Punteros a void.
Soporte estndar para interfaces: AWT, SWING Soporte estndar para concurrencia Soporte estndar para objetos distribuidos Ejecutable en navegadores web
No incluido en el lenguaje
No incluido en el lenguaje: CORBA, ActiveX No ejecutable por navegadores Mltiples sintaxis Compatibilidad con C
Aspectos lxicos
Ignora mltiples espacios en blanco Sentencias separadas por ;. Comentarios:
/* */ Mltiples lneas de comentario // Una nica lnea de comentario
Valores y variables
Tipos bsicos:
byte char short int long float double boolean 1 byte 2 bytes (sin signo, caracteres Unicode, incluyen los ASCII) 2 bytes 4 bytes 8 bytes 4 bytes 8 bytes 1 bit (true false, no compatible con tipos numricos)
Variables y literales:
Declaracin y utilizacin de variables y literales similar a C/C++.
Ensanchar: automtico
f = c; d = s; f = l;
Operadores
En total hay 46 operadores.
Numricos:
+, -, *, /, %, +=, -=, *=, /=, %=, --, ++
Lgicos:
&&, ||, !
Operadores de bit:
&, |, ^, ~, >>, <<
Relacionales:
>, <, >=, <=, ==, !=
Condicional:
If-then-else: (condicion)
? accin1 : accin2
Precedencia de operadores
( ) ++ new * + >> > == & ^ | && || ? =
[ ] -/ >>> >= !=
. ~ % << <
<=
instanceof
: +=
*=
-=
/=
Igualdad de precedencia
Arrays
Declaracin:
int a[];
Reserva de tamao:
a = new int[3]; int b[] = {1, 2, 3, 4};
Asignacin de valores:
a[1] = 7; b = a;
Errores:
a[6] = 7; a = {1, 2, 3}; int c[5]; char str[] = hola; // // // // Fuera del rango Slo vlido en la inicializacin La dimensin slo al hacer new Los Strings no son arrays en Java
Arrays multidimensionales
float a[][] = new float [4][3];
Expresiones condicionales
Dos tipos de condicionales.
if (condicin1) accin1 [else accin2] [else if (condicin2)
Iteraciones
Tres tipos de iteraciones.
while (condicin1) { }
do { } while (condicin1)
Clases
Estructura de datos + funciones.
class CuentaBancaria { long numero; String titular; long saldo; void ingresar (long cantidad) { saldo += cantidad; } void retirar (long cantidad) { if (cantidad > saldo) System.out.println ("Saldo insuficiente"); else saldo -= cantidad; } }
Variables (datos)
Funciones
Creacin de objetos
Una clase define un tipo de dato que se puede utilizar para declarar variables.
CuentaBancaria cuenta1, cuenta2;
Declarar un objeto es declarar una referencia al objeto. Los objetos se crean mediante el operador new.
CuentaBancaria cuenta1 = new CuentaBancaria(); numero titular 0 null 0
saldo
Crear un objeto es reservar memoria para sus variables. El operador new reserva memoria y devuelve una referencia.
Acceso a variables
El acceso a las variables de un objeto se lleva a cabo mediante la notacin .
CuentaBancaria cuenta1, cuenta2; cuenta1 = new CuentaBancaria (); cuenta2 = cuenta1; Cliente cliente1 = new Cliente (); cliente1.nombre = "Luis Gomez"; cliente1.dni = 25672046; cuenta1.numero = 6831531; cuenta1.titular = cliente1; cuenta1.saldo = 100000; cuenta2.saldo = 200000;
cuenta2.titular.nombre = "Pilar Garcia";
Mtodos
Los mtodos son funciones definidas dentro de un clase.
Son similares a un puntero a funcin dentro de un struct de C. Los mtodos de una clase pueden referenciar directamente las variables de la misma.
Los mtodos se invocan sobre un objeto de la clase a la que pertenecen mediante la notacin ..
cuenta2.ingresar(1000);
Al ejecutar un mtodo sobre un objeto de la clase X, las variables de dicha clase X toman los valores que tiene el objeto.
Acceso a objetos
class X { String nombre; } class Y { int i; } class Z { String nombre; }
class A { int num; X obj4; void f (int n, Y obj3) { Z obj2 = new Z (); obj4.nombre = obj2.nombre num = obj3.i + n; } 2. } 1. 3. 1. 2. 3. 4. Variable del objeto de la invocacin Objeto definido en variable local Objeto pasado como argumento Objeto almacenado en variable de clase
4.
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) { ...; } }
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; } }
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);