Comenzar con Java es mucho más simple de lo que pensaba. Hasta ahora, ya entiendo la estructura de sintaxis básica de Java. Pero sé que el estudio en profundidad de cualquier idioma requiere acumulación de tiempo y práctica.
El Applet es un código escrito en Java que se puede ejecutar en el lado del navegador. La diferencia obvia entre este y una aplicación radica en su método de ejecución. Por ejemplo, el programa C comienza a ejecutarse desde el programa main (), mientras que el Applet es más complicado. No sé exactamente qué tan complicado es, pero lo entenderé gradualmente. Una propiedad importante del Applet es que puedo pasar valores en HTML como parámetros al Applet (obtener el valor del parámetro a través de getParameter()). De esta manera, para producir diferentes efectos, no necesitamos volver a compilar el programa Java. , pero simplemente modifique los valores de los parámetros HTML. Dado que el código HTML también se puede generar dinámicamente, puedo controlar los efectos dinámicos de la página web como desee.
Hay tres métodos principales en el ciclo de vida del subprograma: inicio, inicio y parada.
init(): Responsable de la inicialización del Applet. Este método solo se ejecuta una vez durante todo el ciclo de vida del Applet. Es lo mismo que el evento OnCreate() en Delphi
start(): Después de que el sistema llama a init(), Llamará automáticamente a start(), y cada vez que se reactive la ventana actual, se llamará a este método, que es similar al evento OnShow() en Delphi.
stop(): este método se llama después de que el usuario abandona la página donde se encuentra el subprograma. Le permite detener el trabajo de algunos recursos cuando el usuario no está prestando atención al Applet para no afectar la eficiencia operativa del sistema. Y no necesitamos eliminar artificialmente este método. Este método es similar a OnClose(). evento en Delfos.
El siguiente es el nombre de archivo de una versión Applet de HelloWorld
: HelloWorld.java
import java.applet.Applet;
importar java.awt.Graphics
clase pública HelloWorld extiende Applet
{
Título de cadena;
inicio público vacío(){
título="Hola mundo";
}
pintura de vacío público (Gráficos g)
{
g.drawString(título, 50, 20);
}
}
Podemos ver que no hay una función principal en el programa, entonces, ¿cómo se ejecuta? Dado que el subprograma se ejecuta en el entorno del navegador, debemos llamarlo en el archivo HTML. Las etiquetas relevantes que deben usarse son <. Etiqueta Applet>, primero creamos el archivo HTML test.htm, el código fuente es el siguiente:
<html>
<cuerpo>
Aquí viene mi primer subprograma:
<br>
<código del subprograma=HelloWorld.class ancho=650 alto=500>
</applet>
</APPLET>
</cuerpo>
</html>
Coloque este archivo en el mismo directorio que HelloWorld.java, luego compile HelloWorld.java, haga clic en test.htm para abrirlo directamente y podrá ver que el programa Applet se inicia o use el comando AppletViewer AppletViewer test. htm También puedes ejecutar el Applet directamente sin un navegador.
El siguiente programa puede ayudarnos a comprender mejor cómo el subprograma Java llama a los métodos que presentamos anteriormente a lo largo de su ciclo de vida.
Nombre del archivo: StartStop.java
import java.awt.*;
importar java.applet.*;
la clase pública StartStop extiende el subprograma
{
mensaje StringBuffer;
inicio público vacío()
{
mensaje=new StringBuffer("Inicio hecho...");
}
inicio vacío público()
{
mensaje.append("Iniciado...");
}
parada nula pública()
{
mensaje.append("Detenido...");
}
pintura vacía pública (Gráficos g)
{
g.drawString(message.toString(), 150, 50);
}
}
El método de operación es el mismo que el anterior (para este programa, consulte el <Tutorial conciso de Java> de la industria de maquinaria)
A diferencia del lenguaje C, es mucho más fácil implementar GUI usando Java. Dado que es un lenguaje puramente orientado a objetos, AWT de Java proporciona varios elementos de interfaz para que los llamemos, al igual que los componentes de Delphi. La siguiente es una tabla comparativa de objetos GUI en Java y componentes correspondientes en Delphi.
Java Delfos
Botón TBotón
Lona TCanvas
Casilla de verificación TCasilla de verificación
Casilla de verificaciónGrupo TRadioGroup
Elección TComboBox
Etiqueta TEtiqueta
Campo de texto T
TextArea TMemo
Sin embargo, JDK no es una herramienta de desarrollo visual RAD (desarrollo rápido de aplicaciones). El uso de objetos no se puede realizar solo arrastrando y desplazando como Delphi, sino que requiere que escribamos código de llamada. Esto crea un problema, ¿cómo puedo? ¿Hacer que los elementos se coloquen en la interfaz de acuerdo con mis requisitos? Cuando no hay muchos elementos, puedo dejar que Java diseñe automáticamente (Diseño), pero cuando hay muchos elementos, o cuando los elementos deben colocarse de acuerdo con los requisitos. Para la aplicación, debe usar un panel (Panel). El panel también tiene componentes correspondientes (TPanel) en Delphi, pero se usa principalmente para segmentar la interfaz y hacer un diseño aproximado. El posicionamiento preciso requiere un ajuste manual por parte del desarrollador. Java, solo se puede usar El panel se usa para posicionarlo, lo cual es un defecto. Quizás aún no lo haya aprendido.
Después de empezar, es hora de sumergirnos en el concepto de objetos.
Supongamos que se crea un tipo de datos personalizado llamado Fecha en Java de la siguiente manera
Fecha de clase pública {
día entero;
mes entero;
año entero;
}
Entonces, para las siguientes tres declaraciones que declaran variables, ¿hay alguna diferencia cuando Java les asigna memoria?
(1) int i;
(2) Fecha de mi nacimiento;
(3) Fecha minacimiento=nueva Fecha();
Obviamente lo hay, y la asignación es la siguiente:
(1) Java asigna automáticamente la memoria de una variable entera para el entero i, generalmente dos bytes
(2) Java declara una clase Fecha A la variable de instancia mybirth se le asigna espacio de almacenamiento, pero lo que se almacena en este espacio de almacenamiento es solo una referencia o una dirección. No hay nada en la dirección actual, por lo que no podemos usar esta variable de instancia ni hacer referencia a sus miembros.
(3) Java crea una variable de instancia mybirth de la clase Date, asigna suficiente espacio de almacenamiento para sus variables miembro y finalmente devuelve una referencia a este espacio de almacenamiento, es decir, devuelve la primera dirección de este espacio de almacenamiento y luego pasa mybirth. es decir, esta primera dirección se utiliza para acceder a cada miembro de esta variable de instancia, como minacimiento.día, minacimiento.mes, minacimiento.año.
Cuando declaramos una variable de un tipo de datos básico (como booleano, byte, corto, char, int, largo, plano, doble), el sistema asignará automáticamente memoria para la variable. Pero si se declaran variables de cadena o definidas por el usuario, el sistema no les asignará memoria de inmediato. ¿Por qué esto
se debe a que tanto las variables de cadena como las definidas por el usuario pertenecen a la categoría de clases A declaradas como variables? ya no es un dato, sino una referencia a los datos, es decir, mybirth puede considerarse como un puntero a una instancia de la clase y la dirección se almacena en él.
Profundizando más, dado que el valor de la variable de instancia de una clase es un puntero, y este puntero apunta a una instancia de una clase, obviamente podemos definir variables de instancia de múltiples clases con diferentes nombres y apuntarlas todas a una instancia. Por ejemplo:
University u=new University();//Se define una variable de instancia u de la clase University y se le asigna el espacio de almacenamiento del objeto
University u2=u;//También se define una variable de instancia u2. , y se le asigna el valor de u. Dado u2
, entonces obviamente u2 y u son en realidad lo mismo excepto por sus nombres diferentes, porque creo
que aún es importante aclarar este punto. Estas estructuras de datos son lo que un programador necesita saber.