Hallo,
bearbeite grade ein Projekt für die Uni und da ich mich leider noch ein bisschen an Java rantaste bin ich an einem Punkt wo ich mit einfachem ausprobieren nicht mehr weiter komme..
Jetzt die Frage, da ich die Methode schon nur mit externer Hilfe hin bekommen habe, wie ruf ich diese Methode korrekt in der Main Klasse auf? Ich habe noch 2 weitere Klassen, Monat und Aktienwert.
Ich will mit bspw Apple.addOrReplaceAktienwert(Monat.Januar, 20) der Firma Apple für den Monat Januar den Aktienwert 20 hinzufügen aber so funzt das nicht und ich hab einfach keine Ahnung wie ich das korrekt schreibe...
Apple, Microsoft und Sony sind keine Klassennamen sondern (statische) Variablen. Leider entgegen der Konvention gross geschrieben. Der Methodenaufruf müsste also z.B. so funktionieren: Sony.addOrReplaceAktienwert(aktienwert);
Wieso geht das nicht? Ist "Monat.Januar, 20" ein Aktienwert? Glaube nicht.. was meinst du mit Aktienwert? Welchen Konstruktor hat er denn?
Du könntest einen Aktienwert so übergeben:
Code:
public class App {
private static Firma Apple = null;
private static Firma Microsoft = null;
private static Firma Sony = null;
Firma[] firmen;
public static void main(String[] args) {
Apple = new Firma("Apple", 15);
Microsoft = new Firma("Microsoft", 30);
Sony = new Firma("Sony", 45);
Apple.addOrReplaceAktienwert(new Aktienwert(Monat.Januar, 20));
firmen = new Firma[]{Apple, Microsoft, Sony};
Das war die Zeile die gefehlt hat, danke jetzt funktioniert alles !!
Ich hatte in meiner Klasse Aktienwert auch meinen Konstruktor Aktienwert(Monat monat, double aktienwert), wusste aber nicht wie ich den ansprechen muss.
jetzt sagt der mir die Methode ist nicht definiert in meiner Klasse App, warum genau sagt der mir das?
Ich hatte mit der anderen add Methode in meiner Klasse Firma alles genauso gemacht und da hats ja auch geklappt..
Also ich versuche es aktuell mit:
addFirma(new Firma("Apple", 20));
und mein Konstruktor in der Klasse Firma stimmt damit auch überein
Die Methode gehört auch nicht App sondern der Klasse Diagramm. Und sie ist nicht statisch, somit brauchst du erst einmal ein Objekt von Diagramm in deiner main-methode.
addFirma() erwartet eine Firma und einen String. Du übergibst aber nur eine Firma. Außerdem befindet sich addFirma() in der Klasse Diagramm. Du musst sie also auf einer Diagramm-Instanz aufrufen.
gibt das ganze denn dann überhaupt Sinn wenn die Methode in Diagramm ist?? Also das ist zmd mal laut Aufgabe so..
welches Objekt soll ich denn dann erstellen?
Weil ich soll in der Main Methode meiner Hauptklasse 3 Firmen erstellen...
Achja und hatte im Code das addFirma(Firma neueFirma) nur genannt weil ich das erstmal so hin bekommen wollte.
Also hab Firmenfarbe weg gelassen
gibt das ganze denn dann überhaupt Sinn wenn die Methode in Diagramm ist?? Also das ist zmd mal laut Aufgabe so..
welches Objekt soll ich denn dann erstellen?
d) Erstellen Sie eine Klasse Diagramm, die grundlegende Visualisierungsmethoden für ein Firmenportfolio anbietet.
• Dafür werden folgende private Eigenschaften benötigt:
o ArrayList<Firma> firmenportfolio
o ArrayList<String> firmenfarben
• Setzen Sie außerdem folgende Methoden um:
o addFirma(Firma neueFirma, String firmenFarbe) Diese Methode fügt eine neue Firma dem firmenportfolio und die zugehörige Farbe den firmenfarben hinzu.
o removeFirma(int index) Entfernt die Firma an der Stelle index aus dem firmenportfolio und die zugehörige Farbe aus den firmenfarben.
o zeichne(Monat monat) Diese Methode gibt für jede Firma des Portfolios den Firmennamen und die dazugehörige Farbe in der Konsole aus.
Erstellen Sie die Klasse App mit einer Main-Methode.
• Erstellen Sie innerhalb dieser Methode drei Firmen.
• Fügen Sie jeder dieser Firmen Aktien für JANUAR, FEBRUAR und MAERZ hinzu. Verwenden Sie hierfür die konstanten Variablen aus der Klasse Monat.
• Erstellen Sie anschießend ein Torten- und Balkendiagramm und befüllen diese mit den drei Firmen. Zeichnen Sie abschießend die Balken- und Tortendiagramme für die angegebenen drei Monate.
Mehr Infos im Netz
Dann gibt das ganze doch mehr Sinn wenn addFirma etc in der Klasse Firma auch sind oder nicht?
Zur Erfüllung der bisher gezeigten Aufgabenstellung benötigst du weder Diagramm-Objekte noch Firmen-Objekte. Du sollst ja offenbar nur die Diagramm-Klasse programmieren. Wenn du die Klasse aber auch testen willst (was empfehlenswert ist), benötigst du dafür natürlich ein Diagramm-Objekt und Firmen-Objekte. Von den drei geforderten Firmen-Objekten steht übrigens auch nichts in der Aufgabenstellung.
Naja doch, ich soll ja in meiner Main 3 Firmen erstellen und denen jeweils für Jan Feb Mär Aktien zuweisen..
das hatte ich auch hin bekommen, allerdings bevor ich meine Diagramm Klasse erstellt hab.
Jetzt soll ich ja aber mit addFirma, welche sich in der Diagramm Klasse befindet in der Main Klasse 3 Firmen hinzufügen und genau da blick ich nicht so ganz durch wie das funktionieren soll...
Hm, da habe ich wohl einen ganzen Bereich in der Aufgabenstellung übersehen. Den gesamten Block nach den Leerzeilen (also ab "Erstellen Sie eine Klasse App ...") habe ich erst jetzt zur Kenntnis genommen. Dann benötigst du natürlich Diagramm- und Firmen-Objekte.
Naja doch, ich soll ja in meiner Main 3 Firmen erstellen und denen jeweils für Jan Feb Mär Aktien zuweisen..
das hatte ich auch hin bekommen, allerdings bevor ich meine Diagramm Klasse erstellt hab.
Jetzt soll ich ja aber mit addFirma, welche sich in der Diagramm Klasse befindet in der Main Klasse 3 Firmen hinzufügen und genau da blick ich nicht so ganz durch wie das funktionieren soll...
Vielleicht liest du das nur falsch. Das bedeutet nicht, das du die Firmen der Main-Klasse (also App) hinzufügen sollst, sondern dass du innerhalb der main-Methode dafür sorgen sollst, dass die Firmen den Diagrammen hinzugefügt werden. Deshalb ist es auch sinnvoll, dass die Methode addFirma() zur Klasse Diagramm gehört.