Sie sind auf Seite 1von 28

PROGRAMACIÓN ORIENTADA A OBJETOS

¿QUÉ ES UN APPLET?
 Un applet es un componente de una aplicación que
se ejecuta en el contexto de otro programa, por
ejemplo un navegador web. El applet debe ejecutarse
en un contenedor, que lo proporciona un programa
anfitrión, mediante un plugin, o en aplicaciones como
teléfonos móviles que soportan el modelo de
programación por 'applets'.
 A diferencia de un programa, un applet no puede
ejecutarse de manera independiente, ofrece
información gráfica y a veces interactúa con el
usuario, típicamente carece de sesión y tiene
privilegios de seguridad restringidos.
Un applet normalmente lleva a cabo una función muy
específica que carece de uso independiente.
APPLET EN JAVA

 Es un programa de java que puede cargarse y


ejecutarse en un explorador web. En una
computadora de servidor. Un applet se escribe,
compila y pone en un documento HTML. Cuando
un explorador permite a java recuperar y
desplegar el documento en una computadora de
cliente, ejecuta el programa de applet.
 Ya que la maquina virtual de java está
encargada de ejecutar todos los programas
java, inclusive los applets, estos ofrecen una
forma segura y dinámica para bajar y ejecutar
programas en la web.
UN APPLET SE DISTINGUE DE UN PROGRAMA DE
APLICACIÓN JAVA COMÚN EN VARIOS ASPECTOS
IMPORTANTES:

 Un applet no es un programa aislado. No necesita


un método main y está estructurado para
ejecutarse dentro de otra aplicación, por lo
general un explorador web.
 Una aplicación común es un programa
independiente que tiene un método main inicial
y, por lo general, no puede ejecutarse dentro de
un explorador web.
 Puede utilizarse el programa appletviewer para
probar y depurar el código applet.
 Para que un explorador lo cargue con mayor
rapidez, un applet suele ser de tamaño pequeño.
 Lo más probable es que un applet sea un
programa controlador de eventos.
 Un applet es una subclase de la clase applet del
paquete java.applet.
 Por seguridad, un applet se excluye de ciertas
operaciones como lectura y escritura en la
máquina de cliente.
VENTAJAS

Los applets de Java suelen tener las siguientes


ventajas:
 Son multiplataforma (funcionan en Linux,
Windows, Mac OS, y en cualquier sistema
operativo para el cual exista una JVM)
 El mismo applet puede trabajar en "todas" las
versiones de Java, y no sólo la última versión del
plug-in. Sin embargo, si un applet requiere una
versión posterior de la JRE, el cliente se verá
obligado a esperar durante la descarga de la
nueva JRE
 Es soportado por la mayoría de los navegadores
Web
 Puede ser almacenado en la memoria cache de la
mayoría de los navegadores Web, de modo que se
cargará rápidamente cuando se vuelva a cargar la
página Web, aunque puede quedar atascado en la
caché, causando problemas cuando se liberan
nuevas versiones.
 Puede tener acceso completo a la máquina en la
que se está ejecutando, si el usuario lo permite
 Puede ejecutarse con velocidades comparables a la
de otros lenguajes compilados, como C + +
(dependiendo de la version de la JVM)
 Puede trasladar el trabajo del servidor al cliente,
haciendo una solución Web más escalable tomando
en cuenta el número de usuarios / clientes
DESVENTAJAS

Los applets de Java suelen tener las siguientes


desventajas:
 Requiere el plug-in de Java, que no está
disponible por defecto en todos los navegadores
web.
 No puede iniciar la ejecución hasta que la JVM
esté en funcionamiento, y esto puede tomar
tiempo la primera vez que se ejecuta un applet.
 Si no está firmado como confiable, tiene un acceso
limitado al sistema del usuario - en particular no
tiene acceso directo al disco duro del cliente o al
portapapeles.
 Algunas organizaciones sólo permiten la
instalación de software a los administradores.
Como resultado, muchos usuarios (sin privilegios
para instalar el plug-in en su navegador) no
pueden ver los applets.
 Un Applet podría exigir una versión específica del
JRE.
LA MÁQUINA VIRTUAL DE JAVA
 La Máquina Virtual de Java, JVM (Java Virtual
Machine). Para garantizar que los programas son
independientes de la plataforma (capacidad del
programa de trasladarse con facilidad de un
sistema computacional a otro) hay una sola
arquitectura a la que todos los programas Java
son compilados, es decir, cuando se compila un
programa Java en una plataforma
Windows/Intel, se obtiene la misma salida
compilada que en un sistema Macintosh o Unix.
El compilador compila no a una plataforma
determinada, sino a una plataforma abstracta
llamada Máquina Virtual de Java.
 La especificación de la Máquina Virtual de Java
define la JVM como:
una máquina imaginaria que se implementa
emulando por software una máquina real. El
código para la Máquina Virtual de Java se
almacena en ficheros .class, cada uno de los
cuales contiene al menos el código de una clase
pública.
 Cuando se escribe una aplicación Java o un
applet Java, se está escribiendo un programa
diseñado para ejecutarse en la Máquina Virtual
de Java. La Máquina Virtual de Java requiere un
código binario especial para ejecutar los
programas Java, este código no debe tener
instrucciones relacionadas específicamente con la
plataforma.
 Los archivos binarios Java, que se obtienen al
compilar el código fuente, son independientes de la
plataforma y pueden ejecutarse en múltiples
plataformas sin necesidad de volver a compilar el
fuente. Los archivos binarios Java se encuentran en
una forma especial llamada bytecode, que son un
conjunto de instrucciones muy parecidas al código
máquina, pero que no son específicas para ningún
procesador.
El compilador Java toma el programa Java y en lugar
de generar código máquina específico para los
archivos fuente, genera un bytecode. Para ejecutar un
programa Java, se debe ejecutar un programa
llamado intérprete de bytecode, el cual a su vez
ejecuta el programa Java deseado. En el caso de los
applets el intérprete se encuentra integrado en el
navegador Web con capacidad para Java y es
ejecutado automáticamente.
 La desventaja de utilizar los bytecodes es la
velocidad, estos programas tienen una menor
velocidad de ejecución, ya que previamente a
ejecutarse sobre el sistema, deben ser procesados
por el intérprete.
LAS TAREAS PRINCIPALES DE LA JVM SON LAS
SIGUIENTES:

 Reservar espacio en memoria para los objetos creados.


 Liberar la memoria no usada (garbage collection).
 Asignar variables a registros y pilas.
 Llamar al sistema huésped para ciertas funciones,
como los accesos a los dispositivos.
 Vigilar el cumplimiento de las normas de seguridad
de las aplicaciones Java.
 Las referencias a arrays son verificadas en el
momento de la ejecución del programa.
 La JVM gestiona automáticamente el uso de la
memoria, de modo que no queden huecos.
ESQUELETO DE UN APPLET
 Este applet comienza con dos declaraciones
import. La primera importa las clases abstract
windows toolkit(AWT). Los applets interactúan
con el usuario a través de AWT esta contiene una
interfaz grafica basada en ventanas. La siguiente
declaración import importa el paquete applet.
Este paquete contiene la clase Applet. Cada
applet que usted crea debe ser una subclase de
Applet.
 La próxima línea del programa declara la clase
appletskel esta debe declararse como publica por
que se tiene acceso a ella mediante un código
exterior.
/*
un esqueleto de applet
*/
import java.awt.*;
import java.applet.*;
/*
<applet code="appletskel" width=300 height=50>
</applet>
*/
public class appletskel extends applet {
//primer llamado
public void int() {
//inicialización
}
/* segundo llamado después de init( ). también se llama cuando reinicie el applet.*/
public void start() {
//inicia o reanuda la ejecución
}
//cuando se desea parar el applet
public void stop() {
//suspensión de la ejecución
}
//cuando el applet termina. este el ultimo método que se ejecuta.
public void destroy() {
//actividades del programa son destruidas de la memoria
}
//cuando applet es restaurado
public void paint(Graphics g) {
//muestra el contenido en ventana
}
}
 El método init( ) es el primer método en ser
llamado en init( ) su applet inicializara variables
y desempeñara cualquier otra actividad de inicio.
 El método start( ) es llamado después de init( ).
También se le llama para reiniciar el applet luego
de haber sido detenido, como cuando el usuario
retorna a una pagina web previamente
visualizada que contiene un applet . De este
modo, start( ) puede ser llamado mas de una vez
durante el ciclo de vida de un applet.
 El método paint( ) se llama cada vez que debe
retornarse el resultado de su applet .
 Cuando sale de la pagina que contiene su applet,
se llama el método stop( ). Usara stop( ) para
suspender los hilos hijo creados por el applet y
para desempeñar cualquier otra actividad
requerida para dejar el applet, en un estado
seguro e inactivo.
 El método destroy( ) es llamado cuando el applet
ya no se necesita mas. Se usa para desempeñar
cualquier operación de cierre que el applet
requiera.
UN SIMPLE APPLET DE ANUNCIO PUBLICITARIO

 Este applet desplaza un mensaje, de derecha a


izquierda, a través de la ventana applet. Como el
desplazamiento del mensaje es una tarea
repetitiva, esta se representa por un hilo
separado, creado por el applet cuando se
inicializa.
Paso a Paso
1. Cree un archivo fuente de nombre Banner.java.
2. Empiece la creación del anuncio applet con las
siguientes líneas.
/*  Observe que Banner
un simple banner applet. sobrescribe a applet, como se
suponía , pero también
este crea un hilo que desplaza un mensaje implementa a runnable. Esto es
contenido en msg de derecha a izquierda a necesario por que el applet
través de la ventana applet. creara un segundo hilo de
*/ ejecución que se usara para
desplazar el anuncio. El
import java.awt.*;
mensaje que desplazara el
anuncio esta contenido en la
import java.applet.*; variable String msg. Se
/* almacena en t una referencia al
<applet code="Banner" width=300 hilo que ejecuta el applet. La
height=50> variable booleana stopflag se
</applet> usa para detener el applet.
*/ Dentro de init(), el hilo de
public class Banner extends applet referencia a la variable t se fija
implements Runnable { en null.
string msg = "java regula la web ";
thead t;
boolean stopflag;
//inicializa t en null.
public void init() {
t=null;
}
3. Adicione el metodo star() asi:

//inicia el hilo
public void star( ) {
t= new thread(this);
stopflag = false;
t.start( );
}

 El sistema en tiempo de
ejecución llama a start( ) para
iniciar la ejecución del applet.
Dentro de star( ), un nuevo hilo
de ejecución se crea y se le
asigna a la variable thread t.
luego, stopflag se fija en false.
Después, el hilo se inicia por la
llamada a t.start( ). Recuerde
que t.start( ) llama a un método
definido por thread, que hace
que run( ) comience a
ejecutarse.
4. Adicione el metodo run( ).
// punto de entrada para el hilo
que ejecuta el anuncio.  En run( ), los caracteres de la
public void run( ) { cadena contenidos en msg se
char ch; rotan repetidamente hacia la
izquierda. Entre cada rotación
//muestra la bandera se hace una llamada a
for(::) { repaint(). Esto ocasionalmente
try { causa una llamada al método
paint( ), y el contenido actual
repaint(); de msg es visualizado. Entre
cada interacción, run( )
duerme por un cuarto de
thread.sleep(250); segundo. El efecto neto de
ch = msg.charAt(0); run() consiste en que el
msg = contenido de msg se desplaza
msg.substring(1,msg.length()); de derecho a izquierda en
constante movimiento. La
msg += ch; variable stopflag es revisada
if(stopflag) en cada interacción. Cuando
break; esto es true, finaliza el metodo
run( ).
} cath(interruptedException
exc) {}
}
5. Adicione el codigo para stop( ) y
//pausa en el aviso paint( ).
publicitario.
public void stop() {  Si el navegador esta
visualizando el applet cuando
stopflag = true; se ve una pagina nueva, llama
al método stop( ), el cual fija
t = null; stopflag en true y ocasiona el
} final de run( ). También fija t
en null. De esta forma, no hay
//muestre el anuncio mas referencia al objeto
thread, y este puede ser
public void reciclado la próxima vez que se
paint(graphics g) { ejecute el recolector de basura.
Este es el mecanismo usado
para detener el hilo cuando su
g.drawString(msg;50; pagina no se ve mas. Cuando el
applet retorne a su
30); visualización, se llama
nuevamente start( ), que inicia
} un hilo nuevo para ejecutar el
aviso.
import java.awt.*;
import java.applet.*;

public class Banner extends applet implements Runnable {


string msg = "java regula la web ";
thead t;
boolean stopflag;
public void init() {
t=null;
}
public void star( ) {
t= new thread(this);
stopflag = false;
t.start( );
}
public void run() {
char ch;
for(::) {
try {
repaint();
thread.sleep(250);
ch = msg.charAt(0);
msg = msg.substring(1,msg.length());
msg += ch;
if(stopflag)
break;
} cath(interruptedException exc) {}
}
}
public void stop() {
stopflag = true;
t = null;
}
public void paint(graphics g) {
g.drawString(msg;50;30);
}
BIBLIOGRAFIA

 Fundamentos de programación en java 2, Editorial


McGraw-Hill.

 JAVA CON PROGRAMACIÓN ORIENTADA A OBJETOS Y


APLICACIONES EN LA WWW, P. WANG.
MUCHAS GRACIAS

Das könnte Ihnen auch gefallen