Vous êtes sur la page 1sur 2

A diferencia de los constructores, no tiene nombre ni se pasa argumentos.

Java
permite multiples bloques estaticos como el anterior, los cuales se llaman todos
al cargar la clase. Una de las aplicaciones es cargar metodos natives de la maquina virtual, tipicamente en C.

5.4.5 Metaclases
Existe en Java el concepto de metaclases, o sea clases de clases. Si un objeto
es la instancia de una clase, entonces la propia clase es la instancia de una
metaclase. Este concepto se muestra en el diagrama de la figura 5.23.

Figura 5.23 Concepto de metaclase.

El concepto de metaclase es de gran utilidad, en particular porque permite tratar a una clase como si fuera un objeto. For ejemplo, la figura 5.24 muestra las
relaciones anteriores utilizando la metaclase Class, y relaciones con cualquier
clase y objeto.

Figura 5.24 Concepto de metaclase en Java.

For ejemplo, veamos el siguiente codigo:


Class mfclase = Class.forName(no/nbre_c7ase);
Object miobjeto = mfcTase.newInstanceO;

En la primera linea se traduce el nombre_clase (definido como String) a una


clase mi clase. Observe que esta variable se refiere a una clase manipulada como
objeto. En la segunda linea se instancia miobjeto a partir de miclase. Note que
este proceso se puede aplicar a cualquier clase en Java, dado que la instanciacion se realiza de manera totalmente anonima, todo gracias a la manipulacion
de la clase como si fuese un objeto. De hecho, este tambien es un ejemplo de
polimorfismo (a traves del metodo newlnstance).

5.5 Aplicaciones y applets


Existen dos maneras de estructurar un programa en Java: por aplicaciones o por
applets. Ambos siguen el mismo proceso de desarrollo, incluyendo la gran mayoria de las facilidades que Java ofrece. La diferencia es que las aplicaciones se
ejecutan como cualquier programa "normal", mientras que los applets estan especificamente disenados para correr en el Web a traves de un browser.

180

180 CAP. 5 PROGRAMACION ORIENTADA A OBJETOS CON JAVA

5.5.1 ApHeadones
Las aplicaciones requieren de un metodo especial para iniciar el programa: el
metodo main. La aplicacion mas sencilla es la famosa "Hola Mundo", la cual se
programa de la siguiente manera como aplicacion en Java:
class ej {
public static void main(String args[]) {
System.out.println("Hola Mundo! ") ;
}
}

Al ejecutar el programa escribiria "Hola Mundo".


En una aplicacion que contiene multiples clases, el metodo main puede agregarse a cualquiera de las clases. Dado que el metodo main esta definido como
estdtico, este no tiene acceso a las estructuras internas de la clase. A continuacion se muestra un ejemplo del uso del main,
public class Persona {
public static void main (String args[]) {
for (int i = 0 ; i < args.length; i++)
System.out.print(args[i] + " ");
System.out.print( M \n");
System.exit(O);
}
}

Observe el argumento args de main, que recuerda cierta similitud con argc y
argv en el lenguaje C, solo que integrandolos en uno solo.

5.5.2 Applets
Tomamos ahora el programa anterior de "Hola Mundo", que se programaria de
la siguiente manera como un applet en Java:.
public class ej extends Applet {
public void paint(Graphics g){
g.drawStringC'Hola Mundo! " , 2 5 , 2 5 ) ;
}
}

En lugar del metodo main, un applet requiere una clase que herede de Applet
y sobreescriba el metodo paint, para desplegar textos o graficas en la pantalla.
Todo applet requiere de una pagina html para su ejecucion, por ejemplo e j . html,
como se muestra a continuacion:
<applet code=ej .class width=200 height=200x/applet>

El archivo html puede ejecutarse en un browser o mediante la aplicacion appletviewer de la siguiente forma:
appletviewer ej.html

A diferencia del metodo main, el paso de argumentos iniciales es a traves de


los parametros del archivo html.
APLICACIONES Y APPLETS

181