Was passiert hier genau (Typumwandlung)?
Warum wird mir hier in der der Konsole nicht schon Hallo! Angezeigt
Und hier schon
ich denke mal, dass da eine implizite Typumwandlung stattfindet, die Chars werden ja bei dem zweiten Bild auch zu einem String, weil sie mit einem String „verknüpft“ werden.
Aber es müsste doch auch bei der ersten Lösung „Hallo!“ in der Konsole stehen, weil ich ja die ganzen int zu Char konvertiere. Wenn ich „System.out.println(y1);“ schreibe kommt ja auch ein H in der Konsole
2 Antworten
Ein + kann eben nur benutzt werden, um etwas an einen String anzufügen. Ansonsten, falls auf beiden Seiten des Plusses kein String ist, bedeutet ein + immer addieren.
Wenn ich ein + bei Chars benutze, dann werden einfach die int-Werte dieser Chars addiert. Weil eben kein String vorkommt.
System.out.println('H'+'a'); // = 169
Liegt wohl einfach daran, dass die Java Entwickler nicht daran gedacht haben, dass jemand mehrere Chars mit Plus zu einem String verbinden möchte, oder diese Idee warum auch immer nicht gut fanden. Ein leerer String, also ein einfaches ""+ davor, löst dein Problem auch.
Ein Char ist nichts weiteres als eine Zahl. Entsprechend ist die Addition darauf eben wie eine arithmetische Addition definiert und nicht wie eine Konkatination.