[JAVA] Über die Standardklasse

Umgang mit Daten

Die Methode zur Behandlung des Datums ist wie folgt -In einer langen Typvariablen gespeichert -Verwenden Sie die Klasse java.date.util ・ Verwenden Sie die Kalenderklasse -Verwendung der SimpleDateFormat-Klasse

In einer langen Typvariablen gespeichert

Charakteristisch

-Für Variablen vom Typ Long werden Datums- und Zeitinformationen durch die Anzahl der verstrichenen Millisekunden (1/1000) ausgedrückt, basierend auf 1970/1/1 00:00:00 (Epoche).

** So ermitteln Sie das aktuelle Datum und die Uhrzeit **

langer Variablenname = System.currentTimeMillis ();: System.currentTimeMilli gibt die aktuelle Zeit in ** Millisekunden zurück. ** ** **

Problem

・ Der Mensch kann die Aufzählung von Zahlenwerten wie "11223344" nicht verstehen ... -Lange Daten werden auch für andere Zwecke verwendet, sodass nicht bekannt ist, ob es sich bei den darin enthaltenen Daten um ein Datum handelt.

Im Paket java.date.util gespeichert

Charakteristisch

** Wenn es sich um eine Datumsvariable handelt, kann festgestellt werden, dass es sich bei dem Inhalt um Datums- und Uhrzeitinformationen handelt **.

wie benutzt man

"Klasse importieren"

Importieren Sie die Klasse java.date.util

"Erstellen Sie eine Datumsinstanz mit dem aktuellen Datum und der aktuellen Uhrzeit."

Datum Variablenname = neues Datum ();

"Erstellen Sie eine Dateninstanz mit Datum und Uhrzeit des Long-Value-Arguments."

Name der Datumsvariablen = neues Datum (Argument mit langem Wert);

** Anwendungsbeispiel **

Date now = new Date();//(1) Erstellen Sie eine Datumsinstanz und rufen Sie das aktuelle Datum und die aktuelle Uhrzeit ab.
System.out.println(now);//Ausgabeergebnis ①
long nowTime = now.getTime();//(2) Verwenden Sie die getTime-Methode der Date-Instanz, um das aktuelle Datum und die aktuelle Uhrzeit des Long-Werts abzurufen.
System.out.println(nowTime);//Ausgabeergebnis ②
Date past = new Date(nowTime);//③ Ersetzen Sie einen langen Wert, um eine neue Dateninstanz zu erstellen
System.out.println(past);//Ausgabeergebnis ③

"Ausgabeergebnis"

Sat Mar 03 11:41:38 JST 2018//①
1520044898396//②
Sat Mar 03 11:41:38 JST 2018//③

Problem

Immerhin ist es schwer zu lesen, weil es einen langen Wert verwendet ...

Verwenden Sie die Kalenderklasse

Charakteristisch

Lange Typdaten, die in der Klasse "Datum" erhalten wurden, können in Daten vom Typ int in der Klasse "Kalender" konvertiert werden.

wie benutzt man

"Verwenden Sie die Calender-Klasse, um Datumsdaten mit Argumenten vom Typ int zu generieren."

Importieren Sie java.util.Calendar;

"Verwenden Sie die Calender-Klasse, um Datumsdaten mit Argumenten vom Typ int zu generieren."

Name der Kalenderinstanz = Calendar.getInstance (); // Erstellt eine Instanz der Calendar-Klasse Instanzname.set (Jahr, Monat, Tag, Stunde, Minute, Sekunde); // Geben Sie beispielsweise Datums- und Zeitinformationen in int-Typ ein. * Monat wird von 0 bis 11 gesetzt! !! Oder Instanzname.set (Kalender. ~, Wert); // Datumsvariablenname = c.getTime (); // Datumstypdaten extrahieren

(So rufen Sie Daten vom Typ int aus der Kalenderklasse ab)

int year = Kalenderklassenvariable .get (Calendar.YEAR); int month = Kalenderklassenvariable .get (Calendar.MONTH); int day = Kalenderklassenvariable .get (Calendar.DAY_OF_MONTH); int hour = Kalenderklassenvariable .get (Calendar.HOUR); int minute = Kalenderklassenvariable .get (Calendar.MINUTE); int second = Kalenderklassenvariable .get (Calendar.SECOND);

"So fügen Sie Datumsangaben in die Kalenderklasse ein"

Instanzname.setTime (Datumstypargument);

** Anwendungsbeispiel **

	public static void main(String[] args) {
		//Erstellen Sie eine Instanz
		Date now = new Date();//Erstellen Sie eine Now-Instanz der Date-Klasse und rufen Sie das aktuelle Datum und die aktuelle Uhrzeit ab
		Calendar calendar = Calendar.getInstance();//Erstellen Sie eine Kalenderinstanz der Calendar-Klasse
		
		//(1) Extrahieren Sie nur das Jahr als int-Typ aus der Kalenderinstanz
		calendar.setTime(now);//(1) Ersetzen Sie die Kalenderinstanz durch die aktuelle Instanz (aktuelles Datum und Uhrzeit)
		int year = calendar.get(Calendar.YEAR);//① Nehmen Sie nur das Jahr aus der Kalenderklasse heraus
		System.out.println(year);//Ausgabeergebnis ①
		
		//② Stellen Sie Jahr und Monat mit dem Typ int ein
		calendar.set(1995,1,20,10,10,10);//(2) Legen Sie das Jahr und den Monat in der Kalenderinstanz mit dem Typ int fest
		Date past = calendar.getTime();//(2) Ersetzen Sie das festgelegte Datum durch die Datumsvariable vergangen
		System.out.println(past);//Ausgabeergebnis ②
	}

"Ausgabeergebnis"

2018//①
Mon Feb 20 10:10:10 JST 1995//②

Verwendung der SimpleDateFormat-Klasse

Charakteristisch

In der Klasse "Date" erhaltene lange Typdaten können in und aus Daten des Typs "String" in der Klasse "SimpleDateFormat" konvertiert werden.

wie benutzt man

"Klasse importieren"

java.text.SimpleDateFormat; Klasse importieren

"String-Typ aus Datumstyp generieren"

SimpleDateFormat Variablenname = new SimpleDateFormat (Formatzeichenfolge); // Eine Instanz erstellen String Variablenname = SimpleDateFormat Instanzname.format (Datumstypvariable); // Konvertiert den Typ von Date in String mit der Formatmethode der SimpleDateFormat-Klasse.

"Datumstyp aus String-Typ generieren"

SimpleDateFormat Variablenname = new SimpleDateFormat (Formatzeichenfolge); // Erstellt eine Instanz der SimpleDateFormat-Klasse Datum Datumstyp Variablenname = SimpleDateFormat-Instanzname.parse (Zeichenfolge); // Konvertiert den Typ von String in Date mit der Analysemethode der SimpleDateFormat-Klasse.

** Anwendungsbeispiel **

	public static void main(String[] args) throws Exception {
		//Erstellen Sie eine Instanz
		Date now = new Date();
		SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

		//Datumstyp → Zeichenfolgentyp
		String date = format.format(now);

		//Zeichenfolgentyp → Datumstyp
		Date past = format.parse("1995/01/20 10:10:10");

		//Ausgabe
		System.out.println(date);
		System.out.println(past);
	}

"Ausgabeergebnis"

2018/03/03 15:59:07
Fri Jan 20 10:10:10 JST 1995

Implizite Vererbung

** Denken **

Wenn Sie beim Definieren einer Klasse die übergeordnete Klasse nicht mit "verlängern" angeben, bedeutet dies, dass die übergeordnete Klasse "java.lang.Object" erbt.

** Inhalt von java.lang.Object **

-Equals () : Überprüft, ob eine Instanz mit sich selbst identisch ist -ToString () : Gibt den Inhalt Ihrer eigenen Zeichenfolge zurück

** Vorteile der impliziten Vererbung **

① Objekt kann als Argument verwendet werden

"Beispiel"

	public static void main(String[] args) {
		Object[] o = new Object[2];
		o[0] = new Hero();
		o[1] = "Hallo";
		for(Object ox:o) {
			System.out.println(ox);
		}
	}
"Ausgabeergebnis"
Java14.Hero@70dea4e
Hallo

Aufgrund des Polymorphismus können alle Objekte grob als "Objekt" betrachtet werden, sodass Sie "Objekt" angeben können, wenn ** argument = irgendetwas **.

(2) Alle Klassen können mit den minimal erforderlichen Methoden ausgestattet werden.

** Über toString **

"Standard"

Modellname @ alphanumerisch

//Bei der Ausgabe einer Hero-Instanz
Java14.Hero@70dea4e

"Wenn du dich ändern willst"

@Override
public String toString(){
 return "Name ist"+this.Name ...
}

Es ist notwendig, die Ausgabemethode wie oben beschrieben zu überschreiben. @ Override bedeutet überschreiben.

** Ungefähr gleich **

Grob gesagt wird beurteilt, ob sie gleich sind. Ob sie gleich sind oder nicht, wird normalerweise mit "==" beurteilt, aber gleich macht ein etwas anderes "Äquivalenzurteil".

"Gleichwert =="

Genau der gleiche Zustand

Hero h1 = new Hero;
Hero h2 = h1;

In diesem Fall sind h1 und h2 gleich.

"Äquivalent gleich"

Der gleiche Inhalt

Hero h1 = new Hero("Yoshihiko")
Hero h2 = new Hero("Yoshihiko")

In diesem Fall sind h1 und h2 unterschiedliche Instanzen, aber sie sind äquivalent, weil sie den gleichen Inhalt haben.

"wie benutzt man"

Da es sich bei dem Standardwert "gleich" jedoch um ein gleichwertiges Urteil handelt, muss es in ein Äquivalenzurteil geändert und verwendet werden.

"Beispiel"

//Hauptklasse
	public static void main(String[] args) {
		Hero hero1 = new Hero();
		hero1.name = "Yoshihiko";
		hero1.hp = 100;

		Hero hero2 = new Hero();
		hero2.name = "Yoshihiko";
		hero2.hp = 100;

		if (hero1.equals(hero2) == true) {
			System.out.println("Gleicher Inhalt");
		} else {
			System.out.println("Es ist anders");
		}
	}
//Heldenklasse
public class Hero {
	String name;
	int hp;
	
    //Umschreiben ist gleich
    @Override
	public boolean equals(Object o) {
		if (this == o) {//Richtig, wenn gleich
			return true;
		}
		if (o instanceof Hero) {//Im Fall derselben Klasse oder einer Eltern-Kind-Beziehungsklasse
			Hero h = (Hero) o;//Konvertieren Sie die Objektklassenvariable o in die Hero-Klassenvariable h und weisen Sie sie der Hero-Typvariablen h zu.
			if (this.name.equals(h.name)) {//Äquivalent, wenn die Namen gleich sind
				return true;
			}
		}
		return false;
	}
}

"Ausgabeergebnis"

Gleicher Inhalt

Wrapper-Klasse

Was ist eine Wrapper-Klasse?

Klassen, die Basisdatentypen wie int entsprechen

Vorteile der Wrapper-Klasse

"Methoden können verwendet werden"

Alle Methoden werden in "statisch" beschrieben, sodass Sie die Wrapper-Klasse verwenden können, ohne sie zu instanziieren.

"Kann als Instanz behandelt werden"

Da es einige APIs gibt, die nicht als Basisdatentypen behandelt werden können, instanziieren wir sie absichtlich einmal, um numerische Werte zu erhalten.

"Anwendungsbeispiel"
		int i1 = 15;//Ersetzen Sie die Variable vom Typ int i1 durch 15
		Integer i2 = Integer.valueOf(i1);//Generierung von i2-Instanzen
		System.out.println(i2);

valueOf: Eine Methode, die eine Integer-Instanz zurückgibt, die den angegebenen int-Wert darstellt

"Ausgabeergebnis"
15

Konvertierung zwischen Basisdatentyp und Wrapper-Klasse

Normalerweise

		int i1 = 15;//Ersetzen Sie die Variable vom Typ int i1 durch 15
		Integer i2 = Integer.valueOf(i1);//i2-Instanzgenerierung ・ Konvertieren Sie vom Typ int in den Typ Integer
		int i3 = i2.intValue();//Vom Integer-Typ in den Int-Typ konvertieren

intValue: Eine Methode, die den Wert von Integer als int zurückgibt

Dabei müssen Sie die Methode jedes Mal verwenden, um die Daten zu konvertieren ...

"AutoBoxing / AutoUnboxing-Funktion"

Wrapper-Klassentyp ⇆ Beim Konvertieren des Basisdatentyps werden valueOf und intValue automatisch ausgeführt. Diese AutoBoxing / AutoUnboxing-Funktion ist standardmäßig verfügbar.

		int i1 = 15;//Ersetzen Sie die Variable vom Typ int i1 durch 15
		Integer i2 = i1;//Automatische Konvertierung vom Typ int in den Typ Integer
		int i3 = i2;//Automatische Konvertierung vom Integer-Typ zum Int-Typ

Recommended Posts

Über die Standardklasse
Über Klassen und Instanzen
[Java] Über anonyme Klassen
Über Klassen und Instanzen (Evolution)
Überlegungen zu Klassen und Instanzen
Über =
Über Java Abstract Class
Informationen zu Ruby-Klassen und -Instanzen
Über Kotlin
Über attr_accessor
Über Hinemos
Über Schienen 6
Über den Frühling ③
Über Aufzählung
Über Optional
Über Hash
Über JitPack
Darüber ()
Über die Kapselung
Über JAVA_HOME
Über statische
Über Ausnahmen
Über den Umfang
[Maven] Über Maven
Über die Idee anonymer Klassen in Java
Über den Standardeingabestream (System.in) nach dem Schließen