Java studieren ~ Teil 8 ~ Besetzung

1. Zuallererst

Diesmal "** Cast **"!

Casting wird auch als Typkonvertierung bezeichnet und ist der Prozess der Konvertierung von Typen (int, byte, double usw.).

Int-Typ in Byte-Typ konvertieren! Konvertieren Sie Double Type in Int Type! Konvertieren Sie kurzen Typ in langen Typ!

etc... ~~ Da diese Art der Verarbeitung irgendwann notwendig sein wird, werde ich so schnell wie möglich einen Artikel als Grundbestandteil schreiben ~~ ~~ Und der Objekttyp wird weggelassen ... ~~

Lass uns diese Besetzung studieren!

2. Besetzung

2.1 Grundlegendes Besetzungskonzept

Der Grund, warum die Besetzung überhaupt notwendig ist, ist ...

Beispiel: Zuweisen des Werts einer Variablen vom Typ Byte zu einer Variablen vom Typ int "** can **" Dies liegt daran, dass Byte-Typ und Int-Typ ähnliche Typen sind, der Byte-Typ klein und der Int-Typ groß ist.

キャプチャ_31.png

Folgendes passiert, wenn Sie das obige Beispiel verwenden.

Main.java


public class Main {
	public static void main(String[] args) {

		//Bytetypdeklaration
		byte b = 100;
		//int Typdeklaration
		int i = b; //int ← Bytesubstitution

	}
}

Kann normal zugewiesen werden


Im Gegenteil, wenn Sie vom Typ int dem Bytetyp zuweisen, passiert ein Fehler!

キャプチャ_32.png

Der Grund für den Fehler ist, dass der int-Typ nicht mehr in den Bytetyp als in den Bytetyp passen kann.

Main.java


public class Main {
	public static void main(String[] args) {

		//int Typdeklaration
		int i = 100;
		//Bytetypdeklaration
		byte b = i; //Byte ← int Fehler tritt auf

	}
}

Wenn Sie versuchen, einer Ganzzahl wie dem Typ int einen Wert vom Typ double oder float zuzuweisen, wird weiterhin eine Fehlermeldung angezeigt. Der Integer-Typ enthält nichts nach dem Dezimalpunkt, oder? Da der Bereich, der ausgedrückt werden kann, unterschiedlich ist, wird ein verärgerter Fehler angezeigt, der "Match the type!" Sagt.

2.2 Gewaltsam gegossen

Aber das ist es! Ich muss wirklich besetzen! Wenn du einen ** starken Willen ** brauchst, musst du "** cast **" verwenden.

** Casting ist eine unvernünftige Typkonvertierung, daher wird es nicht empfohlen und sollte nicht missbraucht werden. ** ** **

Wie schreibe ich die Besetzung? Schreiben Sie (Typ) vor die Variable. Bitte geben Sie den Typ ein, den Sie konvertieren möchten.

Mit dem vorherigen Fehler

byte b = i;

Umschreiben

byte b = (byte)i;

OK! !!

Main.java


public class Main {
	public static void main(String[] args) {

		//int Typdeklaration
		int i = 100;
		//Bytetypdeklaration
		byte b = (byte)i; //byte ← int Es tritt kein Fehler auf, weil ich ihn gewirkt habe! !! !!

	}
}

2.3. Cast mit Nebenwirkungen

Da der Typ zwangsweise geändert wird, gibt es einen Nebeneffekt, wenn Sie den Doppeltyp in den Typ int umwandeln, dass nur der Wert des ganzzahligen Teils zugewiesen wird. Seien Sie also vorsichtig! Dann möchte ich die Situation tatsächlich sehen.

Main.java


public class Main {
	public static void main(String[] args) {

		//Doppelte Typdeklaration&Initialisieren
		double doubleNumber = 15.88d;

		//int Typdeklaration
		int intNum;

		//In int-Typ umwandeln&Auswechslung
		intNum = (int) doubleNumber;

		//Zeigen Sie den Wert nach dem Casting an
		System.out.println(intNum); //intNum ist eine ganze Zahl von 15

	}
}

Beim Umwandeln eines Doppeltyps in einen Int-Typ wird die .88d von 15.88d eliminiert und nur 15 werden intNum zugewiesen.

Es gibt viele andere Nebenwirkungen, seien Sie also vorsichtig ... (Horrorstil)

2.4 Implizite und explizite Besetzungen

Es gibt zwei Arten von Abgüssen.

Der Unterschied zwischen diesen beiden ist

--Wenn es kein Problem gibt, auch wenn das erstere nicht explizit besetzt wird

Es ist geworden.

Zuvor eingeführt "[Primitiver Typ](https://qiita.com/koukonko/items/e2714f404b9e369b01b7#21-%E3%83%97%E3%83%AA%E3%83%9F%E3%83%86" % E3% 82% A3% E3% 83% 96% E5% 9E% 8B) ”Zuweisungen von oben nach unten müssen nicht explizit umgewandelt werden, Zuweisungen von unten nach oben sind jedoch explizit. Muss gegossen werden.

Im Moment ist hier eine einfache Tabelle, die sich auf numerische Werte bezieht.

Schimmel Box Bereich
byte -128 ~ 127
short -32768 ~ 32767
int -2147483648 ~ 2147483647
long -9223372036854775808 ~ 9223372036854775807
float 32-Bit-Gleitkommazahl mit einfacher Genauigkeit
double 64-Bit-Gleitkommazahl mit doppelter Genauigkeit

Die Quelle enthält auch Beispiele für implizite und explizite Casts.

Main.java


public class Main {
	public static void main(String[] args) {

		//Implizite Besetzung
		byte b = 1;		 // byte ← int
		short s = b; 	 // short ← byte
		int i = s;		 // int ← short
		long l = i; 	 // long ← int
		float f = l; 	 // float ← long
		double d = f; 	 // double ← float

		//Explizite Besetzung erforderlich
		f = (float) d; 	 // float ← double
		l = (long) f; 	 // long ← float
		i = (int) l; 	 // int ← long
		s = (short) i; 	 // short ← int
		b = (byte) s; 	 // byte ← short

	}
}

Es wird so sein. ~~ Bitte sag mir, ob es schwer zu sehen ist ~~

3. Fazit

Dies ist das Ende der Besetzung. Schneiden Sie auf den Grundteil! !!

Es gibt Szenen, in denen Casts auch für Objekttypen verwendet werden, aber ich werde sie weglassen. Ich frage mich, ob es später verstanden werden sollte.

Und ich habe große Probleme mit der Komposition ...

Nächstes Mal werde ich "scope" schreiben. ~~ Ich denke, es wäre unmöglich, wenn ich keine Kontrollaussagen studieren würde, aber ich würde gerne einen Weg finden, sie zum Überspringen zu bringen und dann zurück zu kommen ~~

Wenn Sie Fehler oder Fragen haben, zögern Sie bitte nicht, Masakari zu werfen. Ich werde mein Bestes geben, um dich zu erstechen! Dies ist hilfreich, da Sie schnell mit Twitter reagieren können.

Dann werde ich beim nächsten Mal mein Bestes geben!

Nächstes Mal → "Java-Teil 9-Bereich studieren"

Recommended Posts

Java studieren ~ Teil 8 ~ Besetzung
Java studieren ―― 3
Java studieren ―― 9
Java studieren ―― 4
Java studieren -5
Java studieren ―― 1
Java # 0 studieren
Java studieren ―― 8
Java studieren ②
Java studieren ―― 7
Java studieren ―― 2
Java studieren ①
Java studieren -10
Java 8 studieren (optional)
Java-Übung Teil 1
Java9 studieren (jShell)
Java 8 studieren (Stream)
Java 8 studieren (Sammler / Sammler)
Java 8 studieren (siehe Methode)
Java 8 studieren (siehe Konstruktor)
Java 8 studieren (Lambda-Ausdruck)
45 Techniken zur Optimierung der Java-Leistung (Teil 1)
Java und Iterator Teil 1 Externe Iterator Edition
Apache Hadoop und Java 9 (Teil 1)
Java Servlet / JSP-Anforderungsbereich Teil 1
Java mit Ramen lernen [Teil 1]
Java # 6 studieren (Wie man Blöcke schreibt)
Java Servlet / JSP-Anforderungsbereich Teil 2
Grundlegende Verwendung von Java Optionaler Teil 1
Java
Java 8 studieren (StaticIF und Standardmethode)
Serververarbeitung mit Java (Einführung Teil.1)
Führen Sie eine Phrasenanalyse in Java 8 durch (Teil 2).
Java 8 studieren (String Joiner und Join)
Java
GAE / Java8-Testversion (Teil 6: "Bereitstellungsfehler")
Java9 studieren (dropWhile, takeWhile und Stream.ofNullable)
Erstellen einer Phrasenanalyse in Java 8 (Teil 1)
Kotlins Klasse Teil 2 zum Senden an Java-Entwickler
Verwenden Sie OpenCV_Contrib (ArUco) mit Java! (Teil 2-Programmierung)
Studieren Sie Java 8 (Datums-API im Paket java.time)
Rufen Sie die GitHub-API über Javas Socket-API Teil2 auf
[# 1 Java] Grundlagen der Java-Major-Prämisse vor dem Studium-
Studieren der Verwendung des Konstruktors (Java)
Einführung in Java ab 0 Teil 1
AWS Lambda (Lambda) Teil 1 mit Java startet jetzt
Java studieren (Grundlegende Prüfung zum Informationsverarbeitungsingenieur)
GAE / Java8-Testversion (Teil 4: "Datenspeicher-Zugriffslogik")
Erstellen einer Matrixklasse in Java Teil 1