Heim  >  Artikel  >  Java  >  Memo für Anfänger zum Erlernen von Java (2)

Memo für Anfänger zum Erlernen von Java (2)

黄舟
黄舟Original
2016-12-20 13:46:541315Durchsuche


Der Einstieg in Java ist viel einfacher als ich dachte, aber ich weiß, dass das gründliche Studium jeder Sprache Zeit und eine Ansammlung von Ü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. Eine Anwendung wie ein C-Programm startet vom main()-Programm. Es beginnt zu laufen und das Applet ist komplizierter. Ich weiß nicht genau, wie kompliziert es ist, aber ich werde es nach und nach verstehen. Eine wichtige Eigenschaft von Applet ist, dass ich den Wert 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). , sondern einfach die Parameterwerte des HTML ändern. Da der HTML-Code auch dynamisch generiert werden kann, kann ich die dynamischen Effekte der Webseite nach Belieben steuern.

Es gibt drei Hauptmethoden der Applet-Lebenszyklus :init, start, stop
init(): Verantwortlich für die Initialisierung des Applets. Diese Methode wird nur einmal während des gesamten Applet-Lebenszyklus ausgeführt. Sie ist dasselbe wie das OnCreate()-Ereignis in Delphi
start(): Nach dem Aufruf von init() ruft das System automatisch start() auf, und diese Methode wird jedes Mal aufgerufen, wenn das aktuelle Fenster erneut aktiviert wird, was 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 eine Applet-Version von HelloWorld
Dateiname: HelloWorld.java

import java.applet.Applet;
import java.awt.Graphics;

public class HelloWorld erweitert Applet
{
String title;
public void init(){
title="
}

public void paint( Grafiken g)
{
g.drawString(title,50,20);
}

}

Wir können sehen, dass es im Programm keine Hauptfunktion gibt , Da das Applet in einer Browserumgebung ausgeführt wird, müssen wir es in einer HTML-Datei aufrufen. Das relevante Tag ist das , Der Quellcode lautet wie folgt.


Hier kommt mein erstes Applet:








Legen Sie diese Datei dort ab Datei als HelloWorld.java In einem Verzeichnis kompilieren Sie HelloWorld.java, klicken Sie auf test.htm, um es direkt zu öffnen, und Sie können sehen, dass das Applet-Programm gestartet ist. Oder verwenden Sie den AppletViewer-Befehl AppletViewer test.htm, um das Applet direkt auszuführen ohne Browser.

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
Java importieren. awt .*;
import java.applet.*;

public class StartStop erweitert Applet
{
StringBuffer message;
public void init()
{
message =new StringBuffer("Init done...");
}

public void start()
{
message.append("Started...");
}

public void stop()
{
message.append("Stopped...");
}

public void paint(Graphics g)
{
g.drawString(message.toString(),150,50);
}

}

Die Operationsmethode ist die gleiche wie oben (Dieses Programm (siehe < of Machinery Industry ;Java Concise Tutorial>)

Im Gegensatz zur C-Sprache ist es viel einfacher, 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

Button TButton
Canvas TCanvas
Checkbox TCheckbox
CheckboxGroup TRadioGroup
Auswahl TComboBox
Label TLabel
TextField TEdit
TextArea TMemo

JDK ist jedoch kein visuelles RAD-Entwicklungstool (Rapid Application Development), und die Verwendung von Objekten kann nicht nur Drag & Drop erfordern Wie bei Delphi reicht das Verschieben aus, aber wir müssen Aufrufcode schreiben. Wie kann ich die in der Schnittstelle platzierten Elemente entsprechend meinen Anforderungen gestalten? Layout), aber wenn viele Elemente vorhanden sind oder Elemente gemäß den Anforderungen der Anwendung platziert werden müssen, müssen Sie in Delphi auch ein Panel (Panel) verwenden, das jedoch hauptsächlich über entsprechende Komponenten (TPanel) verfügt Wird zum Segmentieren der Benutzeroberfläche und zur Ausführung verwendet. Grobes Layout und genaue Positionierung erfordern manuelle Anpassungen durch Entwickler. In Java kann Panel nur zur Positionierung verwendet werden, was ein Fehler ist.

Nachdem Sie begonnen haben, ist es an der Zeit, sich mit dem Konzept von Objekten zu befassen.
Angenommen, ein benutzerdefinierter Datentyp namens „Datum“ wird in Java wie folgt erstellt:
öffentliche Klasse Datum{
int Tag;
int Monat;
int Jahr;
}
Also für Gibt es bei den folgenden drei Anweisungen zur Deklaration von Variablen einen Unterschied, wenn Java ihnen Speicher zuweist?
(1) int i;
(2) Date mybirth;
(3) Date mybirth=new Date();

Offensichtlich gibt es das, und die Verteilung ist wie folgt:
(1) Java weist der Ganzzahl i automatisch den Speicher einer Ganzzahlvariablen zu, normalerweise zwei Bytes
(2) Java deklariert eine Instanzvariable mybirth der Date-Klasse und weist ihr Speicherplatz zu, speichert jedoch den darin gespeicherten Speicherplatz Speicherplatz Es 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 mybirth, das heißt, diese erste Adresse, 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 A deklarierten Klassen gehören Die Variablen der Klasse sind keine Daten mehr, sondern eine Referenz auf die Daten. Das heißt, mybirth kann als Zeiger auf eine Instanz der Klasse betrachtet werden, und die Adresse wird darin einfach gespeichert verstehen. .
Da der Instanzvariablenwert einer Klasse ein Zeiger ist und dieser Zeiger auf eine Instanz einer Klasse zeigt, können wir natürlich Instanzvariablen mehrerer Klassen mit unterschiedlichen Namen definieren und sie alle auf eine Instanz verweisen. Zum 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 Instanz Die Variable u2 ist definiert und der Wert von u wird u2 zugewiesen
Dann sind u2 und u offensichtlich tatsächlich dasselbe, bis auf ihre unterschiedlichen Namen, weil sie auf dieselbe Adresse verweisen

Ich denke es Es ist immer noch wichtig, diesen Punkt zu klären. Diese Datenstrukturen müssen Programmierer kennen.

Das Obige ist der Inhalt des Memos (2) für Anfänger, die Java lernen. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php .cn) !


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn