Der Einstieg in Java ist viel einfacher als ich dachte. Bisher habe ich bereits ein Verständnis für die grundlegende Syntaxstruktur von Java. Aber ich weiß, dass das gründliche Erlernen jeder Sprache Zeit und Übung erfordert.
Applet ist ein in Java geschriebener Code, der auf der Browserseite ausgeführt werden kann. Der offensichtliche Unterschied zwischen ihm und einer Anwendung liegt in seiner Ausführungsmethode Zum Beispiel startet das C-Programm über das Programm main(), während das Applet komplizierter ist. Ich weiß nicht genau, wie kompliziert es ist, aber ich werde es nach und nach verstehen. Eine wichtige Eigenschaft von Applet ist, dass ich Werte in HTML als Parameter an Applet übergeben kann (den Parameterwert über getParameter() abrufen kann. Auf diese Weise müssen wir das Java-Programm nicht neu kompilieren, um unterschiedliche Effekte zu erzielen). , aber ändern Sie einfach die HTML-Parameterwerte. Da der HTML-Code auch dynamisch generiert werden kann, kann ich die dynamischen Effekte der Webseite nach Belieben steuern.
Es gibt drei Hauptmethoden im Applet-Lebenszyklus: Init, Start und Stop.
init(): Verantwortlich für die Initialisierung des Applets. Es ist dasselbe wie das OnCreate()-Ereignis in Delphi
: Nachdem das System init() aufgerufen hat. Es wird automatisch start() aufgerufen und jedes Mal, wenn das aktuelle Fenster erneut aktiviert wird, wird diese Methode aufgerufen, die dem OnShow()-Ereignis in Delphi ähnelt.
stop(): Diese Methode wird aufgerufen, nachdem der Benutzer die Seite verlässt, auf der sich das Applet befindet. Es ermöglicht Ihnen, die Arbeit einiger Ressourcen zu stoppen, wenn der Benutzer dem Applet keine Aufmerksamkeit schenkt, um die Betriebseffizienz des Systems nicht zu beeinträchtigen. Diese Methode ähnelt OnClose(). Veranstaltung in Delphi.
Das Folgende ist der Dateiname einer Applet-Version von HelloWorld
: HelloWorld.java
import java.applet.Applet;
import java.awt.Graphics;
öffentliche Klasse HelloWorld erweitert Applet
{
String-Titel;
public void init(){
title="Hallo Welt";
}
Farbe für öffentliche Räume (Grafik g)
{
g.drawString(title, 50, 20);
}
}
Wir können sehen, dass das Programm keine Hauptfunktion hat. Wie wird es ausgeführt? Da das Applet in der Browserumgebung ausgeführt wird, müssen wir es in der HTML-Datei aufrufen. Die relevanten Tags, die verwendet werden müssen, sind < Applet>-Tag erstellen wir zunächst die HTML-Datei test.htm, der Quellcode lautet wie folgt:
<html>
<Körper>
Hier kommt mein erstes Applet:
<br>
<applet code=HelloWorld.class width=650 height=500>
</applet>
</APPLET>
</body>
</html>
Legen Sie diese Datei im selben Verzeichnis wie HelloWorld.java ab, kompilieren Sie dann HelloWorld.java, klicken Sie auf test.htm, um sie direkt zu öffnen, und Sie können sehen, dass das Applet-Programm gestartet ist. Oder verwenden Sie den AppletViewer-Befehl AppletViewer test. htm Sie können das Applet auch direkt ohne Browser ausführen.
Das folgende Programm kann uns besser helfen zu verstehen, wie das Java-Applet die oben eingeführten Methoden während seines gesamten Lebenszyklus aufruft.
Dateiname: StartStop.java
import java.awt.*;
import java.applet.*;
öffentliche Klasse StartStop erweitert Applet
{
StringBuffer-Nachricht;
public void init()
{
message=new StringBuffer("Init done...");
}
public void start()
{
message.append("Gestartet...");
}
public void stop()
{
message.append("Gestoppt...");
}
public void paint(Grafiken g)
{
g.drawString(message.toString(), 150, 50);
}
}
Die Bedienungsmethode ist die gleiche wie oben (Informationen zu diesem Programm finden Sie im <Java Concise Tutorial> der Maschinenindustrie).
Im Gegensatz zur C-Sprache ist es viel einfacher, eine GUI mit Java zu implementieren. Da es sich um eine rein objektorientierte Sprache handelt, stellt Javas AWT, genau wie die Komponenten in Delphi, verschiedene Schnittstellenelemente zur Verfügung, die wir aufrufen können. Das Folgende ist eine Vergleichstabelle von GUI-Objekten in Java und entsprechenden Komponenten in Delphi.
Java Delphi
Schaltfläche TButton
Leinwand TCanvas
Kontrollkästchen TKontrollkästchen
CheckboxGroup TRadioGroup
Auswahl TComboBox
Label TLabel
TextField TEdit
TextArea TMemo
ist jedoch kein visuelles RAD-Entwicklungstool (Rapid Application Development). Die Verwendung von Objekten kann nicht nur durch Ziehen und Verschieben erfolgen, sondern erfordert das Schreiben von Aufrufcode Wenn es nicht viele Elemente gibt, kann ich Java automatisch anordnen (Layout). Wenn jedoch viele Elemente vorhanden sind oder wenn die Elemente gemäß den Anforderungen platziert werden müssen In der Anwendung müssen Sie ein Panel (Panel) verwenden, das jedoch hauptsächlich zur Segmentierung der Benutzeroberfläche und zur Erstellung eines groben Layouts verwendet wird Java kann nur zum Positionieren verwendet werden, was ein Fehler ist. Vielleicht habe ich es noch nicht gelernt.
Nachdem Sie begonnen haben, ist es an der Zeit, sich mit dem Konzept von Objekten zu befassen.
Gehen Sie davon aus, dass ein benutzerdefinierter Datentyp namens „Datum“ wie folgt in Java erstellt wird
öffentliches Unterrichtsdatum{
int Tag;
int Monat;
int Jahr;
}
Gibt es also für die folgenden drei Anweisungen, die Variablen deklarieren, einen Unterschied, wenn Java ihnen Speicher zuweist?
(1) int i;
(2) Datum meiner Geburt;
(3) Date mybirth=new Date();
Offensichtlich gibt es das, und die Zuweisung ist wie folgt:
(1) Java reserviert automatisch den Speicher einer Ganzzahlvariablen für die Ganzzahl i, normalerweise zwei Bytes
(2) Java deklariert eine Date-Klasse Der Instanzvariablen mybirth ist Speicherplatz zugewiesen, aber was in diesem Speicherplatz gespeichert ist, ist nur eine Referenz oder eine Adresse. Die aktuelle Adresse enthält nichts, daher können wir diese Instanzvariable nicht verwenden oder auf ihre Mitglieder verweisen.
(3) Java erstellt eine Instanzvariable mybirth der Date-Klasse, weist genügend Speicherplatz für ihre Mitgliedsvariablen zu und gibt schließlich einen Verweis auf diesen Speicherplatz zurück, dh gibt die erste Adresse dieses Speicherplatzes zurück und übergibt dann mybirth. Das heißt, diese erste Adresse wird verwendet, um auf jedes Mitglied dieser Instanzvariablen zuzugreifen, z. B. mybirth.day, mybirth.month, mybirth.year.
Wenn wir eine Variable eines grundlegenden Datentyps deklarieren (z. B. boolean, byte, short, char, int, long, flat, double), weist das System der Variablen automatisch Speicher zu. Wenn jedoch String- oder benutzerdefinierte Variablen deklariert werden, weist das System ihnen nicht sofort Speicher zu.
Dies liegt daran, dass sowohl String- als auch benutzerdefinierte Variablen zur Kategorie der als Klasse A deklarierten Variablen gehören Es handelt sich nicht mehr um ein Datenelement, sondern um einen Verweis auf die Daten. Das heißt, mybirth kann als Zeiger auf eine Instanz der Klasse betrachtet werden, und die Adresse wird darin gespeichert.
Wenn wir tiefer gehen, können wir offensichtlich Instanzvariablen mehrerer Klassen mit unterschiedlichen Namen definieren und sie alle auf eine Instanz verweisen, da der Instanzvariablenwert einer Klasse ein Zeiger ist und dieser Zeiger auf eine Instanz einer Klasse zeigt. Beispiel:
University u=new University();//Eine Instanzvariable u der University-Klasse wird definiert und ihr wird der Speicherplatz des Objekts zugewiesen.
University u2=u;//Eine Instanzvariable u2 wird ebenfalls definiert , und der Wert von u wird ihm zugewiesen,
dann sind u2 und u offensichtlich tatsächlich dasselbe, bis auf ihre unterschiedlichen Namen, da sie
meiner Meinung nach immer noch
auf die gleiche Adresse verweisen.Diese Datenstrukturen müssen ein Programmierer kennen.