Java: Objekterstellung und Initialisierungsprozess
1. Datentypen in Java
In Java gibt es 3 Datentypen: Grundlegende Datentypen (in Java, Booleschen, Byte, Short, Int, Long, Char, Float und Double sind grundlegende Datentypen), Referenztyp und Null -Typ. Unter diesen enthält der Referenztyp Klassentyp (einschließlich Array) und Schnittstellentyp.
Die folgende Erklärung deklariert einige Variablen:
int k; a a; // A ist der Name der Objektvariablen des A -Datentyps. B B1, B2,…, B10000; // Angenommen, B ist eine abstrakte Klasse oder Schnittstelle. String S;
HINWEIS: Aus Sicht der Datentypen und Variablen sind die grundlegenden Datentypvariablen K, Klassentypvariablen A und S, abstrakte Klasse oder Schnittstellentypvariable B (10.000), alle Variablen (Kennung).
2. Über den Griff
Um zwischen variablen Identifikatoren von Referenztypen und variablen Identifikatoren des grundlegenden Datentyps zu unterscheiden, verwenden wir das Handle spezifisch, um variable Identifikatoren von Referenztypen zu benennen. Im obigen Beispiel sind B1 bis B10000, A und S alle Griffe. Griff intuitiv auf den Griff und den Griff. Wir verwenden die häufig verwendete chinesische Übersetzung von "Handle" in der Computerwelt.
2.1 [In Windows -Programmierung] Die Bedeutung eines Griffs ist eine eindeutige Ganzzahl, die von Wondows verwendet wird, um Objekte zu identifizieren, die von einer Anwendung erstellt oder verwendet werden. Windows verwendet verschiedene Griffe, um zu identifizieren, z. B. Anwendungsinstanzen, Windows, Steuerelemente, Bitmaps, GDI -Objekte usw. Das Windows -Handle ist ein bisschen wie ein Dateihandle in der C -Sprache.
Aus der obigen Definition können wir feststellen, dass der Griff ein Kennung ist, mit dem ein Objekt oder ein Projekt identifiziert wird. Es ist wie unser Name. Jeder wird einen haben. Unterschiedliche Personen haben unterschiedliche Namen, aber es kann auch jemanden mit demselben Namen wie Sie geben. Aus dem Datentyp handelt es sich nur um eine 16-Bit-Ganzzahl, die nicht signiert ist. Eine Anwendung erhält fast immer ein Handle, indem sie eine Windows -Funktion aufruft, die dann von anderen Windows -Funktionen verwendet werden kann, um das entsprechende Objekt zu verweisen.
Wenn Sie die Griffe gründlicher wissen möchten, kann ich Ihnen sagen, dass Griffe Zeiger auf Zeiger sind. Wir wissen, dass der sogenannte Zeiger eine Speicheradresse ist. Nach dem Start der Anwendung befinden sich die Objekte, aus denen das Programm besteht, im Speicher. Wenn wir es einfach verstehen, scheint es, dass wir mit dieser Adresse jederzeit auf das Objekt zugreifen können, solange wir die erste Adresse dieses Speichers kennen. Aber wenn Sie das wirklich denken, sind Sie sehr falsch. Wir wissen, dass Windows ein virtuelles, speicherbasiertes Betriebssystem ist. In dieser Systemumgebung verschiebt Windows Memory Manager häufig Objekte im Speicher, um die Speicherbedürfnisse verschiedener Anwendungen zu erfüllen. Ein Objekt wird bewegt, bedeutet, dass sich seine Adresse geändert hat. Wenn sich die Adresse immer so ändert, wo sollten wir das Objekt finden?
Um dieses Problem zu lösen, wird das Windows -Betriebssystem für jede Anwendung einige interne Speicheradressen freigesetzt, um die Adressänderungen jedes Anwendungsobjekts im Speicher spezifisch zu registrieren, und diese Adresse (der Speicherort der Speichereinheit) selbst bleibt unverändert. Nachdem der Speicherort des Objekts im Speicher verschoben wird, teilt der Windows Memory Manager der neuen Adresse des Objekts an, um sie zu speichern. Auf diese Weise müssen wir uns nur an diese Handlungsadresse erinnern, um indirekt zu wissen, wo sich das Objekt im Speicher befindet. Diese Adresse wird vom System zugewiesen, wenn das Objekt geladen wird (Laden) und beim Entladen des Systems an das System weitergegeben wird.
Behandeln Sie die Adresse (stabil) → Notieren Sie die Adresse des Objekts im Speicher - inger
2.2 Die Bedeutung von Handles in Java hat ein tiefes Verständnis der Bedeutung von Griffen [in der Windows -Programmierung]. Wir können sagen, dass der Griff ein Begriff ist, den wir beim Erlernen von Java sehr benötigen. Seine Bedeutung ist es, "Objekt selbst" von Objektvariablen zu unterscheiden (oder Striktheit: variable Kennung des Datentyps, zu dem das Objekt gehört).
2.3 Rückkehr zur Variablenerklärung in 1:
Jetzt sollten Sie die folgenden Kommentare eindeutig ansehen.
int k, j; // k speichert eine Ganzzahlnummer. A a; // Die Adresse wird in a gespeichert. B B1, B2,…, B10000; // B1,…, B10000 speichert die Adresse im Inneren. String S; // s speichert die Adresse.
3. Über die Referenz
Was ist ein "Zitat"? "Die Kennung, die Sie manipulieren, ist tatsächlich eine" Referenz "auf ein Objekt". (Denken in Java 2e)
Die Übersetzung lautet: Die Bescheid, die Sie manipulieren, ist tatsächlich eine "Referenz" auf ein Objekt. Oder genauer gesagt, übersetzt in: Die Bescheid, die Sie betreiben, ist tatsächlich eine "Referenz" auf ein Objekt. Offensichtlich ist die Referenz im Originaltext etwas mit einem Anweisungssinn.
Gehen Sie zurück zu Java und beziehen Sie sich auf die ID -Nummer des Objekts, die ID des Objekts oder die Mobiltelefonnummer des Objekts. Natürlich ist das Sprichwort, dass die Referenz die Raumnummer ist, in der das Objekt in Erinnerung lebt. Intuitiv ist der Verweis auf ein Objekt der Rückgabewert beim Erstellen eines Objekts! Eine Referenz ist der Rückgabewert eines neuen Ausdrucks.
neu a (); Hier ist ein Objekt, aber wir verwenden keinen Griff, um die Referenz zu halten (zu halten, zu speichern). Aus mikroskopischer Perspektive vervollständigt der neue Ausdruck die Aufgabe der Objektinitialisierung (drei Schritte, detaillierte Analyse unten) und insgesamt gibt es eine Referenz zurück.
Kehren Sie in 1 wieder zur Variablenerklärung zurück und sehen Sie sich die Kommentare unten an.
A a; // Deklare Handle A deklarieren, wird aber nicht initialisiert, sodass der Wert im Inneren null ist. B B1, B2,…, B10000; // Griffe B1,…, B10000, werden aber nicht initialisiert, so dass der Wert im Inneren null ist. String S; // Deklare Handle S, wird aber nicht initialisiert, so dass der Wert im Inneren null ist.
4. Die Beziehung zwischen Griff und Referenz
A a; // Deklare Handle A, der Wert ist nulla = new a (); // Initialisierung des Handels (Handle = Referenz; dh die Referenz zum Handle zuweisen)
Zitat: Der Wert von neuem A (). Referenzen können einfach als die Adresse angesehen werden, an der das Objekt den Speicherplatz einnimmt. Durch Verweise auf Objekte können sie bequem von anderen Objekten unterschieden werden, und Referenzen sind die eindeutige Identität des Objekts.
Nachdem der Griff initialisiert wurde, können Sie das Griff verwenden, um das Objekt aus der Ferne zu steuern.
Dies dient natürlich nur dazu, die Erstellung und Initialisierung von Objekten aus einem Aspekt zu erklären. Nach dem Verständnis der Beziehung zwischen Handles und Referenzen wird der gesamte Prozess der Objektinitialisierung nachstehend analysiert. Lassen Sie uns zuerst die folgenden Vorbereitungen durchführen, sprechen wir über Stack und Stack.
5. Stapel und Haufen in Java
In Java ist das Gedächtnis in zwei Typen unterteilt: "Stack" und "Heap" (Stack und Heap). Der grundlegende Datentyp wird im "Stapel" gespeichert und der Objektreferenztyp wird tatsächlich im "Haufen" gespeichert, und der Adresswert des Referenzspeichers wird nur im Stapel aufbewahrt.
Lassen Sie uns übrigens über die "==" und "Equals () -Methoden" sprechen, um das Konzept von beiden (Stack und Heap) zu verstehen.
Beim Vergleich von Variablen mit "==" in Java verwendet das System den in der Variablen im Stapel gespeicherten Wert als Vergleichsgrundlage. Der im Basis -Datentyp im Stapel gespeicherte Wert ist sein Containment -Wert, und der im Referenztyp im Stapel gespeicherte Wert ist der Adresswert des Objekts selbst zeigt. Die Objektklasse im Java.lang -Paket hat die Methode für öffentliche Boolesche Equals (Object OBJ). Es vergleicht, ob zwei Objekte gleich sind. Die Equals () -Methode des Objekts gibt nur dann den wahren Reting zurück, wenn die beiden Referenzen mit demselben Objekt verglichen werden (die Griffe sind gleich). (Wie für die Equals () -Methode der String -Klasse überschreibt sie die Equals () -Methode und wird in diesem Artikel nicht erörtert.)
6. Objekterstellung und Initialisierungsprozess
In Java ist Objekt eine Instanz der Klasse. Im Allgemeinen werden bei einer Instanziierung einer Klasse alle Mitglieder einer solchen Klasse, einschließlich Variablen und Methoden, in eine neue Instanz dieses Datentyps kopiert. Analysieren Sie die folgenden zwei Codes.
6.1 Fahrzeug veh1 = neues Fahrzeug ();
In der obigen Anweisung folgt Folgendes:
①Das "neues Fahrzeug" auf der rechten Seite verwendet die Fahrzeugklasse als Vorlage, um ein Fahrzeugklassenobjekt (auch als Fahrzeugobjekt bezeichnet) im Haufenraum zu erstellen.
②Die Ende von () bedeutet, dass nach dem Erstellen des Objekts der Konstruktor der Fahrzeugklasse sofort aufgerufen wird, um das neu erzeugte Objekt zu initialisieren. Es muss einen Konstruktor geben. Wenn nicht erstellt, fügt Java einen Standardkonstruktor hinzu.
③Das "Fahrzeug veh1" links erstellt eine Variable der Fahrzeugklasse.
④ Der Operator "=" lässt die Objektreferenz auf das gerade erstellte Fahrzeugobjekt zeigen. (Rückrufgriffe und Referenzen)
Teilen Sie die obige Aussage in zwei Schritte ein:
Fahrzeug veh1; veh1 = neues Fahrzeug ();
Es ist klarer, auf diese Weise zu schreiben. Es gibt zwei Entitäten: eine ist die Objektreferenzvariable und der andere das Objekt selbst. Im Heap -Raum erstellte Entitäten unterscheiden sich von denen, die im Stapelraum erstellt wurden. Obwohl sie Entitäten sind, die existieren, scheint es schwierig, es genau zu "fangen". Lassen Sie uns den zweiten Satz sorgfältig studieren und herausfinden, wie der Name des gerade erstellten Objekts, das Sie gerade erstellt haben? Einige Leute sagen, es heißt "Fahrzeug". Nein, "Fahrzeug" ist der Name der Klasse (die Erstellungsvorlage für das Objekt). Eine Fahrzeugklasse kann basierend darauf unzählige Objekte erstellen, und diese Objekte können nicht als "Fahrzeug" bezeichnet werden. Das Objekt hat nicht einmal einen Namen, sodass nicht direkt zugegriffen werden kann. Wir können nur durch Objektreferenzen indirekt auf Objekte zugreifen.
6.2 Fahrzeug veh2;
veh2 = veh1;
Da Veh1 und Veh2 nur Verweise auf Objekte sind, wird die zweite Linie nur die Referenz (Adresse) von VEV1 an Veh2 zugewiesen, sodass Veh1 und VEV2 gleichzeitig auf das eindeutige Fahrzeugobjekt verweisen.
6.3 veh2 = neues Fahrzeug ();
Die Referenzvariable Veh2 verweist stattdessen auf das zweite Objekt.
Aus der obigen Anweisung können wir die folgende Schlussfolgerung ziehen: ① Eine Objektreferenz kann auf 0 oder 1 Objekt verweisen; ② Ein Objekt kann n Referenzen auf darauf hinweisen.
Java: Datentypkonvertierung
1. Einfache Arten von Java und deren Kapitalklassen
1.1 Java einfache Typen und Kapselungsklassen Wir wissen, dass Java-Sprache eine typische objektorientierte Programmiersprache ist. In Anbetracht der Vorteile einiger grundlegender Datentypen, die in Struktur, kleinem Speicher und schneller Zugriffsgeschwindigkeit einfach sind, bietet Java weiterhin Unterstützung für diese nicht-adject-orientierten einfachen Datentypen. Wenn Java eine große Anzahl anderer Klassen anbietet, liefert es natürlich auch eingekapselte Klassen, die einfachen Datentypen entsprechen. Daher hat Java unterschiedliche Datentypen wie INT und Ganzzahl (Float und Float, Double und Double ...).
In der Java -Sprache gibt es zwei Hauptkategorien von Datentypen: Der einen ist ein einfacher Typ, auch als Haupttyp (primitiv) bezeichnet, und der andere ist ein Referenztyp (Referenz). Eine einfache Typvariable speichert einen bestimmten Wert, während eine Referenztypvariable eine Referenz auf ein Objekt speichert.
Java bestimmt die Größe jedes einfachen Typs. Diese Größen ändern sich nicht mit den Änderungen in der Maschinenstruktur. Diese Größe ist invariant, was einer der Gründe ist, warum Java -Programme eine starke Portabilität haben.
In der folgenden Tabelle werden die einfachen Typen, die Belegung von Binärbits und die entsprechenden Kapitalklassenklassen aufgeführt, die in Java definiert sind.
Einfache Typen in Tabelle Java
1.2 Warum Einkapselungsklassen verwenden? Nehmen Sie als Beispiel INT und Ganzzahl. Obwohl sie im Wesentlichen eine 32-Bit-Ganzzahl darstellen, sind sie unterschiedliche Datentypen. Tatsächlich sind die in Java direkt verwendeten Ganzzahlen int (für INT und Ganzzahl). Nur wenn die Daten als Identität eines Objekts angezeigt werden müssen, muss der Ganzzahlwert in ein Objekt mit der Innenneige, die entsprechende int, in ein Objekt eingekapselt werden.
Zum Beispiel: Um dem Vektor im Java.util -Paket eine Ganzzahl hinzuzufügen, muss der Ganzzahlwert wie folgt in einer Ganzzahlinstanz eingekapselt werden:
Vektor v = neuer Vektor (); int k = 121; v.addelemt (New Integer (k));
Darüber hinaus liefert Ganzzahl als Kapitatorklasse, das int entspricht, viele Methoden, wie z. B. Ganzzahl -Konstruktionsmethoden, Ganzzahl -Konvertierungsmethoden zu anderen numerischen Typen usw., die in INT -Typdaten nicht verfügbar sind.
2. Konstanten in Java
Wir müssen auf die folgenden Arten von Konstanten achten.
2.1 Wenn hexadezimale Ganzzahlkonstanten in hexadezimal ausgedrückt werden, müssen sie mit 0x oder 0x wie 0xff, 0x9a beginnen.
2.2 Oktalgleger Constant Octal muss mit 0 beginnen, wie beispielsweise 0123, 034.
2.3 Long-Typ-Long-Typ muss mit L enden, wie 9L, 342L.
2.4 Float -Konstanten Da der Standardtyp der Dezimalkonstante doppelte Typ ist, muss f (f) nach dem Float -Typ hinzugefügt werden. Variablen mit Dezimalstellen sind standardmäßig ebenfalls von Doppelart.
float f;
F = 1,3f; // f muss deklariert werden.
2.5 Zeichenkonstanten Zeichenkonstanten müssen in zwei einzelne Zitate eingeschlossen werden (beachten Sie, dass Stringkonstanten in zwei doppelten Anführungszeichen eingeschlossen sind). Charaktere in Java machen zwei Bytes aus.
Einige häufig verwendete Fluchtzeichen.
①/r bedeutet, den Tastatureingang zu akzeptieren, was dem Drücken der Eingabetaste entspricht.
②/n bedeutet eine neue Linie;
③/t repräsentiert ein Registerkartenzeichen, das der Tabellenschlüssel entspricht.
④/b repräsentiert den Backpace -Schlüssel, der dem Hinterraumtaste entspricht.
⑤/'bedeutet einzelne Zitate;
⑥/'' bedeutet Doppelzitate;
⑦ // bedeutet einen Schrägstrich/.
3. Conversion zwischen einfachen Datentypen
Es gibt zwei Möglichkeiten, zwischen einfachen Datenarten zu konvertieren: automatische Konvertierung und Gussumwandlung, die normalerweise auftreten, wenn die Parameter des Ausdrucks oder der Methode übergeben werden.
3.1 Automatische Konvertierung Insbesondere wenn eine "kleine" Daten zusammen mit "großen" Daten berechnet werden, konvertiert das System die "kleinen" Daten automatisch in "große" Daten und führt dann die Berechnung durch. Beim Aufrufen der Methode sind die tatsächlichen Parameter "klein" und die formalen Parameterdaten der aufgerufenen Methode "groß" (wenn es eine Übereinstimmung gibt, wird natürlich die Übereinstimmungsmethode direkt aufgerufen), wandelt das System automatisch die "kleinen" Daten in "große" Daten um und rufe dann die Methode auf. Für mehrere gleichnamige überlastete Methoden wird es natürlich in die "engen" "großen" Daten umgewandelt und aufgerufen.
Diese Typen von "klein" bis "groß" sind (Byte, kurz, char)-intong-flott-double. Was wir hier sprechen, bezieht sich nicht auf die Anzahl der besetzten Bytes, sondern auf die Größe des Bereichs, der den Wert darstellt.
Bitte beachten Sie das folgende Beispiel:
①Die folgende Aussagen können direkt in Java übergeben werden:
Byte B; int i = b; lang l = b; float f = b; doppelte d = b;
② Wenn der Typ mit niedrigem Niveau Zeichenstyp ist, wird er beispielsweise in den entsprechenden ASCII-Codewert konvertiert, wenn Sie in einen Typ auf hoher Ebene (integraler Typ) konvertiert werden
char c = 'c'; int i = c; System.out.println ("Ausgabe:"+i);
Ausgabe:
Ausgabe: 99;
③Für die drei Arten von Byte, Kurz und Zeichen, sie sind horizontal, sodass sie sich nicht automatisch gegenseitig konvertieren können. Die folgende Konvertierung des Gusstyps kann verwendet werden.
kurz i = 99; char c = (char) i; System.out.println ("Ausgabe:"+c);Ausgabe:
Ausgabe: C;
④Wenn es eine Methode im Objektpolymorphismus gibt:
f (byte x) {…}; f (kurz x) {…}; f (int x) {…}; f (lang x) {…}; f (float x) {…}; f (double x) {…}; f (double x) {…}; Es gibt auch: char y = 'a'; Also, welche Methode wird die Anweisung f (y) aufrufen? Die Antwort lautet: f (int x) {...} Methode, da sein formaler Referenzparameter "groß" ist und der "nahe dem".
Und für die Methode:
f (float x) {…}; f (double x) {…}; Es gibt auch: lange y = 123L; Dann lautet die von der Anweisung f (y) aufgerufene Methode f (float x) {…}.
3.2 Casting Wenn "große" Daten in "kleine" Daten konvertieren, können Sie Casting verwenden. Das heißt, Sie müssen das folgende Anweisungsformat verwenden:
int n = (int) 3.14159/2;
Wie Sie sich vorstellen können, kann diese Konvertierung sicherlich zu Überlauf oder einer Verringerung der Genauigkeit führen.
3.3 Erweitern Sie automatisch den Datentyp des Ausdrucks. Achten Sie in Bezug auf die automatische Verbesserung des Typs auf die folgenden Regeln.
① Alle Werte von Byte-, Kurz- und Charaktentypen werden zum INT -Typ befördert.
② Wenn es einen Operanden gibt, der lang ist, ist das Berechnungsergebnis lang;
③ Wenn es einen Operand gibt, der Schwimmertyp ist, ist das Berechnungsergebnis einen Schwimmertyp;
④ Wenn es einen Operand gibt, der doppelte Typ ist, ist das Berechnungsergebnis doppelter Typ;
Beispiel,
Byte B; B = 3; B = (Byte) (B*3); // Byte muss deklariert werden.
3.4 Übergangstypkonvertierung für die Verpackungsklasse Im Allgemeinen deklarieren wir zuerst eine Variable und generieren dann eine entsprechende Verpackungsklasse und können verschiedene Methoden der Verpackungsklasse verwenden, um die Typumwandlung durchzuführen. Zum Beispiel:
① Wenn Sie Float in Doppelart konvertieren möchten:
float f1 = 100,00f; Float F1 = neuer Float (F1); Double D1 = F1.DoubleValue (); // F1.DoubleValue () ist die Methode zur Rückgabe des Doppelwert -Typs der Float -Klasse
②Wenn Sie den Doppel -Typ in einen int -Typ konvertieren möchten:
Doppel D1 = 100,00; Double D1 = neues Double (d1); int i1 = d1.intValue ();
Konvertieren Sie Variablen einfacher Typen in die entsprechende Wrapper -Klasse, und der Konstruktor der Wrapper -Klasse kann verwendet werden. Das heißt: boolescher (boolescher Wert), Zeichen (Zeichenwert), Ganzzahl (int -Wert), langer (langer Wert), Float (Float Value), Double (Double Value)
In jeder Verpackungsklasse gibt es immer eine Methode von × x value (), um die entsprechenden einfachen Typdaten zu erhalten. Mit dieser Methode kann auch die Konvertierung zwischen verschiedenen numerischen Variablen realisiert werden. Beispielsweise kann intValue () für eine doppelte Voraussetzungsklasse ihre entsprechende Ganzzahlvariable erhalten und DoubleValue () seine entsprechende doppelte Präzisions-Real-Typ-Variable erhalten.
4. Umwandlung zwischen Strings und anderen Typen
4.1 Konvertierung anderer Typen zu Zeichenfolgen ① Rufen Sie die String -Conversion -Methode der Klasse auf: X.ToString ();
②automatische Konvertierung: x+";
③ Methoden mit String: String.volueof (x);
4.2 Konvertieren Sie die Zeichenfolge in andere Typen als Werte. ① Konvertieren Sie ihn zuerst in die entsprechende Wrapper -Instanz und rufen Sie dann die entsprechende Methode auf, um sie in andere Typen umzuwandeln. Zum Beispiel lautet das Format der Konvertierung des Doppel -Typ -Wertes des "32.1" im Zeichen: New Float ("32.1"). DoubleValue (). Sie können auch verwenden: double.Valueof ("32.1"). DoubleValue ()
② statische Parsexxx -Methode
String S = "1"; Byte B = Byte.ParseByte (s); Short t = Short.ParSeShort (s); int i = Integer.ParseInt (s); long l = lang.Parselong (s); float f = float.Parsefloat (s); Doppel d = double.Parsedouble (s);
③ Characters GetNumerericValue (char ch) -Methode finden Sie in der API.
5. Konvertierung der Datumsklasse und anderer Datentypen
Es gibt keine direkte Korrespondenz zwischen Ganzzahlen und Datumsklassen, aber Sie können den INT -Typ verwenden, um Jahr, Monat, Tag, Stunde, Minute und Sekunden darzustellen, so dass zwischen den beiden eine Korrespondenz festgelegt wird. Bei dieser Konvertierung können Sie drei Formulare des Datumsklassenkonstruktors verwenden:
①Date (int Jahr, int Monat, int Datum): Int Type repräsentiert Jahr, Monat und Tag ②date (int Jahr, int Monats, int Datum, int hrs, int min): int type repräsentiert Jahr, Monat, Tag, Stunde und Minute ③date (int Jahr, int Monats, int Datum, Int HRs, Int min. Int. Die Klassen, dh eine Zeit, wird als Anzahl der Millisekunden ab 0:00:00 Uhr am 1. Januar 1970 ausgedrückt. Für diese Korrespondenz hat die Datumsklasse auch ihren entsprechenden Konstruktor: Datum (langes Datum).
Holen Sie sich das Jahr, den Monat, den Tag, die Stunde, die Minute, die zweite und Woche in der Datumsklasse. Sie können den Getyear (), GetMonth (), getDate (), Gethers (), getMinutes (), getSeconds (), Getday () verwenden, und Sie können sie auch als Umwandlung der Datumsklasse in ein int umwandeln.
Die Methode GetTime () der Datumsklasse kann die lange Ganzzahl -Nummer erhalten, die der zuvor erwähnten Zeit entspricht. Wie bei der Wrapper -Klasse hat auch die Datumsklasse eine toString () -Methode, mit der sie in die String -Klasse umwandelt werden kann.
Manchmal möchten wir ein bestimmtes Datumformat erhalten, zum Beispiel 20020324, können wir die folgende Methode verwenden, sie zuerst zu Beginn der Datei einführen.
Java.Text.SimpledateFormat importieren; import Java.util. // Wenn Sie das Format von Yyyymmdd SimpleDateFormat sy1 = new SimpledateFormat ("yyyymmdd") erhalten möchten; String DateFormat = Sy1.Format (Datum); // Wenn Sie Jahr, Monat, Tag, SimpledateFormat Sy = new SimpledateFormat ("Yyyyy") erhalten möchten; SimpleDateFormat sm = new SimpledateFormat ("mm"); SimpleDateFormat SD = new SimpledateFormat ("dd"); String syear = sy.format (Datum); String smon = sm.format (Datum); String sday = sd.format (Datum);