Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LPS 02POOconJavaenEclipse PDF
LPS 02POOconJavaenEclipse PDF
www.federicopeinado.es
Depto. de Ingeniera del Software e
Inteligencia Artificial
disia.fdi.ucm.es
Facultad de Informtica
www.fdi.ucm.es
Universidad Complutense de Madrid
www.ucm.es
Paradigma
de programacin distinto de la
Programacin Estructurada (PE)
Surge con la invencin del lenguaje Simula (Dahl y
Segn
la PE, programar es
definir algoritmos usando tres
estructuras bsicas: secuencia,
seleccin e iteracin
Segn la POO, programar es
en primer lugar definir cmo
interactan una serie de
objetos imaginarios entre s
(mayor nivel de abstraccin)
Laboratorio de Programacin de Sistemas POO con Java en Eclipse
orientado a objetos
Interfaz de programacin de
aplicaciones (Java API)
Bibliotecas software (Core Java)
Subprogramas fundamentales para manejar cadenas, ficheros,
procesos, entrada/salida del sistema, etc.
Herramientas de desarrollo (JDK)
Compilador, depurador, generador de documentacin, etc.
Entorno de ejecucin (JRE)
Intrprete en forma de mquina virtual
Laboratorio de Programacin de Sistemas POO con Java en Eclipse
http://download-llnw.oracle.com/javase
Laboratorio de Programacin de Sistemas POO con Java en Eclipse
Write
(*.java)
El compilador traduce uno a uno estos ficheros de texto a ficheros
binarios escritos en un lenguaje intermedio llamado Java
Bytecode (*.class), muy cercano al cdigo mquina
Se debe disponer de un ejemplar de la JVM implementada en la
plataforma concreta donde se quiere ejecutar la aplicacin
Dicho ejemplar de la JVM interpreta los ficheros binarios,
ejecutando la aplicacin de manera normal sobre la mencionada
plataforma de destino
http://download-llnw.oracle.com/javase/6/docs/index.html
Directorio
src
Directorio
bin
Directorio
lib
Directorio
test
Directorio
con la documentacin
doc
Laboratorio de Programacin de Sistemas POO con Java en Eclipse
10
11
De sintaxis conocida
Portable
Robusto y seguro
Fuertemente tipado
Gestin de memoria restringida al mnimo: el programador no puede
12
13
Similitudes
Tipos bsicos
Sintaxis (sobretodo de las estructuras de control)
Diferencias
14
Sintaxis
Comienzan con letra (incluyendo _ y $)
Van seguidos de letras o dgitos
Pueden tener cualquier longitud
Se distinguen maysculas de minsculas
Ejemplos
x
_var1
MAXIMO
$Caracter
15
abstract
boolean
break
byte
byvalue
case
catch
char
class
const
continue
default
do
double
else
extends
false
final
finally
float
for
goto
if
implements
import
instanceof
int
interface
long
native
new
null
package
private
protected
public
return
short
static
super
switch
synchronized
this
threadsafe
throw
throws
transient
true
try
void
volatile
while
16
int numero;
// No se ha producido la inicializacin
int max = 5;
boolean sino = true;
17
Unidad
bsica de almacenamiento de
informacin cuyo valor nunca cambia
Se declaran con la palabra clave final
final
final
final
final
float PI = 3.141592;
int MAX = 255;
int ABIERTO = 0, CERRADO = 1;
boolean FALSO = false;
18
MIN_VALOR
-128
-32768
-2147483648
-263
MAX_VALOR
+127
+32767
+2147483647
263-1
19
Para
20
Aritmticos
binarios
%
Aritmticos unarios
Pre/postincremento ++x
Pre/postdecremento --x
x++
x--
Operadores de asignacin
Normal
x=y
Adicin
x+=y
Sustraccin
x-=y
Multiplicacin x*=y
Divisin
x/=y
21
Operadores
Y lgica
O lgica
Negacin
lgicos
x && y
x || y
! x
22
if (expresion_booleana)
instruccion
if (expresion_booleana)
instruccion1
else
instruccion2
switch (expresion)
{
case expresin-constante1: instrucciones; break;
case expresin-constante2: instrucciones; break;
...
default: instrucciones
}
La expresion puede ser de tipo char, byte, short o int
23
while (expresin_booleana)
instruccin
do
instruccin
while (expresin_booleana)
for (inicializacin;condicin;incremento)
instruccin
24
Comentarios
// Comentario
Comentarios
de varias lneas
25
http://www.oracle.com/technetwork/java/javase/documentation/javadoc-137458.html
Laboratorio de Programacin de Sistemas POO con Java en Eclipse
26
Ejemplo: org.apache.xml
explcitamente en un paquete
As se usan los nombres de los paquetes:
Nombre completo
Usando clusula import
java.util.Date
import java.util.Date;
import java.util.*;
27
Java
swing
lang
awt
applet
Paquete lang
Clases con funcionalidades bsicas (arrays,
cadenas de caracteres, entrada/salida,
excepciones, hilos)
Paquete util
Utilidades (nmeros aleatorios, vectores,
propiedades del sistema)
Paquete net
Conectividad y trabajo con redes (sockets,
URLs)
net
util
Paquete applet
Desarrollo de aplicaciones
directamente ejecutables en
navegadores web
Paquetes awt y swing
Desarrollo de interfaces
grficas de usuario
y muchos ms
28
29
extensin .java
En el caso de las clases internas (ya sean locales o annimas) veremos
que se pueden usar otros tipos de acceso
30
31
int _alto;
// Constructor
public Rectangulo(int x1, int y1, int ancho, int alto){
_x = x1;
_y = y1;
this._ancho = ancho;
this._alto = alto;
}
Laboratorio de Programacin de Sistemas POO con Java en Eclipse
32
x
rect
y
ancho
// Asignar la referencia
Rectangulo otroRect;
otroRect = rect;
otroRect
alto
33
34
35
ancho
ancho
alto
alto
rect
rect
x
otroRect
otroRect
ancho
ancho
alto
alto
36
tipo final
Desde un mtodo se puede llamar a otros mtodos de la superclase
usando la misma referencia de antes: super
37
38
39
interface NombreInterfaz {
// Declaracin de constantes
// Declaracin de mtodos
public tipoDevuelto nombreMetodo1(listaArgumentos)
}
40
41
El
operador == no vale
42
public class A {
private int _n;
private B _b;
public boolean equals (Object o) {
if (o == null)
return false;
if (o == this)
return true;
if (!(o instanceof A))
return false;
A a = (A)o;
return (this._n == a._n) &&
(this._b.equals(a._b));
}
}
Laboratorio de Programacin de Sistemas POO con Java en Eclipse
43
El operador == no vale
Slo copia referencias
Esta puede generar una excepcin que hay que capturar (e ignorar si se
produce, habitualmente)
44
}
}
}
Laboratorio de Programacin de Sistemas POO con Java en Eclipse
45
http://www.eclipse.org
Laboratorio de Programacin de Sistemas POO con Java en Eclipse
46
Resaltado de sintaxis
Compilacin en tiempo de edicin (para detectar y corregir errores)
Asistentes (wizards) para crear proyectos, clases, pruebas, etc.
Refactorizacin del cdigo
47
Federico Peinado
www.federicopeinado.es