[Grundkenntnisse in Java] Informationen zur Typkonvertierung

Einführung

Dieser Artikel ist

Für diejenigen, die sagen.

Die Typen und Variablen werden in den folgenden Artikeln beschrieben. [Grundkenntnisse in Java] Informationen zu Typen und Variablen

Konvertierung des Basistyps (primitiver Typ)

Hier erfahren Sie, wie Sie von einer Basistypvariablen in eine andere Basistypvariable konvertieren.

Grundtyp der Konvertierungsquelle Grundtyp des Änderungsziels, das typkonvertiert werden kann
char int, long, float, double
byte short, int, long, float, double
short int, long, float, double
int long, float, double
long float, double
float double
double Keiner

Kleine bis große Form

Der ganzzahlige Datentyp ist byte < short < int < long Es ist ein Gefühl von Größe. Bei der Konvertierung von einem kleinen Typ in einen großen Typ gibt es ** wenn der Typ automatisch konvertiert wird ** und ** eine Umwandlung, bei der der Programmierer absichtlich konvertiert.

Wenn der Typ automatisch konvertiert wird

    byte a = 127;
    short b = a;
    System.out.println(b);//Ausgabeergebnis = 127

    short c = 32767;
    long d = c;
    System.out.println(d);//Ausgabeergebnis = 32767
Cast, dass der Programmierer absichtlich transformiert

    byte a = 127;
    byte b = 127;
    System.out.println((long)a + b);//Ausgabeergebnis = 254

    int c = 2147483647;
    int d = 2147483647;
    System.out.println((long)c + d);//Ausgabeergebnis = 4294967294

Große bis kleine Form

Seien Sie vorsichtig, wenn Sie von großen zu kleinen Typen konvertieren.

Ich erhalte eine Fehlermeldung, wenn ich Folgendes tue.

    long a = Long.MAX_VALUE;//Ersetzen des Maximalwerts von long
    System.out.println(a);//Ausgabeergebnis = 9223372036854775807
    short b = a;//Type mismatch: cannot convert from long to short

Es gibt eine Möglichkeit, den Fehler zu beheben, aber der Inhalt der Variablen ändert sich. Wenn die Größe die Größe überschreitet, die der Datentyp haben kann, werden die Daten abgeschnitten (Datenüberlauf) und das erwartete Ausführungsergebnis wird nicht erhalten.

    long a = Long.MAX_VALUE;//Ersetzen des Maximalwerts von long
    System.out.println(a);//Ausgabeergebnis = 9223372036854775807
    short b = (short) a;//Typkonvertierung durch Besetzung
    System.out.println(b);//Ausgabeergebnis =-1

Referenztypkonvertierung

Dieses Mal werde ich nur die Typkonvertierung von Klassentypen erläutern. Die folgende Abbildung zeigt den Konvertierungszielreferenztyp und die Typkonvertierungsregeln, wenn der Konvertierungsquellenreferenztyp ein Klassentyp ist.

Referenztyp des Konvertierungsziels Typkonvertierungsregeln
Klassentyp 変換先のKlassentypが変換元のKlassentypのスーパークラスであること。
Oberflächentyp 変換先のOberflächentypのインタフェースを変換元のクラス型のクラスが実装していること。
Array-Typ Typkonvertierung ist nicht möglich.

** Implizite Typkonvertierung des Referenztyps ** Übergeordnete Klassentypvariable = neue untergeordnete Klasse ();

//Übergeordnete Klasse
class Oya {
  void greet() {
    String a = "Guten Morgen";
      System.out.println(a);
  }
}

//Untergeordnete Klasse, die die übergeordnete Klasse erbt
class Kodomo extends Oya {
  void name() {
    String b = "Iniesta";
      System.out.println(b);
  }
  public static void main(String[] args) {
      Oya oy = new Kodomo();
      oy.greet();//Ausgabeergebnis = guten Morgen
      Oya oy2 = new Oya();
      oy2.greet();//Ausgabeergebnis = guten Morgen

      Kodomo ko = new Kodomo();
      ko.greet();//Ausgabeergebnis = guten Morgen
      ko.name();//Ausgabeergebnis = Iniesta
      Kodomo ko2 = new Oya();//Fehler: Typ stimmt nicht überein: cannot convert from Oya to Kodomo

  }
}

Wie Sie im Fehler sehen können Untergeordnete Klassentypvariable = neue übergeordnete Klasse (); Du kannst nicht.

Konvertierung in einen String

Es ist möglich, von allen Typen in Zeichentypen zu konvertieren.

    Integer a1 = 123;
    String s1 = "Ah" + a1;
    System.out.println(s1);//Ausgabeergebnis = A 123
    System.out.println(s1 instanceof String);//Ausgabeergebnis = true


    int a2 = -123;
    String s2 = String.valueOf(a2);
    System.out.println(s2);//Ausgabeergebnis =-123
    System.out.println(s2 instanceof String);//Ausgabeergebnis = true

Schließlich

Ich habe also kein tiefes Verständnis für die Konvertierung von Referenztypen Ich werde es hinzufügen, sobald ich es verstehe.

Dann danke ☕️

Recommended Posts

[Grundkenntnisse in Java] Informationen zur Typkonvertierung
[Grundkenntnisse in Java] Umfang der Variablen
Java-Typkonvertierung
Java Grundkenntnisse 1
[Java] Datentyp ①-Basistyp
[Java] Konvertierung des Datumstyps
[Einführung in Java] Informationen zur Typkonvertierung (Besetzung, Promotion)
Java-Überprüfung ③ (grundlegende Verwendung von Arrays / Referenztyp)
[Java] Konvertierung von Listentyp / Array-Typ
[Java] Vergleich der Geschwindigkeit der Typkonvertierung
Einführung in Java für Anfänger Grundkenntnisse der Java-Sprache ①
Informationen zum Java-Grunddatentyp- und Referenztypspeicher
Java Primer Series (Typkonvertierung)
Informationen zur Konvertierung von Zeichenfolgen in Java in voller Breite und halber Breite
[Java] Unterschied zwischen der Zuweisung der Basistypvariablen und der Zuordnung der Referenztypvariablen
Über Biocontainer fastqc und Java
Über Lambda, Stream, LocalDate von Java8
Grundkenntnisse in Ruby on Rails
Grundlegende Verwendung von Java Optionaler Teil 1
Grundlegender Verarbeitungsablauf von Java Stream
[Java] Korrekter Vergleich des String-Typs
Grundstruktur des Java-Quellcodes
Grundwissen
[Java Siler] Informationen zur Typinferenz von var
[Java] Implizite Typumwandlung (AOJ10-Summe von Zahlen)
Konvertierung des Java-Datumsdatentyps (Datum, Kalender, Zeichenfolge)
[Leicht verständliche Erklärung! ] Konvertierung des Referenztyptyps in Java
Java-Studie Nr. 3 (Typkonvertierung und Befehlsausführung)
[Java] Persönliche Zusammenfassung der bedingten Anweisungen (grundlegend)
Beispiel für die Verwendung von ArAutoValueConverter (Feldtypkonvertierung)
Java Zusammenfassung der häufig gesuchten Typkonvertierungen
Java 8 LocalDateTime-Typkonvertierung (String, java.util.Date)
[Java] Berechnungsmechanismus, Operatoren und Typkonvertierung
Typkonvertierung vom Java Big Decimal-Typ zum String-Typ
Über die Java-Schnittstelle
[Java] Informationen zu Java 12-Funktionen
Denkweise beim Studium grundlegender Programmkenntnisse
Zusammenfassung des Java-Wissens
Flexibler Datentypkonvertierungsmechanismus der O / R-Zuordnungsbibliothek Lightsleep für Java 8
Unerwartet unbekannte grundlegende Tipps zu StringBuilder [Java / C #]
[Für Anfänger] Einführung in Java Grundkenntnisse der Java-Sprache ③ Array, Auswahlstruktur, iterative Struktur
Informationen zur Beschreibungsreihenfolge der Java-Systemeigenschaften
Über die Idee anonymer Klassen in Java
[Ruby] Grundkenntnisse über Klasseninstanzvariablen usw.
Grundlegende Java-Grammatik
Informationen zum Datums- / Uhrzeittyp der Entitätsklasse von Doma2
[Java] Aufzählungstyp
Grundlegende Java-Grammatik
Java Optionaler Typ
Informationen zu in Java verwendeten Variablen (lokaler Variablentyp)
Etwas über Java
Wo ist mit Java?
Informationen zu Java-Funktionen
[Java] Grundstruktur
Über Java-Threads
[Java] -Schnittstelle