Hola mundo
Aplicaciones autónomas
// Hola.java public class Hola { public static void main(String[] args) { System.out.println("Hola, mundo!"); } }
- Todo en Java está dentro de una clase, incluyendo programas autónomos.
- El código fuente se guarda en archivos con el mismo nombre que la clase que contienen y con extensión “.java”. Una clase (
class
) declarada pública (public
) debe seguir este convenio. En el ejemplo anterior, la clase esHola
, por lo que el código fuente debe guardarse en el fichero “Hola.java” - El compilador genera un archivo de clase (con extensión “.class”) por cada una de las clases definidas en el archivo fuente. Una clase anónima se trata como si su nombre fuera la concatenación del nombre de la clase que la encierra, el símbolo “$”, y un número entero.
- Los programas que se ejecutan de forma independiente y autónoma, deben contener el método
”main()”
. - La palabra reservada
”void”
indica que el método main no devuelve nada. - El método main debe aceptar un array de objetos tipo String. Por acuerdo se referencia como
”args”
, aunque puede emplearse cualquier otro identificador. - La palabra reservada
”static”
indica que el método es un método de clase, asociado a la clase en vez de una instancias de la misma. El método main debe ser estático o ’’de clase’’. - La palabra reservada
public
significa que un método puede ser llamado desde otras clases, o que la clase puede ser usada por clases fuera de la jerarquía de la propia clase. Otros tipos de acceso son”private”
o”protected”
. - La utilidad de impresión (en pantalla por ejemplo) forma parte de la biblioteca estándar de Java: la clase ‘’’System’’’ define un campo público estático llamado ‘’’out’’’. El objeto
out
es una instancia de ‘’’PrintStream’’’, que ofrece el método ‘’’println (String)’’’ para volcar datos en la pantalla (la salida estándar). - Las aplicaciones autónomas se ejecutan dando al entorno de ejecución de Java el nombre de la clase cuyo método main debe invocarse. Por ejemplo, una línea de comando (en Unix o Windows) de la forma
java –cp . Hola
ejecutará el programa del ejemplo (previamente compilado y generado “Hola.class”) . El nombre de la clase cuyo método main se llama puede especificarse también en el fichero “MANIFEST” del archivo de empaquetamiento de Java (.jar).
Applets
Las applet Java son programas incrustados en otras aplicaciones, normalmente una página Web que se muestra en un navegador.gc.drawString("Hola, mundo!", 65, 95);
<!-- Hola.html --> <html> <head> <title>Applet Hola Mundo</title> </head> <body> <applet code="Hola.class" width="200" height="200"> </applet> </body> </html>
La sentencia
import
indica al compilador de Java que incluya las clases java.applet. Applet y java.awt. Graphics, para poder referenciarlas por sus nombres, sin tener que anteponer la ruta completa cada vez que se quieran usar en el código fuente.La clase
Hola
extiende (extends
) a la clase Applet
, es decir, es una subclase de ésta. La clase Applet
permite a la aplicación mostrar y controlar el estado del applet. La clase Applet
es un componente del AWT (Abstract Window Toolkit), que permite al applet mostrar una interfaz gráfica de usuario o GUI (Graphical User Interface), y responder a eventos generados por el usuario.La clase
Hola
sobrecarga el método paint (Graphics) heredado de la superclase contenedora (Applet
en este caso), para acceder al código encargado de dibujar. El método paint()
recibe un objeto Graphics
que contiene el contexto gráfico para dibujar el applet. El método paint()
llama al método drawString (String, int, int) del objeto.Servlets
Los servlets son componentes de la parte del servidor de Java EE, encargados de generar respuestas a las peticiones recibidas de los clientes.// Hola.java import java.io.IOException; import javax.servlet.*; public class Hola extends GenericServlet { public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter pw = response.getWriter(); pw.println("Hola, mundo!"); pw.close(); } }
import
indican al compilador de Java la inclusión de todas las clases públicas e interfaces de los paquetes java.io y javax.servlet en la compilación.La clase
Hola
extiende (extends
), es heredera de la clase GenericServlet. Esta clase proporciona la interfaz para que el servidor le pase las peticiones al servlet y el mecanismo para controlar el ciclo de vida del servlet.La clase
Hola
sobrecarga el método service (ServletRequest, ServletResponse), definido por la interfaz servlet para acceder al manejador de la petición de servicio. El método service()
recibe un objeto de tipo ServletRequest que contiene la petición del cliente y un objeto de tipo ServletResponse, usado para generar la respuesta que se devuelve al cliente. El método service()
puede lanzar (throws
) excepciones de tipo ServletException e IOException si ocurre algún tipo de anomalía.El método setContentType (String) en el objeto respuesta establece el tipo de contenido MIME a "text/html", para indicar al cliente que la respuesta a su petición es una página con formato HTML. El método getWriter() del objeto respuesta devuelve un objeto de tipo PrintWriter, usado como una tubería por la que viajarán los datos al cliente. El método println (String) escribe la cadena "Hola, mundo!" en la respuesta y finalmente se llama al método close() para cerrar la conexión, que hace que los datos escritos en la tubería o stream sean devueltos al cliente.
Aplicaciones con ventanas
Swing es la biblioteca para la interfaz gráfica de usuario avanzada de la plataforma Java SE.// Hola.java import javax.swing.*; public class Hola extends JFrame { Hola() { setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); add(new JLabel("Hola, mundo!")); pack(); } public static void main(String[] args) { new Hola().setVisible(true); } }
import
indican al compilador de Java que las clases e interfaces del paquete javax.swing se incluyan en la compilación.La clase
Hola
extiende (extends
) la clase javax.swing.JFrame, que implementa una ventana con una barra de título y un control para cerrarla.El constructor
Hola()
inicializa el marco o frame llamando al método setDefaultCloseOperation (int) heredado de JFrame para establecer las operaciones por defecto cuando el control de cierre en la barra de título es seleccionado al valor WindowConstants.DISPOSE_ON_CLOSE. Esto hace que se liberen los recursos tomados por la ventana cuando es cerrada, y no simplemente ocultada, lo que permite a la máquina virtual y al programa acabar su ejecución. A continuación se crea un objeto de tipo JLabel con el texto "Hola, mundo!", y se añade al marco mediante el método add (Component), heredado de la clase Container. El método pack(), heredado de la clase Window, es invocado para dimensionar la ventana y distribuir su contenido.El método
main()
es llamado por la JVM al comienzo del programa. Crea una instancia de la clase Hola
y hace la ventana sea mostrada invocando al método setVisible (boolean) de la superclase (clase de la que hereda) con el parámetro a true. Véase que, una vez el marco es dibujado, el programa no termina cuando se sale del método main()
, ya que el código del que depende se encuentra en un hilo de ejecución independiente ya lanzado, y que permanecerá activo hasta que todas las ventanas hayan sido destruidas.
No hay comentarios:
Publicar un comentario