Curso de JAVA
Diciembre 1999
Javier Pardo
[email protected]
Introducción
Clases
•Trasparencias
•Ejemplos
•Yo hablando
•Vosotros preguntando
Libros
•Thinking in Java
(2nd Edition)
•Aprenda Java como si
estuviera en primero
•Otros.
Web Curso
•Información
•Recursos WWW
•Código ejemplos
•Libros
•Tutoriales
•Programas
Lista de correo
•Sugerencias
•Dudas y preguntas
Programas
•JDK 1.2.2
•Editor
Curso de JAVA
1
Curso de JAVA
Introducción: Libros
Introducción: Web del curso
Aprenda Java como si estuviera en primero
•Castellano
•ETSII Navarra (SS)
•Sencillo y claro
Thinking in Java
•Inglés
•Introducción avanzada
Curso de JAVA
3
Curso de JAVA
2
4
Introducción: Listas de correo
Índice del curso
[email protected]
•Dudas
•Sugerencias
•Problemas
[email protected]
Día 1: Programación en Java
Día 4: Tecnologías Java I
Introducción
Sintaxis
Objetos
Documentación
Applets
Beans
JDBC
Servlets
JSP Java Server Pages
Día 2: Programación avanzada
Excepciones
I/O Streams
Threads
JNI Java Native Interface
Programación en red
Día 3: Programación UI
Día 5: Tecnologías Java II:
Aplicaciones Distribuidas
Introducción
RMI Remote Method Invocation
CORBA Java IDL
EJB Enterprise Java Beans
Introducción
AWT Abstract Window Toolkit
Swing Java Foundation Classes
Curso de JAVA
5
Curso de JAVA
6
1
Día 1: Programación en Java
Introducción: Historia Java
Introduccion
•Historia Java
•Programación Orientada a Objetos
•Java y la Industria. Tecnologías
•Herramientas de desarrollo
JDK Java Development Kit
RAD’s: Jbuilder, Java
Workshop…
Sintaxis
•Variables
•Operadores
•Estructuras de programación
Objetos
•Conceptos básicos
•Variables miembro
•Variables finales
•Métodos
•Clases y métodos finales
•Clases internas
•Transformaciones (Casting)
•Paquetes
•Herencia
•Interfaces y clases abstractas
•Permisos de acceso
•Polimorfismo
Documentación
•Filosofía
•Javadoc
•1991: Sun Microsystems diseña un lenguaje diseñado para sistemas
embebidos,(set-top-boxes), electrodomésticos.
•Lenguaje sencillo, pequeño, neutro.
•Ninguna empresa muestra interés por el lenguaje
•1995: Java se introduce en Internet, lenguaje muy apropiado
•Netscape 2.0 introduce la primera JVM en un navegador WWW
(Máquina virtual Java)
•Filosofía Java: “Write once, run everywhere”
•1997: Aparece Java 1.1. Muchas mejoras respecto a 1.0
•1998: Java 1.2 (Java 2). Plataforma muy madura
•Apoyado por grandes empresas: IBM, Oracle, Inprise, Hewtlett-
Packard, Netscape, Sun
•1999: Java Enterprise Edition. Java comienza a ser una plataforma
de desarrollo profesional.
Curso de JAVA
7
Curso de JAVA
8
Introducción: Programación
Orientada a objetos
Introducción: Programación
Orientada a objetos II
Directores proyecto
•Rapidez desarrollo
•Menores costes
•Mantenimiento sencillo
Características
Diseñadores y analistas
•Modelado rápido
•Diseño claro
Programadores
•Elegancia
•Claridad
•Reutilización código
•...
Inconvenientes
•Curva de aprendizaje
•Encapsulación: CONTROL DE ACCESO
•Herencia: REUTILIZACIÓN DE CODIGO
•Polimorfismo: MODELADO JERARQUIZADO
Lenguajes
Java
•SmallTalk: Curva de aprendizaje dificil
•C++: No hay librerías estándar, gestión de memoria
•OOP puro
•Sencillo
•No hay gestión de memoria (Garbage Collector)
•Librerías estándar
•Multiplataforma
Curso de JAVA
9
Curso de JAVA
10
Introducción: Plataforma java
Introducción: Java: Tecnologías
Programación
JavaBeans
Programación gráfica
Servidor
Java Server Pages
Servlets
JNI
Programación UI
java.*
AWT
Swing
Java3D
Java2D
WWW
Applets
Sistemas embebidos
RMI
Curso de JAVA
11
Curso de JAVA
12
Programación distribuida
CORBA
JINI
JavaSpaces
Bases de datos
JDBC
Enterprise JavaBeans
2
Introducción: Herramientas
JDK Java Development Kit
•java (Máquina Virtual)
•javac (Compilador bytecode)
•javadoc (Documentación)
•jdb (Depurador consola)
•clases java.*
•Documentación
•...
Entornos RAD
•Jbuilder 3.0
•Symantec Café
•Oracle Jdeveloper
•Sun Java Workshop
•Modelado visual
•Depuración
•Rapidez de desarrollo
Introducción: Hola Mundo (Ejemplo 1)
HolaMundo.java
Class HolaMundo {
public static void main (String[] argv) {
System.out.println(“Hola Mundo”)
}
}
Compilar
javac HolaMundo.java
Ejecutar
java HolaMundo
Hola Mundo
Curso de JAVA
13
Curso de JAVA
14
Introducción: Ejemplo1
Introducción: Geometria.java
Curso de JAVA
15
Curso de JAVA
16
// fichero Geometria.java
public abstract class Geometria {
// clase abstracta que no puede tener objetos
public abstract double area();
public abstract double perimetro();
}
Introducción: Rectangulo.java
// fichero Rectangulo.java
class Rectangulo extends Geometria {
// definición de las variables miembro
private static int numRectangulos = 0;
protected double x1, y1, x2, y2;
// constructor por defecto (sin argumentos)
// se define mediante una llamada al constructor general
public Rectangulo(){ this(0, 0, 1.0, 1.0); }
// constructor de la clase
public Rectangulo(double p1x, double p1y, double p2x, double p2y) {
x1 = p1x;
x2 = p2x;
y1 = p1y;
y2 = p2y;
numRectangulos++;
}
public double area() { return (x1-x2)*(y1-y2); }
public double perimetro() { return 2.0 * ((x1-x2)+(y1-y2)); }
} // fin de la clase Rectangulo
Introducción: Circulo.java
// fichero Circulo.java
public class Circulo extends Geometria {
static int numCirculos=0;
public static final double PI=3.14159265358979323846;
public double x, y, r;
public Circulo() { this(0.0, 0.0, 1.0); }
public Circulo(double r) { this(0.0, 0.0, r); }
public Circulo(double x, double y, double r) {
this.x=x; this.y=y; this.r=r;
numCirculos++;
}
public Circulo(Circulo c) { this(c.x, c.y, c.r); }
// método de objeto para comparar círculos
public Circulo elMayor(Circulo c) {
if (this.r>=c.r) return this; else return c;
}
// método de clase para comparar círculos
public static Circulo elMayor(Circulo c, Circulo d) {
if (c.r>=d.r) return c; else return d;
}
public double area() { return PI * r * r; }
public double perimetro() { return 2.0 * PI * r; }
} // fin de la clase Circulo
Curso de JAVA
17
Curso de JAVA
18
3
Introducción: Dibujable.java
Introducción: RectanguloGrafico.java
// fichero Dibujable.java
import java.awt.Graphics;
public interface Dibujable {
public void dibujar(Graphics dw);
public void setPosicion(double x, double y);
}
Curso de JAVA
// Fichero RectanguloGrafico.java
import java.awt.Graphics;
import java.awt.Color;
class RectanguloGrafico extends Rectangulo implements Dibujable
{
Color color;
// constructor
public RectanguloGrafico(double x1, double y1, double x2,double y2, Color unColor) {
// llamada al constructor de Rectangulo
super(x1, y1, x2, y2);
this.color = unColor;
}
// métodos de la interface Dibujable
public void dibujar(Graphics dw) {
dw.setColor(color);
dw.drawRect((int)x1, (int)y1, (int)(x2-x1), (int)(y2-y1));
}
public void setPosicion(double x, double y) {
;
}
} // fin de la clase RectanguloGrafico
19
Curso de JAVA
20
Introducción: CirculoGrafico.java
Introducción: PanelDibujo.java
// fichero CirculoGrafico.java
import java.awt.Graphics;
import java.awt.Color;
public class CirculoGrafico extends Circulo implements Dibujable {
// se heredan las variables y métodos de la clase Circulo
Color color;
// constructor
public CirculoGrafico(double x, double y, double r, Color unColor) {
// llamada al constructor de Circulo
super(x, y, r);
this.color = unColor;
}
// métodos de la interface Dibujable
public void dibujar(Graphics dw) {
dw.setColor(color);
dw.drawOval((int)(x-r), (int)(y-r), (int)(2.0*r), (int)(2.0*r));
}
public void setPosicion(double x, double y) {
;
}
} // fin de la clase CirculoGrafico
// fichero PanelDibujo.java
import java.awt.*;
import java.util.Vector;
import java.util.Enumeration;
public class PanelDibujo extends Panel {
private Vector v;
// constructor
public PanelDibujo(Vector vect) {
super(new FlowLayout());
this.v = vect;
}
public void paint(Graphics g) {
Dibujable dib;
Enumeration e;
e = v.elements();
while(e.hasMoreElements()){
dib=(Dibujable)e.nextElement();
dib.dibujar(g);
}
}
} // Fin de la clase DrawWindow
Curso de JAVA
21
Curso de JAVA
22
Introducción: VentanaCerrable.java
Introducción: Ejemplo1.java
// Fichero VentanaCerrable.java
import java.awt.*;
import java.awt.event.*;
class VentanaCerrable extends Frame implements WindowListener {
public VentanaCerrable() {
super();
}
public VentanaCerrable(String title) {
super(title);
setSize(500,500);
addWindowListener(this);
}
}
public void windowActivated(WindowEvent e) {;}
public void windowClosed(WindowEvent e) {;}
public void windowClosing(WindowEvent e) {System.exit(0);}
public void windowDeactivated(WindowEvent e) {;}
public void windowDeiconified(WindowEvent e) {;}
public void windowIconified(WindowEvent e) {;}
public void windowOpened(WindowEvent e) {;}
// fichero Ejemplo1.java
import java.util.Vector;
import java.awt.*;
class Ejemplo1 {
public static void main(String arg[]) throws InterruptedException
{
System.out.println("Comienza main()...");
Circulo c = new Circulo(2.0, 2.0, 4.0);
System.out.println("Radio = " + c.r + " unidades.");
System.out.println("Centro = (" + c.x + "," + c.y + ") unidades.");
Circulo c1 = new Circulo(1.0, 1.0, 2.0);
Circulo c2 = new Circulo(0.0, 0.0, 3.0);
c = c1.elMayor(c2);
System.out.println("El mayor radio es " + c.r + ".");
c = new Circulo(); // c.r = 0.0;
c = Circulo.elMayor(c1, c2);
System.out.println("El mayor radio es " + c.r + ".");
System.out.println("Termina main()...");
…
Curso de JAVA
23
Curso de JAVA
Continuación...
24
4
Introducción: Ejemplo1.java (cont)
Introducción: Ejemplo1
VentanaCerrable ventana = new VentanaCerrable("Ventana abierta a
Comentarios de: Curso de Java (0)
No hay comentarios