[Java] Methoden einer Klasse aufrufen durch eine andere Klasse

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von unix, 16. Juli 2010 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 16. Juli 2010
    Methoden einer Klasse aufrufen durch eine andere Klasse

    Sry, für den Bllöden Titel

    wusste nich was ich da sonst reinschreiben soll ^^


    Also folgendes Problem.

    Es geht um ein Mini-Datawarehouse.
    Hab eine Klasse Cube, die hat nen 3 Dimensionalen Array mit Daten und einige Methoden, um diese Daten zu verwerten und auszugeben.
    Diese Klasse entspricht einem Geschäftsjahr und die Daten sind halt die Umsätze!


    Dann hab ich ne Klasse DWareHouse, das wird eine verkettete Liste, mit Cube Objekten darin!

    Also in einer Liste alle Geschäftsjahre drin!


    Dritte Klasse ist das Benutzerinterface (nur konsole).

    Hier kann der Nutzer halt paar Methoden starten die dem dann den Inhalt der Cube Objekte ausgeben oder Umsätze über mehrere Jahre also über mehrere Cube Objekte.

    Da das ganz über mehrere Cube Objekte greifen soll, müssen diese Methoden also in der DWareHouse Klasse sein.

    Hab aber schon alle sin die Cube Klasse reingeschrieben halt für jedes Geschäftsjahr einzeln is alles fertig.

    Nun meine Frage:

    Geht es dass man eine Methode in DWareHouse schreibt die ungefähr so aussieht:

    Code:
    public int getJahresUmsatz(int year){
    // Aufruf von dem CubeObjekt = cube.getGesamtumsatz();
    // Aber das Cube Objekt is ja Variabel 
    year.getGesamtumsatz();//Ja ich weiß das es nicht so geht ^^
    }
    
    Also wie könnte ich eine Methode von einem variablen Objekt der Cube Klasse starten?
    Aber so in der Art sollte es dann sein.

    Vielen Dank für Denkanstöße

    //EDIT

    Oder vllt. sowas, da die Objekte ja in einer Liste gespeichert werden

    Code:
    listemitCubes[year].getGesamtUmsatz();
    
     
  2. 16. Juli 2010
    AW: Methoden einer Klasse aufrufen durch eine andere Klasse

    Ich hab mir das jetzt ungefähr 7mal durchgelesen und hab nichts verstanden. Würde es aber gerne verstehen . Was meinst du mit Variablen Cube-Objekten?
    Und nochmal zum verinnerlichen: Du willst auf Cube-Objekte zugreifen, welche in einer verketteten Liste sind ?
     
  3. 16. Juli 2010
    AW: Methoden einer Klasse aufrufen durch eine andere Klasse

    ^^ sry



    Ja die Cube Objekte sind in einer verketteten Liste gespeichert
    Ein Cube Objekt repräsentiert ein Geschäftsjahr.

    und auf ein Objekt der Klasse Cube kann ich Methoden anwenden wie getGesamtUmsatz() ...

    Jetzt soll man in einer dritten Klasse Obsthandel sagen können getUmsatz(2002); z.B.


    Dann müsste ich ja das Objekt für das Jahr 2002 in der Liste suchen und auf diesem die Methode getGesamtUmsatz() anwenden.

    Wie gesagt die Methode is fest, aber das Objekt auf dem die MEthode aufgerufen wird is ja immer ein anderes, also variabel.

    cube1.getGEsamtUmsatz();
    cube2.getGesamtUmsatz();
    etc..

    Aber wie ich das mit der verketteten Liste hinkriege xD
     
  4. 16. Juli 2010
    AW: Methoden einer Klasse aufrufen durch eine andere Klasse

    Um das ganze einfacher zu lösen würde ich die Cube-Objekte (irgendwie ist der Name für die Klasse unpassend) in der DataWareHouse-Klasse in einer HashMap speichern.
    In der Cube-Klasse überschreibst die hashCode-Methode geeignet indem du das Jahr zurückgibst.
    Zusätzlich würde ich der Cube-Klasse eine Methode spendieren die dir den Umsatz berechnet aus dem Array.

    Code:
    Klasse DataWareHouse
     
     HashMap cube = ...
     
     public double getUmsatz(int jahr)
     return cube.get(jahr).getUmsatz()
    
     
  5. 16. Juli 2010
    AW: Methoden einer Klasse aufrufen durch eine andere Klasse

    Hallo!

    Drei Moeglichkeiten:

    1.)
    Du aenderst deine Datenstruktur (und nimmst anstatt verkettete Listen z.B. irgendwelche Baeume her).

    2.)
    Du scheibst einfach eine Methode, die deine Liste von Cubes durchlaeuft und bei Uebereinstimmung des Jahres den Umsatz des Cubes dazuzaehlt (eine relativ einfache Moeglichkeit; kommt drauf an wie viele Cubes bzw. Anfragen du hast).
    Bist auf das nicht selber gekommen?!

    3.)
    Du willst
    Code:
    year.getGesamtumsatz();//Ja ich weiß das es nicht so geht ^^
    machen. Hast du dir nicht ueberlegt einfach eine neue Klasse, die Jahr mit den entsprechende Cubes assoziiert, zu erstellen? Dann fuegst du, wenn du ein Cube-Objekt erstellst, das Cube-Objekt einer Liste in deinem entsprechendem Jahr-Objekt (das wieder ueber eine Liste geht), hinzu.
    Auf diese Weise wirst du wohl nicht so lange suchen muessen (wenn du haeufig durch alle Cubes durchgehen musst, sondern nur durch die Liste aller Jahres-Objekte durchgehen musst).

    Mfg,

    Kolazomai
     
  6. 16. Juli 2010
    AW: Methoden einer Klasse aufrufen durch eine andere Klasse

    Aufgabe wars mit ner LinkedList zu machen!

    Und dein Aufruf is richtig:

    Code:
     public int getGesamtUmsatz(int year){
     linkedList.get(year).getGesamtumsatz();
     return year;
     }
    So müsste es aussehen.

    Der Aufruf hat iwo im Hinterkopf geschlummert ^^

    Vielen Dank

    mach mal wieder zu
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.