Also da sind erst einmal mehrere Dinge in der Zwischenzeit aufgelaufen:
1. float var2 = 3.14;
Du hast da nichts vergessen, denn das ist der vorgegebene Code. Da hast Du aber einen Fehler bekommen. Das bedeutet also, dass dies nicht übersetzbar ist. Das wäre dann erst einmal die Antwort für den Code.
Bei sowas ist dann aber immer die Fehlermeldung wichtig. Du wirst da etwas bekommen haben wie:
java: incompatible types: possible lossy conversion from double to float
Also eine mögliche mit Verlust behaftete Konvertierung von double zu float.
Das bedeutet dann einfach: 3.14 ist ein double. Ein double ist deutlich genauer als ein float. Bei einer Konvertierung geht also etwas verloren. Eine solche Konvertierung ist möglich, aber diese wird nicht implizit gemacht. Es muss eine explizite Konvertierung vorgenommen werden oder es muss ein float angegeben werden. 3.14f wäre ein float Literal.
Ein Beispiel für die implizite Konvertierung war übrigens die erste Zeile: 3 ist ein int und der lässt sich in ein float umwandeln.
2. Dann das Thema Zeichen. Ein Computer kennt nur Zahlen. Diese sind in Bytes gruppiert. Was anderes kann ein Computer also gar nicht speichern. Wenn aber nun ein Zeichen wie '3' gespeichert werden soll, dann muss da irgend eine Zahl gespeichert werden. Eines der ersten Darstellungen war eine ASCII-Tabelle: z.B.
https://www.torsten-horn.de/techdocs/ascii.htm
Da werden alle Zeichen mit einer Zahl zwischen 0 und 127 dargestellt. Die '3' ist die 51.
Dadurch kann man einem char also nun entweder ein char zuweisen oder eben auch eine Zahl.
Anmerkung: Die ASCII Tabelle ist aber nur eine einfache Tabelle von früher. Die wird so heute eigentlich nicht mehr verwendet. Üblich sind heutzutage UTF-16 Codes. Aber die Werte der ASCII Tabelle für die üblichen sichtbaren Zeichen stimmen überein. Die finden sich so bei fast allen Darstellungen, also z.B. auch ISO_5589 und was es sonst noch so gibt.
Zweite Anmerkung: Hier hätte man prinzipiell auch einen Fehler wie oben erwarten können. Denn wir haben ein int Literal, das mit 4 Byte gespeichert wird. Ein char ist aber nur 2 Byte groß. Aber da es eine Konstante ist, weiss der Compiler sozusagen, dass es passt. Ohne dieses Wissen kommt der Fehler, also z.B. hier:
[CODE lang="java" title="Fehler, da int 4 bytes und char nur 2 Bytes groß!"] public char intToChar(int value) {
return value;
}[/CODE]
Hier ist aus meiner Sicht wichtig, dass man sich einfach merkt, wie welche Literale dargestellt werden können. Da gibt es nicht so viele und die muss man einfach lernen. Ebenso die Datentypen. Es sollte bekannt sein, was es so gibt und wie groß diese sind.