Download Introducción a Java ¿Qué es Java? Lenguajes Orientados a Objetos

Document related concepts
no text concepts found
Transcript
¿Qué es Java?
Java es
Introducción a Java
Ø
Ø
Ø
Ø
Un lenguaje de programación
Un entorno de desarrollo
Un entorno de ejecución de aplicaciones
Un entorno de despliegue de aplicaciones
Utilizado para desarrollar, tanto applets como
aplicaciones
Introducción a Java. POO 2004
1
Lenguajes Orientados a
Objetos
n
Herramientas
n
n
n
Compilador de Java Javac
Generador de Documentación Javadoc
Depurador de programas
Entorno de ejecución con Maquina Virtual (JVM)
n
n
JRE
Independencia de Plataforma
Introducción a Java. POO 2004
4
Facilitar un entorno interpretado para:
1.
w Software para dispositivos electrónicos inteligentes (e.g.
televisión).
w Desarrollar un entorno de operación portable, seguro,
y eficiente .
1993 Internet y Worl Wide Web
Reorientación hacia WWW
1995 Java y distribución gratuita
Integración en los navegadores comerciales
2.
n
5
Aumentar la velocidad de desarrollo
Generar código portable
Permitir al usuario ejecutar más de una
hebra a la vez.
Soportar cambios dinámicos en tiempo de
ejecución.
Proporcionar más seguridad.
Las siguientes características cumplen los
objetivos:
n
Introducción a Java. POO 2004
Strings, procesos, I/O, propiedades del sistema (fecha,
hora), Applets, API de red, Seguridad, JDBC
Objetivos de Java
1991 Proyecto Green (Sun)
n
Leguaje de programación Java
Bibliotecas (o JavaCore)
3
Historia de Java
n
2
¿Qué es Java?
La sintaxis de Java es similar a C++ en
expresiones y sentencias de control de flujo.
Las expresiones OO es similar en
-protección de acceso a clases
-constructores y declaración de métodos
Java es similar a SmallTalk en:
- Modelo de objetos: herencia simple, acceso
a objetos por referencias
- Compilación a bytecode interpretable
- Memória dinámica y recolector de basuras
Introducción a Java. POO 2004
Introducción a Java. POO 2004
n
La máquina virtual Java (JVM).
Garbage collection.
Seguridad de código
Introducción a Java. POO 2004
6
1
¿Qué es el lenguaje Java?
La máquina virtual de Java
Lenguaje de programación orientado a objetos
n
n
n
n
n
n
Encapsulación, herencia y polimorfismo
Interpretado
Independiente de la arquitectura y portable
Fuertemente tipado
Gestión automática de la memoria (recogida de
basura)
Gestión de excepciones, concurrencia (multihilo)
Programming API
n
Proporciona las especificaciones de hardware.
Lee bytecodes independientes de la plataforma.
Se puede emular por software o implementar en
Hardware.
Se implementa con la herramienta de desarrollo
de Java.
Introducción a Java. POO 2004
9
La máquina virtual de Java
STATIC ( variables de
clase)
Java
Exam
Pila (STACK) (local
variables)
main()
e
Programming API
JVM
Platform Interface
Introducción
a Java. POO 2004
Windows
JVM
Platform Interface
Windows
UNIX
UNIX
8
Proporciona definiciones para:
n
n
n
n
n
n
El conjunto de instrucciones (equivalente al de una CPU)
Los registros del sistema.
El formato de los archivos de clases.
La pila.
El Garbage-collector.
El área de memoria.
Los bytecodes deben mantener las especificaciones
de tipo.
Gran parte de la verificación de tipo, se realiza en el
proceso de compilación.
Cualquier intérprete compatible con Java, debe ser
capaz de ejecutar cualquier programa con archivos
Introducción
a Java.
POO 2004
de clase, definidos
en las
especificaciones
de la 10JVM.
La memoria reservada que no se va a utilizar
más, se tiene que liberar.
En otros lenguajes (como C++, PASCAL), la
liberación de memoria es responsabilidad del
programador.
El lenguaje Java proporciona un thread, que
rastrea las operaciones de reserva de
memoria.
El Garbage Collector:
Verifica y libera memoria que no se necesita.
Se ejecuta automáticamente.
Question
Instance
setAnswer()
aQuestion
q
Introducción a Java. POO 2004
Web Browser
Browser
Programming API
El recolector de basuras
Question
Monticulo (HEAP)
(instance variables)
Exam
Instance
.class
La máquina virtual de Java
Una máquina imaginaria implementada
mediante la emulación por software en una
máquina real. El código para la máquina
virtual Java se almacena en archivos . class,
cada uno de los cuales contiene, al menos, el
código para una clase pública.
La JVM:
n
Platform Interface
7
La máquina virtual de Java
n
Java
Bytecode
java
JVM
n
.java
javac
Núcleo del lenguaje sencillo extendido mediante
una serie de bibliotecas (paquetes)
Introducción a Java. POO 2004
Java
Source
11
Introducción a Java. POO 2004
12
2
Bibliotecas de clases de Java
(packages)
Evolución de Java
Java
IO
util
awt
applet
lang
net
Package lang
Clases con funcionalidades básicas,
arrays, cadenas de caracteres,
Entrada/salida, excepciones, hilos
Package util
Utilidades (números aleatorios,
vectores, propiedades del sistema)
Package net
Package applet
Desarrollo de aplicaciones
ejecutables en navegadores
Package awt y swing
Desarrollo de interfaces gráficas
de usuario
Etcétera,
Conectividad y trabajo con redes:
Introducción a Java. POO 2004
sockets, URL
etcétera, ...
13
Entorno de desarrollo Java
editor
Interprete
Inicio
Clases
Clasesjava
java
(.java)
(.java)
Leer
instrucción
javac
Øedita HolaMundo.java para codificar la clase
HolaMundo con un método main
compilador
javac
bytecodes
(.class)
14
Cómo realizar una aplicación Java
Máquina virtual Java
Clases
Clasesjava
java
(.java)
(.java)
Introducción a Java. POO 2004
Cargador
de clases
Biblioteca
Clases Java
Øjavac HolaMundo.java
Crea HolaMundo.class
Analizar
instrucción
aplicación
Hola Mundo.
Ejecutar
instrucción
bytecodes
(.class)
java
Intérprete JVM
(.zip)
> java HolaMundo
Introducción a Java. POO 2004
15
Introducción a Java. POO 2004
Instalación gratuita de un JDK
(o SDK)
Consideraciones
www.javasoft.com java.sun.com
•Sólo se puede definir una clase pública por
fichero fuente.
•Si el fichero .java contiene una clase pública
entonces debe tomar el mismo nombre de la
clase.
•La compilación correcta de un fichero .java
genera en el mismo directorio un fichero
llamado de la misma forma con extensión . class
Introducción a Java. POO 2004
16
17
jdk1.5.0
Introducción a Java. POO 2004
18
3
Aplicación HolaMundo desde
consola
Variables del Sistema (W98:
autoexec.bat)
class HolaMundo {
public static void main(String[] args) {
System.out.println(“Hola Mundo”);
}
}
>> edita
edita HolaMundo.java
HolaMundo.java
>> javac
javac HolaMundo.java
HolaMundo.java
PATH : Se debe incluir en PATH la ruta a javac,
por ejemplo, c:\jdk1.5.0\bin
CLASSPATH: Se debe incluir en CLASSPATH la
ruta al directorio de clases. También se puede
indicar en el interprete: java HolaMundo –cp
c:\DirectorioDeClases
Sugerencia:
>>java
java HolaMundo
HolaMundo
Hola
Hola Mundo.
Mundo.
Invoca
Invocaelelmétodo
métodomain
main()()de
dela
laclase
claseHolaMundo
HolaMundo
Introducción a Java. POO 2004
19
Variables del Sistema en
W2000 o XP
JDK de SUN (presente en cualquier entorno
de desarrollo)
Comerciales (existen versiones de evaluación)
Jbuilder de Borland,
www.borland.com/jbuilder
Visual J++ de Microsoft
Visualage de IBM, integrado en WebSphere
Entornos gratuitos recomendados:
JCreator
Eclipse, de IBM
21
Introducción a Java. POO 2004
22
Indicación de un JDK en
JCreator
Descarga de JCreator
Introducción a Java. POO 2004
20
Entornos de Desarrollo
Panel de Control /Sistema/
Opciones Avanzadas/
Variables de Entorno
Introducción a Java. POO 2004
Introducción a Java. POO 2004
23
Introducción a Java. POO 2004
24
4
Creación de un WorkSpace
con JCreator
Introducción a Java. POO 2004
Creación de un Proyecto con
JCreator
25
Creación de una Clase con
JCreator
Introducción a Java. POO 2004
27
Ejecutable en múltiples plataformas
Fácil de distribuir
n
Seguridad
n
Soporte para interacción con el usuario:
Introducción a Java. POO 2004
Aplicaciones
n
n
Programas habituales sin ningún tipo de restricción
Ejecución con el intérprete de códigos de byte
Applets
n
n
w Gráficos
n
w Tipos de datos arbitrarios
w Descarga el servidor
Introducción a Java. POO 2004
28
Aplicaciones y applets
Lenguaje de programación adecuado para
Internet
n
26
Nuestro primer programa:
Hola Mundo
Java e internet
n
Introducción a Java. POO 2004
29
Programas escritos en Java cuyo código reside en el
servidor WWW y que sólo pueden ejecutarse tras ser
descargados por un navegador que incorpore Java o en
un visualizador especial
Se llaman a partir de páginas HTML
Tienen limitaciones debido a razones de seguridad
w Acceso a sistema de ficheros
w Ejecución de otras aplicaciones
w Conexiones
Introducción a Java. POO 2004
30
5
Modelo de proceso WWW
Pulsar
enlace
WWW con Java
Decoficar
URL
Pulsar
enlace
Decodificar
URL
Buscar
datos
Buscar datos
y applets
Mostrar
Texto
&
Imágenes
Mostrar texto,
imágenes
y ejecutar
Introducción a Java. POO 2004
31
Funcionamiento
Java
Compilador
<APPLET code =
"nombre.class">
Introducción a Java. POO 2004
32
Cómo realizar un applet Java
Codigos
de byte
editor
Navegador
+
Java
> edita HolaMundoApplet.java
Define el método paint()
Clases
Clasesjava
java
(.java)
(.java)
> edita HolaMundoApplet.html
Invoca el applet
compilador
javac
Navegador
Máquina (Netscape
Virtual
Explorer)
Java
Introducción a Java. POO 2004
HolaMundoEnApplet.html
Fichero
Fichero
HTML
HTML
bytecodes
(.class)
Navegador o
appletviewer
33
Introducción a Java. POO 2004
34
Realización del applet con
JCreator
Cómo realizar un applet Java
<HTML>
<HTML>
<HEAD>
<HEAD>
</HEAD>
</HEAD>
<CENTER>
<CENTER>
<APPLET
<APPLET
code=HolaMundoEnApplet
code=HolaMundoEnApplet.class"
.class"
width
width == "500"
"500"
height
height== "300"
"300"
>>
</APPLET>
</APPLET>
</CENTER>
</CENTER>
</HTML>
</HTML>
editor
> javac HolaMundoApplet.java
HolaMundoEnApplet.java
import
import java.awt.*;
java.awt.*;
import
import java.applet.*;
java.applet.*;
public
public class
class HolaMundoEnApplet
HolaMundoEnApplet extends
extends
Applet
Applet {{
public
public void
void init()
init() {{
resize
resize(150,
(150, 125);
125);
}}
public
public void
void paint
paint(( Graphics
Graphics gg )) {{
g.drawLine
g.drawLine(10,
(10, 10,
10, 100,
100, 10);
10);
g.drawString
g.drawString(( "Hola
"Hola Mundo!",30,30);
Mundo!",30,30);
g.drawLine
(10,
50,
g.drawLine (10, 50, 100,
100, 50);
50);
}}
}}
Introducción a Java. POO 2004
35
Introducción a Java. POO 2004
36
6
Realización del applet con
JCreator
Introducción a Java. POO 2004
Visualización en AppletViewer
37
Introducción a Java. POO 2004
38
Visualización en navegadores
Introducción a Java. POO 2004
39
7