Klassen Klassen im Array

Mr.GreenTea

Mitglied
Hallo zusammen,

ich bin letztes Semester mit C eigentlich ganz gut klar gekommen. Bei Problemen konnte ich alles mit Hilfe von google lösen.

Dieses Semester lerne ich Java und bin gerade an ein Problem gestoßen, dass ich selbst nach langem googlen :rtfm: nicht lösen konnte.

Unser Prof hat uns eine Klasse vorgegeben:

[Java]class BereichsUmsatz
{
String bereich;
double umsatz;
}
[/Java]

Nun sollen wir in zehn Array Feldern zehn verschiedene Klassen "BereichsUmsatz" anlegen.

[Java]

public class Aufgabe1 {

class BereichsUmsatz
{
String bereich;
double umsatz;
}

public static void main(String[] args) {

int i;

BereichsUmsatz[] bu = new BereichsUmsatz[10];
bu[0] = new BereichsUmsatz();
bu[1] = new BereichsUmsatz();
bu[2] = new BereichsUmsatz();
bu[3] = new BereichsUmsatz();
bu[4] = new BereichsUmsatz();
bu[5] = new BereichsUmsatz();
bu[6] = new BereichsUmsatz();
bu[7] = new BereichsUmsatz();
bu[8] = new BereichsUmsatz();
bu[9] = new BereichsUmsatz();
bu[10] = new BereichsUmsatz();


bu[0].bereich = "Bremen";
bu[0].umsatz = 5000;
bu[1].bereich = "Dresden";
bu[1].umsatz = 9000;
bu[2].bereich = "Frankfurt";
bu[2].umsatz = 12000;
bu[3].bereich = "Hamburg";
bu[3].umsatz = 1000;
bu[4].bereich = "Hannover";
bu[4].umsatz = 8000;
bu[5].bereich = "Köln";
bu[5].umsatz = 3000;
bu[6].bereich = "Leipzig";
bu[6].umsatz = 3000;
bu[7].bereich = "München";
bu[7].umsatz = 4000;
bu[8].bereich = "Potsdam";
bu[8].umsatz = 5000;
bu[9].bereich = "Stuttgart";
bu[9].umsatz = 8000;


for(i = 0; i < 10; i++)
{
System.out.println(bu.bereich);
System.out.println(bu.umsatz);
}


}

}
[/Java]

Mal abgesehen davon, dass ich den Sinn des Codes von Zeile 14 bis 24 nicht verstanden hab???:L, gibt er mir in Zeile 14 folgende Fehlermeldung aus:

"No enclosing instance of type Aufgabe1 is accessible. Must qualify the allocation with an enclosing instance of type Aufgabe1 (e.g. x.new A() where x is an
instance of Aufgabe1)."

Ich hab schon viel von Setter und Getter gelesen. Schätze mal, das sind diese Methoden, die in Klassen vorkommen. Allerdings hat unser Prof darauf bestanden, dass die Klasse so bleibt wie sie ist und da kann ich, wenn ich mich nicht täusche, diese Methoden nicht verwenden.
 

X5-599

Top Contributor
Es liegt daran dass die main() Methode static ist. Er erwartet jetzt sowas wie:
Code:
bu[0] = new Aufgabe1().new BereichsUmsatz();

Angenommen die Methode wäre NICHT static ginge auch sowas:
Code:
bu[0] = new Aufgabe1.BereichsUmsatz();

Dritte Möglichkeit: Die innere Klasse BereichsUmsatz wird ebenfalls static. Dann funktioniert dein Code.
Code:
bu[0] = new BereichsUmsatz();

Ich weiss jetzt leider nicht was euer Prof erwartet. Weil er sagt die Klasse darf nicht verändert werden. Um die BereichsUmsatz Klasse static zu machen schreibt man:
Code:
static class BereichsUmsatz
{
    String bereich;
    double umsatz;
}
 

Mr.GreenTea

Mitglied
@X5-599:

Da unser Prof darauf besteht, dass die Klasse nicht static ist, habe ich das static aus der
main() genommen.

Dann kommt folgende Fehlermeldung:

Fehler: Hauptmethode ist nicht static in Klasse Aufgabe1. Definieren Sie die Hauptmethode als:
public static void main(String[] args)

Ich finde Java momentan noch wesentlich komplizierter als C. Kann das sein? Mit den Strukturen in C bin ich super klar gekommen. Hier ändert sich gleich alles, nur weil ich die main als statisch definiere...:noe:

Ich verwende Eclipse als Umgebung. Vll gibts ja dazu auch ne Alternative. Bin mit Eclipse eh nich ganz zufrieden.

Zeile 24 müsste auch raus

Danke für den Hinweis :D
 
Zuletzt bearbeitet:

Ikaron

Bekanntes Mitglied
Hallo. Ich persönlich finde Java deutlich angenehmer als C, aber das ist nur meine Meinung ;)

Dein Problem ist, dass die Klasse "BereichsUmsatz" als normale Klasse INNERHALB der Klasse "Aufgabe1" definiert ist. Somit kann nur ein Objekt der Klasse Aufgabe1 einen neuen "BereichsUmsatz" erstellen.

Somit muss das ganze Feld (Array) von der Mainmethode nach Aufgabe1 verschoben werden, z.B. so:

Java:
    public class Aufgabe1 {
       
        class BereichsUmsatz
        {
            String bereich;
            double umsatz;
        }

        private BereichsUmsatz[] bu;
     
        public Aufgabe1() {
           
            bu = new BereichsUmsatz[10];
            bu[0] = new BereichsUmsatz();
            bu[1] = new BereichsUmsatz();
            bu[2] = new BereichsUmsatz();
            bu[3] = new BereichsUmsatz();
            bu[4] = new BereichsUmsatz();
            bu[5] = new BereichsUmsatz();
            bu[6] = new BereichsUmsatz();
            bu[7] = new BereichsUmsatz();
            bu[8] = new BereichsUmsatz();
            bu[9] = new BereichsUmsatz();           
           
            bu[0].bereich = "Bremen";
            bu[0].umsatz = 5000;
            bu[1].bereich = "Dresden";
            bu[1].umsatz = 9000;
            bu[2].bereich = "Frankfurt";
            bu[2].umsatz = 12000;
            bu[3].bereich = "Hamburg";
            bu[3].umsatz = 1000;
            bu[4].bereich = "Hannover";
            bu[4].umsatz = 8000;
            bu[5].bereich = "Köln";
            bu[5].umsatz = 3000;
            bu[6].bereich = "Leipzig";
            bu[6].umsatz = 3000;
            bu[7].bereich = "München";
            bu[7].umsatz = 4000;
            bu[8].bereich = "Potsdam";
            bu[8].umsatz = 5000;
            bu[9].bereich = "Stuttgart";
            bu[9].umsatz = 8000;
        }

        public static void main(String[] args) {
           
            Aufgabe1 aufgabe = new Aufgabe1();
           
            for(int i = 0; i < 10; i++)
            {
                System.out.println(aufgabe.bu[i].bereich);
                System.out.println(aufgabe.bu[i].umsatz);
            }
        }
    }

ALLERDINGS: Wenn der Prof dir NUR diese Klasse vorgegeben hat, und NICHT Aufgabe1, dann darfst du wahrscheinlich BereichsUmsatz in der eigenen BereichsUmsatz.java-Datei definieren - Dann ist es keine innere Klasse mehr und du kannst es verwenden, ohne eine "enclosing instance" vom Typ Aufgabe1 zu haben. Wenn das zu kompliziert war, sag ruhig bescheid, dann erklär ich's nochmal einfacher.

Außerdem gibt es für die Klasse des Professors deutlich sinnvollere Lösungswege (Konstruktor z.B.), du kannst eine Befüllung des Arrays auch mit for-Schleife vornehmen, etc...
 
Zuletzt bearbeitet:

X5-599

Top Contributor
@X5-599:

Da unser Prof darauf besteht, dass die Klasse nicht static ist, habe ich das static aus der
main() genommen.

Dann kommt folgende Fehlermeldung:

Ja, das war auch nur als Beispiel gedacht. Natürlich brauchst du um ein Java Programm zu starten eine "public static void main(String[] args])". Ich wollte nur zeigen dass es am "static" liegt, dass du die innere Klasse nicht so ansprechen kannst wie es üblich wäre. "new AeussereKlasse.InnereKlasse()"
 

Mr.GreenTea

Mitglied
@Ikaron:
Vielen Dank! Das wars :) Erinner mich grad, dass der Prof auch sowas in der Richtung gesagt hat. Hab einfach in meinem Projekt ne neue Klasse geöffnet. Eben die BereichsUmsatz-Klasse :)

@X5-599:
Auch dir nochmal danke :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Array von Klassen Java Basics - Anfänger-Themen 2
J Problem mit Array: 2 Klassen Java Basics - Anfänger-Themen 2
K Klassen Array zwischen Klassen übergeben Java Basics - Anfänger-Themen 2
O Auslesen von .csv Datein in ein Klassen Array Java Basics - Anfänger-Themen 6
U Objekte in Array erstellen und Methode in verschiedenen klassen aufrufen Java Basics - Anfänger-Themen 5
H Array von Klassen Objekten Java Basics - Anfänger-Themen 6
P Klassen Klassen mit Array Problem Java Basics - Anfänger-Themen 4
D OOP mit compareTo Array sortieren (aus zwei Klassen) Java Basics - Anfänger-Themen 3
D Initialisierung von Klassen-Objekte Java Basics - Anfänger-Themen 47
J Methodenaufrufe abstrakte Klassen, Interfaces Java Basics - Anfänger-Themen 17
M Abstrakte Klassen - Notation Java Basics - Anfänger-Themen 9
Detlef Bosau Nachladen von Klassen zur Laufzeit Java Basics - Anfänger-Themen 24
M Anonyme Klassen - Warum wird in der Konsole nichts ausgegeben? Java Basics - Anfänger-Themen 1
MoxMorris Einige Methoden aus verschiedenen Klassen nacheinander auszuführen läuft seltsam Java Basics - Anfänger-Themen 2
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
I 2 verschiedene Klassen mit gleichen Property vergleichen Java Basics - Anfänger-Themen 13
monsterherz 2 Klassen daher Probs mit dem Dateinamen Java Basics - Anfänger-Themen 9
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 9
I JPA Query für mehrere Klassen Java Basics - Anfänger-Themen 3
I @Entity Klassen, Service Beans etc. aus einem Share Projekt beziehen? Java Basics - Anfänger-Themen 26
S IntelliJ geht alle Klassen durch Java Basics - Anfänger-Themen 9
I Gleiche Klassen und Methoden in unterschiedlichen Projekten nutzen Java Basics - Anfänger-Themen 2
T variablen klassen übergreifend Java Basics - Anfänger-Themen 12
N Klassen Methoden anderer Klassen aufrufen Java Basics - Anfänger-Themen 4
D Klassen Klassen Kommunikation Java Basics - Anfänger-Themen 12
Encera Auf Objekte aus anderer Klassen zugreifen Java Basics - Anfänger-Themen 20
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
M Andere Methoden in anderen Klassen aufrufen Java Basics - Anfänger-Themen 11
L Methoden in anderen Klassen nutzen Java Basics - Anfänger-Themen 6
D Klassen und Vererbung Java Basics - Anfänger-Themen 2
L Best Practice Annotierte Klassen im Classpath herausfinden Java Basics - Anfänger-Themen 1
P Mit dem Scanner Klassen aufrufen Java Basics - Anfänger-Themen 3
O Klassen Zusammenspiel zwischen 2 Klassen Java Basics - Anfänger-Themen 1
K Zweite Ausgabe von vererbten Klassen Java Basics - Anfänger-Themen 3
M Wie können Klassen nicht-materialisierte Attribute haben, die nur über get/ set-Mehoden simuliert sind? Java Basics - Anfänger-Themen 6
Speedrunner klassen aufrufen Java Basics - Anfänger-Themen 41
M Log4J (v2) nachträglich in allen Klassen hinzufügen Java Basics - Anfänger-Themen 9
D importieren eigener Klassen Java Basics - Anfänger-Themen 12
W Wo ist der Wurm in meinem Grundverständnis von Klassen? Java Basics - Anfänger-Themen 22
S Daten/Klassen/Packages richtig updaten!? Java Basics - Anfänger-Themen 2
alice98 Erste Schritte Liste erstellen ohne vorgefertigte Klassen Java Basics - Anfänger-Themen 1
C Archiv für eigene Klassen Java Basics - Anfänger-Themen 9
S Objekte von zwei klassen in zwei verschiedene Textdateien schreiben Java Basics - Anfänger-Themen 5
elsaaaaaa Wochentag als String ausgeben mit JDK Klassen Java Basics - Anfänger-Themen 6
CptK Generics: Klassen die Interface implementieren, aber selbst nicht das Interface sind Java Basics - Anfänger-Themen 8
Z Mehtode bei Start des Programms ausführen (Klassen übergreifend) Java Basics - Anfänger-Themen 12
J Allgemeines Problem mit Klassen Java Basics - Anfänger-Themen 5
TimoN11 Java Klassen Global einbinden Java Basics - Anfänger-Themen 1
B Inventar als einzelne Klassen anlegen? Java Basics - Anfänger-Themen 12
G Java Klassen und Instanzmethoden Java Basics - Anfänger-Themen 15
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 3
T Vererbung Verschiedene Attribute für vererbte Klassen Java Basics - Anfänger-Themen 4
S Klassen instanziieren und verwenden von Getter und Setter Java Basics - Anfänger-Themen 4
B Variablen Variablen übertragen ohne Klassen Java Basics - Anfänger-Themen 5
C Fernseher-Aufgabe (Methoden, Klassen und Objekte) Java Basics - Anfänger-Themen 63
H Methoden in großen Klassen gruppieren oder auslagern? Java Basics - Anfänger-Themen 10
G Abstrakte Klassen Java Basics - Anfänger-Themen 11
Y Klassen Klassen und Objekte Java Basics - Anfänger-Themen 3
Y Klassen Klassen und Objekte mit set und get Java Basics - Anfänger-Themen 0
A Generischen Klassen Java Basics - Anfänger-Themen 8
A Vererbung Klassen im Bezug auf Auto´s Java Basics - Anfänger-Themen 18
A Generische Klassen/Interface Java Basics - Anfänger-Themen 1
A Klassen Vererbung und zusätzliche Unterklassen Java Basics - Anfänger-Themen 23
J 2 klassen benutzen Java Basics - Anfänger-Themen 5
A Klassen und methoden Java Basics - Anfänger-Themen 15
A Bankweverwaltung mit Klassen und Methoden Java Basics - Anfänger-Themen 14
J Klassen Problem Java Basics - Anfänger-Themen 8
I Java Klassen "Graphics" und "MouseEvent" kombinieren Java Basics - Anfänger-Themen 7
I Klassen als Datentyp nutzen? Java Basics - Anfänger-Themen 11
M Aufsplitten von Methoden in andere Klassen Java Basics - Anfänger-Themen 2
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
C Klassen objektorientiert aufteilen Java Basics - Anfänger-Themen 6
hello_autumn Klassen Anzahl sowie die Anzahl der Junit Tests ermitteln? Java Basics - Anfänger-Themen 8
A Auf Eigenschaften von Objekten anderer Klassen zugreifen Java Basics - Anfänger-Themen 5
F Klassen und Pakete Projektübergreifend (Eclipse) Java Basics - Anfänger-Themen 6
V_Fynn03 Klassen Überweisungen tätigen und einzahlen mit 2 Klassen Java Basics - Anfänger-Themen 1
W Abarbeitungsreihenfolge Anonyme Klassen Java Basics - Anfänger-Themen 2
V_Fynn03 Bruchrechner programmieren (2 Klassen) Java Basics - Anfänger-Themen 9
D OOP- Eine Klasse in mehrere Klassen aufteilen Java Basics - Anfänger-Themen 7
W Frage zu anonymen Klassen Java Basics - Anfänger-Themen 4
Curtis_MC Parameter-Übergabe bei Klassen und Methoden Java Basics - Anfänger-Themen 12
E Klassen implementieren Java Basics - Anfänger-Themen 94
T Interfaces in erbenden Klassen Java Basics - Anfänger-Themen 2
C Methoden/Klassen Übergabewerte Java Basics - Anfänger-Themen 8
C Java Klassen/Methoden/Übergabeparameter Java Basics - Anfänger-Themen 4
L Wie geht man bei mehreren Action Klassen vor? Java Basics - Anfänger-Themen 0
P Datentypen, Klassen, Operatoren, Wrapperklassen Java Basics - Anfänger-Themen 2
L Wie teilt man ein Programm in vernünftige Klassen ein? Java Basics - Anfänger-Themen 10
T Klassen Denkfehler im Klassen "dynamisch" instanzieren? Java Basics - Anfänger-Themen 4
P Zugriff auf Variablen anderer Klassen in Greenfoot Java Basics - Anfänger-Themen 1
A Methode, Klassen Java Basics - Anfänger-Themen 3
B UML Klassen Diagramm zu Java Code Programmieren und ausführen Java Basics - Anfänger-Themen 21
J Zwei Klassen die sich gegenseitig referenzieren - Bad practice? Java Basics - Anfänger-Themen 4
G Klassen und Objekte Java Basics - Anfänger-Themen 2
Java The Hutt SetWerte über verschiedene Klassen Java Basics - Anfänger-Themen 16
D Klassen ausgeben Java Basics - Anfänger-Themen 2
H linkedlist generische klassen Java Basics - Anfänger-Themen 169
B CSS Klassen in eine Liste schreiben Java Basics - Anfänger-Themen 4
Queiser Nicht statische Klassen Java Basics - Anfänger-Themen 6
neerual Klassen Wie rufe ich Klassen, die andere Klassen extenden in einer Test Unit auf? Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben