JayD2008 Geschrieben 30. November 2008 Geschrieben 30. November 2008 Hallo jungs, ich grünschnabel steh mal wieder total auf dem schlau. class Keks { public static void main(String[] args) { // Erzeugen Sie ein Objekt der Klasse Keksdose der Kapazitaet 3 String[] Sorte = new String[3]; // Fuegen Sie drei Kekse zur Keksdose hinzu Sorte[0] = "Butterkeks"; Sorte[1] = "Doppelkeks"; Sorte[2] = "Hartkeks"; } void ausgeben() { System.out.println("Kekssorten: " Sorte); } } Klar liegt der Fehler bei der Methode "ausgeben" da diese die variable "Sorte" nicht kennt.Aber wie mach ich aus dem Array eine Klassenvariable ? public static.. und dann ? string[].. geht nicht, wie funktioniert das richtig ? Vielen Dank für eure Aufmerksamkeit. MfG J. Zitieren
flashpixx Geschrieben 30. November 2008 Geschrieben 30. November 2008 Mach aus der Methode "ausgeben" eine statische Methode und übergebe als Parameter Dein String Array (alternativ mit static Klassenvariable, aber finde ich sehr unschön Phil Zitieren
JayD2008 Geschrieben 30. November 2008 Autor Geschrieben 30. November 2008 problem ist nur das ich laut der tollen aufgabe der uni den kram halt per neuer methode mit "void ausgeben() " printen soll. gut das wir nie erklärt bekommen haben wie man aus arrays klassenvariablen macht und ich auch durch google nicht viel schlauer werde. kannst mir mal nen beispiel eines arrays geben das du zu einer klassenvariablen machst ? vielen dank Zitieren
Cadpax Geschrieben 30. November 2008 Geschrieben 30. November 2008 Klassenvariablen Erzeugen, initialisieren und ausgeben. Sollte alles helfen (findet man übrigends auch Antworten auf fast alle fragen). grüße, Cad Zitieren
speedi Geschrieben 1. Dezember 2008 Geschrieben 1. Dezember 2008 (bearbeitet) Also zum einen mal legst du Klassenvariablen nicht in der main-Methode an! Sondern außerderhalb der Methode auf Klassenebene: class Keks { String[] Sorte = new String[3]; public static void main(String[] args) { ... Einen Klassenvariable zeichnet sich nämlich dadurch aus, dass du von überall in dieser Klasse auf sie zugriff hast. Laut Java-Code-Conventions schreibt man variablen jedoch klein. Es sei denn sie sind final und static. Ist eine Klassenvariable static ist sie für jedes Objekt dieser Klasse gleich. Ist eine Varibale final kann sie zur Laufzeit nicht verändert werden. Im übrigen hast du bei deiner Ausgabe der Sorten eine "+" vergessen: System.out.println("Kekssorten: "[U][B]+[/B][/U]Sorte); Bearbeitet 1. Dezember 2008 von speedi Zitieren
flashpixx Geschrieben 1. Dezember 2008 Geschrieben 1. Dezember 2008 problem ist nur das ich laut der tollen aufgabe der uni den kram halt per neuer methode mit "void ausgeben() " printen soll. gut das wir nie erklärt bekommen haben wie man aus arrays klassenvariablen macht und ich auch durch google nicht viel schlauer werde. An der Uni solltest Du lernen, Dir selbst das Wissen anzueignen und nicht dass es Dir jemand erklärt und dass Google keine Ergebnisse liefert hast Du, wie die nachfolgenden Postings zeigen, widerlegt bekommen. Phil Zitieren
Bubble Geschrieben 1. Dezember 2008 Geschrieben 1. Dezember 2008 class Keks { // Erzeugen Sie ein Objekt der Klasse Keksdose der Kapazitaet 3 String[] Sorte = new String[3]; } Hier fängt es schon an: Es soll ein Objekt vom Typ "Keksdose" mit einer Kapazität von drei erzeugt werden und kein Array aus drei Objekten des Typs "String". problem ist nur das ich laut der tollen aufgabe der uni den kram halt per neuer methode mit "void ausgeben() " printen soll. Vermutlich soll das eine Methode der Klasse Keksdose werden. gut das wir nie erklärt bekommen haben wie man aus arrays klassenvariablen macht Ich vermute zwar, dass es irgendwann doch erklärt wurde oder aus dem Kontext hervorging, aber gibt es für solche Fälle keine empfohlene Literatur oder Ansprechpartner für Rückfragen? Zitieren
flashpixx Geschrieben 1. Dezember 2008 Geschrieben 1. Dezember 2008 Ich vermute zwar, dass es irgendwann doch erklärt wurde oder aus dem Kontext hervorging, aber gibt es für solche Fälle keine empfohlene Literatur oder Ansprechpartner für Rückfragen? Natürlich gibt es so etwas: Bibliothek, Tutor, Kommilitonen und vor allem das Script. Es scheint sich um eine Einführungsveranstaltung zu handeln, so dass man sich eben mal selbst hinsetzen muss und am Verständnis arbeiten sollte Phil Zitieren
Bubble Geschrieben 1. Dezember 2008 Geschrieben 1. Dezember 2008 Natürlich gibt es so etwas: Das wollte ich durch die Frage zum Ausdruck bringen. Zitieren
DerKoenig Geschrieben 3. Dezember 2008 Geschrieben 3. Dezember 2008 class Keks { public static void main(String[] args) { // Erzeugen Sie ein Objekt der Klasse Keksdose der Kapazitaet 3 String[] Sorte = new String[3]; // Fuegen Sie drei Kekse zur Keksdose hinzu Sorte[0] = "Butterkeks"; Sorte[1] = "Doppelkeks"; Sorte[2] = "Hartkeks"; } void ausgeben() { System.out.println("Kekssorten: " Sorte); } } Nur weil man Student ist, heisst es doch nicht, dass man nicht fragen darf, son blödsinn... ^^ Also wie hier schon geschrieben wurde, solltest du laut Aufgabenstellung scheinbar eine Klasse erstellen namens Keksdose. Beim erstellen eines Objektes der Klasse Keksdose gibst du ein Parameter "Kapazität" an, mit der in der Klasse Keksdose z.B. ein Array erzeugt werden kann, so wie du es auch in deinem Programm oben gemacht hast. in der Klasse müsste das String Array global in der Klasse definiert werden also: public class Keksdose { String[] sorten; public Keksdose(int kapazitaet) { sorten = new String[kapazitaet]; } dann bräuchtest du n och eine Methode zum einfuegen von den einezelnen Sorten und eben eine Methode, mit der du dir diese wieder ausgeben lassen kannst. intanziieren und steuern tust du das ganze dann aus deiner main. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.