'class' or 'interface' expected?
-
Hab folgenden Code und bekomme bei der import Klausel immer einen Fehler ('class' or 'interface' expected) - was mache ich falsch?
class SchlechteKlasse { private int n; public SchlechteKlasse(int n) { this.n = n; } public int getN() {return n;} public String toString(){return ""+n;} } class BessereKlasse extends SchlechteKlasse { public BessereKlasse(int n) {super(n);} public boolean equals(Object o) { BessereKlasse o1 = (BessereKlasse)o; if(o1 == null) return false; return o1.getN()==getN(); } } class GuteKlasse extends BessereKlasse { public GuteKlasse(int n) {super(n);} public int hashCode() { return getN() * 1000 + 47100; } } import java.util.*; public class Main { public static void main(String[] args) { SchlechteKlasse s1 = new SchlechteKlasse(10); SchlechteKlasse s2 = new SchlechteKlasse(20); SchlechteKlasse s3 = new SchlechteKlasse(10); BessereKlasse b1 = new BessereKlasse(10); BessereKlasse b2 = new BessereKlasse(20); BessereKlasse b3 = new BessereKlasse(10); GuteKlasse g1 = new GuteKlasse(10); GuteKlasse g2 = new GuteKlasse(20); GuteKlasse g3 = new GuteKlasse(10); System.out.println(s1.equals(s1)); // true System.out.println(s1.equals(s3)); // false System.out.println(s1.equals(s2)); // false System.out.println(b1.equals(b1)); // true System.out.println(b1.equals(b3)); // true System.out.println(b1.equals(b2)); // false // Hash Code System.out.println(s1.hashCode()); // 19972507 System.out.println(s2.hashCode()); // 32472 System.out.println(s3.hashCode()); // 82725 System.out.println(b1.hashCode()); // 18581223 System.out.println(b2.hashCode()); // 3536198 System.out.println(b3.hashCode()); // 7699183 System.out.println(g1.hashCode()); // 57100 System.out.println(g2.hashCode()); // 67100 System.out.println(g3.hashCode()); // 57100 HashSet S = new HashSet(); HashSet B = new HashSet(); HashSet G = new HashSet(); S.add(s1); S.add(s2); S.add(s3); B.add(b1); B.add(b2); B.add(b3); G.add(g1); G.add(g2); G.add(g3); System.out.println(S); // [10, 10, 20] System.out.println(B); // [20, 10, 10] System.out.println(G); // [20, 10] } }
-
Liegt das alles in Main.java?
Ich würd das import als erste Anweisung in die Klasse schreiben. Alles richtig speichern. Build&Clean Project und dann nochmal Feuer geben!
-
Griffin schrieb:
Liegt das alles in Main.java?
Ich würd das import als erste Anweisung in die Klasse schreiben. Alles richtig speichern. Build&Clean Project und dann nochmal Feuer geben!1. Jede Java-Klasse braucht eine Eigene Datei, dass ist zwar nicht erforderlich, macht das Programm aber übersichtlicher
2. import Anweisungen haben nur am Anfang der Datei, außerhalb der Klasse und nach der package Anweisung was zu suchenDer Fehler besagt, dass an dieser Stelle, zwischen zwei Klassen, kein import, sondern nur eine Interface oder Klassendeklination stehen darf.
-
Kampino schrieb:
2. import Anweisungen haben nur am Anfang der Datei, außerhalb der Klasse und nach der package Anweisung was zu suchen
Der Fehler besagt, dass an dieser Stelle, zwischen zwei Klassen, kein import, sondern nur eine Interface oder Klassendeklination stehen darf.
aso... gut jetzt läufts
-
1. Jede Java-Klasse braucht eine Eigene Datei, dass ist zwar nicht erforderlich, macht das Programm aber übersichtlicher
2. import Anweisungen haben nur am Anfang der Datei, außerhalb der Klasse und nach der package Anweisung was zu suchenMit der Frage, ob alles in einer Klasse liegt, wollte ich nur deine erste Aussage erfragen!
Meine Aussage mit dem import bestätigt auch nur deine zweite Aussage.btw: Natürlich kann eine Datei auch mehrere Klassen enthalten, nämlich private Klassen oder anonyme Klassen