Documente Academic
Documente Profesional
Documente Cultură
4
Dr. Diego Lz. de Ipia Gz. de Artaza
http://paginaspersonales.deusto.es/dipi
na
dipina@eside.deusto.es
Introduccin a la
plataforma Java (I)
Evolucin de la programacin
Qu es programar?
Fases de un proyecto informtico
Anlisis.
Diseo.
Codificacin + compilacin.
Depuracin + pruebas.
Documentacin.
Introduccin a la
plataforma Java (II)
Programacin estructurada.
Instrucciones secuenciales.
Instrucciones condicionales.
Instrucciones repetitivas.
Lenguajes mquina.
Lenguajes ensamblador.
Lenguajes de alto nivel.
Introduccin a la
plataforma Java (III)
Multiplataforma.
Multiplataforma.
Entorno controlado.
Introduccin a la
plataforma Java (IV)
Desventajas
Menor rendimiento.
Prdida de caractersticas especficas.
Orientacin a Objetos.
Applets.
Programacin distribuida RMI (Remote
Method Invocation)
Multiproceso / Multihilo (MultiThreading)
Programacin mvil J2ME (Micro Edition)
Programacin aplicaciones web JSP (Java
Server Pages)
Introduccin a la
plataforma Java (V)
Servidores de aplicaciones.
Transparencia en el acceso a datos.
Desarrollo basado en componentes
(beans).
Programacin Orientada a
Objetos en Java (I)
Qu es la Programacin Orientada a
Objetos?
Programacin Orientada a
Objetos en Java (II)
abstract
default
goto
operator
synchronized
boolean
do
if
outer
this
break
double
implements
package
threadsafe
byte
else
import
private
throw
byvalue
extends
inner
protected
throws
case
false
instanceof
public
transient
cast
final
int
rest
true
catch
finally
interface
return
try
char
float
long
short
var
class
for
native
static
void
const
future
new
super
volatille
continue
generic
null
switch
while
Programacin Orientada a
Objetos en Java (III)
Herramientas de la POO.
Datos = Atributos.
Acciones = Mtodos.
Clase Vs Objeto
Programacin Orientada a
Objetos en Java (IV)
Paquetes.
Programacin Orientada a
Objetos
en
Java
(V)
Estructura bsica de un fichero fuente Java.
Definicin de clases.
package paquete;
import otroPaquete.OtraClase;
public class ClaseConVisibilidadPublica
{
}
class ClaseConVisibilidadNoPublica
{
}
Programacin Orientada a
Objetos en Java (VI)
Programacin Orientada a
Objetos en Java (VII)
@param id
@return
@throws Exception
Programacin Orientada a
Objetos en Java (VIII)
Encapsulacin.
Programacin Orientada a
Objetos en Java (IX)
Primitivos.
Enteros.
float: 32 bits
double: 64 bits
Lgicos.
No primitivos: Clases.
Programacin Orientada a
Objetos en Java (X)
Variables.
El concepto de mbito.
Existen 2 tipos:
Programacin Orientada a
Objetos en Java (XI)
Miembros estticos.
Creacin de objetos.
Programacin Orientada a
Objetos en Java (XII)
Contantes.
Enteras.
12345 (int, por defecto)
12345L (long)
0123 (octal)
0xF0A (hexadecimal)
Decimales.
123.45 (double, por defecto)
123.45f (float)
Carcter.
a
Cadena.
cadena
Programacin Orientada a
Objetos en Java (XIII)
Conversin de tipos.
Programacin Orientada a
Objetos en Java (XIV)
Software: http://www.java.sun.com
Programacin Orientada a
Objetos en Java (XV)
Programacin Orientada a
Objetos en Java (XVI)
public class PrimerPrograma
{
public static void main(String[] args)
{
System.out.println(El primer programa en Java.);
}
}
Programacin Orientada a
Objetos en Java (XVII)
package cursojava.tipos;
public class TiposPrimitivos
{
public static void main(String[] args)
{
byte b = 127;
char c = 65; // Representa el carcter A
short s = 32767;
// Conversiones implcitas
int i = b;
long l = s;
float f = i;
double d = f;
}
}
Programacin Orientada a
Objetos en Java (XVIII)
Expresiones.
2 elementos.
2 tipos de operadores.
Operadores.
Operandos.
Binarios: 2 operandos.
Unarios: 1 operando.
Asignacin =
variable = valor;
variable1 = variable2 = variable3 = valor;
Programacin Orientada a
Objetos en Java (XIX)
Aritmticas.
+, - (unitarios)
*, /, %
+, -
+25
-6.725
5 * 5 es 25
25 / 6 es 4
25 % 6 es 1
2 + 3 es 5
2 3 es -1
1
2
Programacin Orientada a
Objetos en Java (XX)
Incremento ++ y Decremento --
Pre: Se incrementa/decrementa y
despus se evala la expresin.
++variable;
--variable;
Post: Se evala la expresin y luego se
incrementa/decrementa.
variable++;
variable--;
Programacin Orientada a
Objetos en Java (XXI)
package cursojava.incdec;
public class IncrementoDecremento
{
public static void main(String[] args)
{
int variable = 5; System.out.println(variable);
System.out.println(++variable);
System.out.println(variable++);
System.out.println(variable--);
System.out.println(--variable);
System.out.println(variable);
}
}
Programacin Orientada a
Objetos en Java (XXII)
variable
variable
variable
variable
variable
+=
-=
/=
*=
%=
expresion;
expresion;
expresion;
expresion;
expresion;
//
//
//
//
//
variable
variable
variable
variable
variable
=
=
=
=
=
variable
variable
variable
variable
variable
/
*
%
expresion
expresion
expresion
expresion
expresion
Programacin Orientada a
Objetos en Java (XXIII)
Operadores relacionales. Operadores
que consiguen uno de los dos valores
lgicos: true o false.
Operador
Significado
Ejemplo
==
Igual a
a == b
!=
No igual a
a != b
>
Mayor que
a > b
<
Menor que
a < b
>=
a >= b
<=
a <= b
Programacin Orientada a
Objetos
en
Java
(XXIV)
Operadores lgicos:
Operador
!
||
&&
Significado
Tabla de verdad
No lgica, negacin
O lgica
Y lgica
O exclusiva
Ejemplo
!a
true
false
a
true
true
b
true
false
false
true
a || b
true
true
false
true
true
false
false
false
a && b
true
true
true
true
false
false
false
true
false
false
false
false
a
true
true
b
true
false
a ^ b
false
true
false
true
true
false
false
false
!(x < y)
x < n || y > 9
x < n ^ y > 9
Programacin Orientada a
Objetos en Java (XXV)
Programacin Orientada a
Objetos en Java (XXVI)
Instrucciones condicionales.
Simple:
if (CONDICION)
{
INSTRUCCIONES
}
Doble:
if (CONDICION)
{
INSTRUCCIONES
}
else
{
INSTRUCCIONES
}
Programacin Orientada a
Objetos en Java (XXVII)
Mltiple:
switch(VARIABLE)
{
case VALOR1:
break;
case VALOR2:
break;
...
case VALORn:
break;
default:
break;
}
Programacin Orientada a
Objetos en Java (XVIII)
Instrucciones repetitivas:
De 0 a N: for y while
De 1 a N: do ... while
do
{
INSTRUCCIONES
}
while(CONDICION);
Programacin Orientada a
Objetos en Java (XXIX)
Mtodos.
Programacin Orientada a
Objetos en Java (XXX)
Constructores
Programacin Orientada a
Objetos en Java (XXXI)
Programacin Orientada a
Objetos en Java (XXXII)
Programacin Orientada a
Objetos en Java (XXXIII)
Ejemplo: Desarrollar un programa para aclarar el paso de parmetros por valor y por
referencia.
package cursojava.valref;
public class ValorYReferencia
{
public static void metodo(int valor)
{
valor++;
}
public static void metodo(Ayuda valor)
{
valor.valor++;
}
public static void main(String[] args)
{
int valor = 5;
metodo(valor);
System.out.println(valor);
Ayuda objeto = new Ayuda();
objeto.valor = 5;
metodo(objeto);
System.out.println(objeto.valor);
}
}
class Ayuda
{
public int valor = 0;
}
Programacin Orientada a
Objetos en Java (XXXIV)
Arrays en Java
Programacin Orientada a
Objetos en Java (XXXV)
Programacin Orientada a
Objetos en Java (XXXVI)
Elemento a elemento:
tipo[] id = new tipo[2];
id[0] = valor;
id[1] = valor;
Inicializacin en declaracin: Se usan llaves.
tipo[] id = {valor, valor};
Programacin Orientada a
Objetos en Java (XXXVII)
Programacin Orientada a
Objetos en Java (XXXVIII)
Entrada/Salida estndar.
Programacin Orientada a
Objetos en Java (XXXIX)
Excepciones (bsico).
Programacin Orientada a
Objetos en Java (XXXX)
Gestin de excepciones
Programacin Orientada a
Objetos en Java ()
Programacin Orientada a
Objetos en Java ()
byte
char
short
int
float
double
<->
<->
<->
<->
<->
<->
Byte
Character
Short
Integer
Float
Double
Programacin Orientada a
Objetos en Java ()
Programacin Orientada a
Objetos en Java ()
int: leerEntero
double: leerReal
char: leerCaracter
String: leerCadena
Programacin Orientada a
Objetos en Java ()
Programacin Orientada a
Objetos en Java ()
1.2.3.4.5.6.7.-
Suma
Resta
Multiplicacin
Divisin
Resto
Es primo?
Salir.
Programacin Orientada a
Objetos en Java ()
Programacin Orientada a
Objetos en Java ()
Programacin Orientada a
Objetos en Java ()
El objeto this.
Programacin Orientada a
Objetos en Java ()
Programacin Orientada a
Objetos en Java ()
Herencia.
Programacin Orientada a
Objetos en Java ()
Programacin Orientada a
Objetos en Java ()
Encapsulacin.
Encapsulaci
n
Desde la
clase
Desde clase
derivada
Desde clase
del paquete
private
en blanco
protected
public
Desde clase
de otro
paquete
Programacin Orientada a
Objetos en Java ()
Programacin Orientada a
Objetos en Java ()
Programacin Orientada a
Objetos en Java ()
Polimorfismo.
Relacin de herencia.
Exactamente la misma signatura de mtodo en
ambas clases (padre e hija).
Programacin Orientada a
Objetos en Java ()
Clases abstractas.
Programacin Orientada a
Objetos en Java ()
Programacin Orientada a
Objetos en Java ()
Interfaces.
Programacin Orientada a
Objetos en Java ()
Programacin Orientada a
Objetos en Java ()
Programacin Orientada a
Objetos en Java ()
Programacin Orientada a
Objetos en Java ()
Empresa Empleados.
Lectura / Escritura de datos. (XML, PrintWriter
(System.out o en Servlets), etc.)
Editor grfico.
Profesor Conexin Alumnos.
Interfaz humano computador (texto, ventana,
web, ...).
Desarrollo de componentes (java.util.*)
java.lang.Object
Programacin Orientada a
Objetos en Java ()
Programacin Orientada a
Objetos en Java ()
Excepciones (Avanzado)
Programacin Orientada a
Objetos en Java ()
Bloque finally
Jar
Patrones de diseo
Patrones de diseo
Singleton
Control = Encapsulacin.
Creacin = Constructores.
Combinacin = Constructores privados.
Patrones de diseo
public class Singleton
{
private static Singleton instance = null;
private Singleton()
{
}
public static Singleton getInstance()
{
if (instance == null)
instance = new Singleton();
return instance;
}
}
Patrones de diseo
Observer
Generador = Observable.
Escuchador = Observer.
Patrones de diseo
Patrones de diseo
Class.forName(NOMBRE_CON_PAQUETES_DE_LA_CLASE_DRIVER);
DriverManager.getConnection(URL_DE_CONEXIN_SEGN_DRIVER);
de Connection.
Actualizacin:
Consulta:
SELECT
Nombre de la columna.
ndice de la columna de 1 a N.
Acceso a MetaDatos
Swing (I)
Swing (II)
Tamao.
Posicin.
Dibujado.
Visibilidad/Habilitacin.
Eventos:
Teclado
Ratn
Redimensionado
Jerarqua.
Swing (III)
Swing (IV)
Swing (V)
Swing (VI)
Ventana:
En AWT: java.awt.Frame
En Swing: javax.swing.Jframe
Realmente la de Swing extiende a la de AWT.
Se suele extender de ellas para ampliar su
funcionalidad.
Crean un hilo de ejecucin paralelo al de la
aplicacin.
Es un Container por lo que puede contener a
otros componentes.
Swing (VII)
Mtodos principales:
Width = ancho
Height = alto.
Swing (VIII)
Panel:
En AWT: java.awt.Panel.
En Swing: javax.swing.JPanel.
En este caso no hay relacin herencia.
Es el contenedor ms sencillo.
Su utilidad suele ser la de poder manejar
los componentes que engloba desde un
nico punto.
Ayuda a organizar los componentes.
Swing (IX)
Label:
En AWT: java.awt.Label.
En Swing: javax.swing.JLabel.
En este caso no hay relacin de herencia.
Permite visualizar un texto simple.
Mtodos principales:
Swing (X)
Cuadros de texto:
En AWT: java.awt.TextField.
En Swing: javax.swing.JTextField.
En este caso no hay relacin de herencia.
Permite introducir un texto de una lnea.
Mtodos principales:
Swing (XI)
reas de texto:
En AWT: java.awt.TextArea.
En Swing: javax.swing.JTextArea.
En este caso no hay relacin de herencia.
Permite introducir un texto de una lnea.
Mtodos principales:
Swing (XII)
Botones:
En AWT: java.awt.Button.
En Swing: javax.swing.JButton.
Swing (XIII)
En AWT: java.awt.CheckBox.
En Swing: javax.swing.JCheckBox.
En este caso no hay relacin de herencia.
Mtodos principales:
Swing (XIV)
Contenedores de items:
Listas:
En AWT: java.awt.List
Mtodos:
Swing (XV)
En Swing: javax.swing.JList
Para modificar su contenido se le asocia un concepto que implemente la
interfaz javax.swing.ListModel. Existe una implementacin por
defecto javax.swing.DefaultListModel.
Mtodos de DefaultListModel:
Mtodos de JList:
Swing (XVI)
Combo boxes:
Mtodos de JComboBox:
Swing (XVII)
Swing (XVIII)
java.awt.BorderLayout
contenedor.add(componente, BorderLayout.NORTH)
java.awt.FlowLayout
Swing (XIX)
java.awt.GridLayout
Swing (XX)
Gestin de Eventos:
Swing (XXI)
java.awt.Component
java.awt.Container
java.awt.Window
Swing (XXII)
java.awt.CheckBox, java.awt.List
java.awt.TextComponent
javax.swing.JList
javax.swing.event.ListSelectionListener: Evento
relacionado con el cambio de seleccin de un elemento.
Ant
Ant
Atributos:
Ant
Atributos:
Ant
Tareas: task
<name attrib2=value1 attrib2=value2 .../>
Ant
Ant
<project name="MyProject" default="dist" basedir=".">
<description>
simple example build file
</description>
<property name="src" location="src"/>
<property name="build" location="build"/>
<property name="dist" location="dist"/>
<target name="init">
<tstamp/>
<mkdir dir="${build}"/>
</target>
<target name="compile" depends="init" description="compile the source">
<javac srcdir="${src}" destdir="${build}"/>
</target>
<target name="dist" depends="compile" description="generate the distribution">
<mkdir dir="${dist}/lib"/>
<jar jarfile="${dist}/lib/MyProject-${DSTAMP}.jar" basedir="${build}"/>
</target>
<target name="clean" description="clean up" >
<delete dir="${build}"/>
<delete dir="${dist}"/>
</target>
</project>
Ant