Repository navigation
Expand file tree
/
Copy pathcommon-errors-de.html
More file actions
12 lines (12 loc) · 7.49 KB
/
Copy pathcommon-errors-de.html
File metadata and controls
12 lines (12 loc) · 7.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
<!doctype html><html lang="de"><meta charset="utf-8"><title>Häufige Java-Fehler</title><style>body{font:14px sans-serif;max-width:1000px;margin:2em auto}main{columns:2;column-gap:2em}article{break-inside:avoid;margin:0 0 1.2em}h2{font-size:1em}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:11px}@media print{body{font-size:10pt;margin:0}button{display:none}pre{font-size:8pt}}</style><h1>Häufige Java-Fehler</h1><button onclick="print()">Drucken</button><main><article><h2>Hier fehlt ein Semikolon ;</h2><pre>class Example { void go() { int n = 1</pre><p>Java hat die Lücke an dieser Stelle bemerkt. Wenn du sie hier nicht siehst, schau ans Ende der Zeile darüber: Dort fehlt es oft.</p><b>Korrektur</b><pre>class Example { void go() { int n = 1;
} }</pre></article><article><h2>Java kennt keine Variable namens scor</h2><pre>class Example { int score = 1; int go() { return scor; } }</pre><p>Prüfe die Schreibweise (Java unterscheidet Groß- und Kleinschreibung!) und ob die Variable vor dieser Zeile deklariert ist, im selben { }-Block oder als Attribut der Klasse.</p><b>Korrektur</b><pre>class Example { int score = 1; int go() { return score; } }</pre></article><article><h2>Java kennt keine Methode namens og()</h2><pre>class Example { void go() { og(); } }</pre><p>Prüfe die Schreibweise (Java unterscheidet Groß- und Kleinschreibung!) und ob die Methode zu diesem Objekt gehört. Die API-Hilfe zeigt die Methoden der Bibliothek.</p><b>Korrektur</b><pre>class Example { void go() { go(); } }</pre></article><article><h2>Java kennt keine Klasse namens Strng</h2><pre>class Example { Strng text; }</pre><p>Prüfe die Schreibweise: Klassennamen beginnen mit einem Großbuchstaben (String, Sprite). Ist es eine Klasse deines Projekts, muss ihre Datei Strng.java heißen.</p><b>Korrektur</b><pre>class Example { String text; }</pre></article><article><h2>= speichert einen Wert. Zum Vergleichen schreibst du ==</h2><pre>class Example { void go() { int n = 0; if (n = 2) {} } }</pre><p>In einer Bedingung versucht x = 2, die 2 in x zu speichern. Zahlen vergleichst du mit x == 2, Texte mit a.equals(b).</p><b>Korrektur</b><pre>class Example { void go() { int n = 0; if (n == 2) {} } }</pre></article><article><h2>Am Ende dieser Methode fehlt ein return</h2><pre>class Example { int score() { int n = 4; } }</pre><p>Die Methode verspricht einen Wert, aber auf einem Weg durch sie wird nichts zurückgegeben. Jeder Weg muss mit return und einem Wert enden.</p><b>Korrektur</b><pre>class Example { int score() { int n = 4; return n; } }</pre></article><article><h2>Die Datei endet zu früh: Eine schließende geschweifte Klammer } fehlt</h2><pre>class Example { void go() {}</pre><p>Zu jeder { gehört eine passende }. Prüfe, ob jede Methode und die Klasse selbst geschlossen sind.</p><b>Korrektur</b><pre>class Example { void go() {} }</pre></article><article><h2>Die Klammer ( aus Zeile 1 braucht ), hier steht aber }</h2><pre>class Example { void go() { if (true { } } }</pre><p>Schließe die Klammer aus Zeile 1 mit dem passenden Zeichen. Runde (), eckige [] und geschweifte Klammern {} haben verschiedene Aufgaben.</p><b>Korrektur</b><pre>class Example { void go() { if (true) { } } }</pre></article><article><h2>Die Klammer [ aus Zeile 3 braucht ], hier steht aber )</h2><pre> int[] a = new int[3);</pre><p>Schließe die Klammer aus Zeile 3 mit dem passenden Zeichen. Runde (), eckige [] und geschweifte Klammern {} haben verschiedene Aufgaben.</p><b>Korrektur</b><pre>class Example {
void go() {
int[] a = new int[3];
}
}</pre></article><article><h2>Diesem Zeichen fehlt das schließende '</h2><pre>class Example { char c = 'x; }</pre><p>Setze ein Zeichen zwischen zwei gerade einfache Anführungszeichen, zum Beispiel 'x'. Für längeren Text brauchst du doppelte Anführungszeichen.</p><b>Korrektur</b><pre>class Example { char c = 'x'; }</pre></article><article><h2>double passt nicht ohne Verlust in int</h2><pre>class Example { int n = 1.5; }</pre><p>Aus 2.7 würde zum Beispiel 2. Mach die Variable zu einem double, oder wandle bewusst um, indem du (int) vor den Wert schreibst, zum Beispiel (int) getX().</p><b>Korrektur</b><pre>class Example { double n = 1.5; }</pre></article><article><h2>Text kann nicht als int benutzt werden</h2><pre>class Example { int n = "42"; }</pre><p>Auch "42" ist Text und keine Zahl. Wandle ihn um: Integer.parseInt(text) oder Double.parseDouble(text).</p><b>Korrektur</b><pre>class Example { int n = 42; }</pre></article><article><h2>n hat noch keinen Wert</h2><pre>class Example { int go() { int n; return n; } }</pre><p>Gib ihr dort, wo du sie deklarierst, einen Startwert, zum Beispiel int n = 0;</p><b>Korrektur</b><pre>class Example { int go() { int n = 0; return n; } }</pre></article><article><h2>n gibt es hier schon</h2><pre>class Example { void go() { int n = 1; int n = 2; } }</pre><p>Zwei Variablen oder Methoden an derselben Stelle können nicht gleich heißen. Benenne eine um. Um eine vorhandene Variable zu ändern, lass den Typ weg: x = 5; statt int x = 5;</p><b>Korrektur</b><pre>class Example { void go() { int n = 1; n = 2; } }</pre></article><article><h2>go braucht (int), bekommt aber (nichts)</h2><pre>class Example { void go(int n) { go(); } }</pre><p>Prüfe Anzahl, Reihenfolge und Typen der Werte in den Klammern.</p><b>Korrektur</b><pre>class Example { void go(int n) { go(1); } }</pre></article><article><h2>Diesem Text fehlt das schließende "</h2><pre>class Example { String s = "hello; }</pre><p>Ein Text beginnt und endet mit einem geraden Anführungszeichen ". Er kann nicht in der nächsten Zeile weitergehen.</p><b>Korrektur</b><pre>class Example { String s = "hello"; }</pre></article><article><h2>break funktioniert nur in einer Schleife oder einem switch</h2><pre>class Example { void go() { break; } }</pre><p>Um eine Methode früher zu verlassen, benutze return.</p><b>Korrektur</b><pre>class Example { void go() { for (int i=0;i<3;i++) { break; } } }</pre></article><article><h2>Diese Methode ist void und kann keinen Wert zurückgeben</h2><pre>class Example { void go() { return 1; } }</pre><p>Entferne den Wert hinter return, oder ersetze void durch den Typ des Werts, zum Beispiel public int anzahl().</p><b>Korrektur</b><pre>class Example { int go() { return 1; } }</pre></article><article><h2>Eine Methode kann nicht in einer anderen Methode stehen</h2><pre>class Example { void go() { void inner() {} } }</pre><p>Schließe die Methode darüber mit }, bevor du eine neue beginnst.</p><b>Korrektur</b><pre>class Example { void go() {} void inner() {} }</pre></article><article><h2>n ist final und kann sich nicht ändern</h2><pre>class Example { void go() { final int n=1; n=2; } }</pre><p>Entferne final dort, wo n deklariert ist, wenn sich der Wert ändern soll.</p><b>Korrektur</b><pre>class Example { void go() { int n=1; n=2; } }</pre></article><article><h2>Schreibe extends statt exends</h2><pre>public class Welt exends Spielwelt {</pre><p>Mit extends erbt Welt von Spielwelt.</p><b>Korrektur</b><pre>public class Welt extends Spielwelt {
}
class Spielwelt {}</pre></article><article><h2>Schreibe class statt cass</h2><pre>public cass Welt extends Spielwelt {</pre><p>class beginnt die Deklaration von Welt. Nach class steht der Klassenname.</p><b>Korrektur</b><pre>public class Welt extends Spielwelt {
}
class Spielwelt {}</pre></article><article><h2>Schreibe public statt pulic</h2><pre>pulic class Welt extends Spielwelt {</pre><p>Mit public können andere Klassen Welt verwenden.</p><b>Korrektur</b><pre>public class Welt extends Spielwelt {
}
class Spielwelt {}</pre></article></main></html>