matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Dt. Schulen im Ausland: Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenFormale SprachenJava Klasse nicht kompilierbar
Foren für weitere Studienfächer findest Du auf www.vorhilfe.de z.B. Astronomie • Medizin • Elektrotechnik • Maschinenbau • Bauingenieurwesen • Jura • Psychologie • Geowissenschaften
Forum "Formale Sprachen" - Java Klasse nicht kompilierbar
Java Klasse nicht kompilierbar < Formale Sprachen < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Formale Sprachen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Java Klasse nicht kompilierbar: Frage (reagiert)
Status: (Frage) reagiert/warte auf Reaktion Status 
Datum: 00:00 Mo 15.06.2009
Autor: snp_Drake

Aufgabe
Implementieren Sie eine Klasse Speisekarte, die eine Speisekarte eines Restaurants realisiert. Gehen Sie
dabei wie folgt vor:
1. Implementieren Sie eine Klasse Speise. Eine Speise besitzt einen Namen und einen Preis, die ¨uber
den Konstruktor initialisiert werden. Die Klasse besitzt eine Methode public String toString(),
die Name und Preis der Speise zur¨uckliefert.
2. Implementieren Sie eine Klasse Speisekarte, die verschiedene Speisen enth¨alt. Eine Speisekarte
kann neue Speisen aufnehmen, vorhandene Speisen entfernen und s¨amtliche Speisen inklusive Preis
auf der Konsole ausgeben. Verwenden Sie zur Verwaltung der Speisen den generischen Datentyp
ArrayList<T>, der in der Java-API unter
http://java.sun.com/javase/6/docs/api/
dokumentiert ist.
3. Implementieren Sie eine Klasse TestSpeisekarte zum Testen Ihres Programms. Verwenden Sie
dazu mindestens 5 Speisen.

Also, ich hab das Problem, dass der folgende Quellcode nicht compilierbar ist und ich nicht weiß warum. Also zuerst mal die Klasse Speise (ist noch zu compilieren):

public class Speise{
String name;
String preis;
Speise (String name, String preis){
this.name=name;
this.preis=preis;
}
public String toString(){
return name+preis;
}
}

Dann Speisekarte und da spuckt er immer Fehler aus:

import java.util.ArrayList;

public class Speisekarte <T> extends Speise{
        Speise value;                             //!
ArrayList<Speise> speisen;

Speisekarte(Speise aSpeise){
        speisen = new ArrayList<Speise>();         //! "speisen"-Zeiger zeigt auf neues Element
        speisen.value = aSpeise;                   //! "speisen"-ZeigerElement = aSpeise
    }

void addSpeise (Speise speisen){
speisen.add(speisen);
}

void removeSpeise (Speise speisen){
speisen.remove(speisen);
}

void ausgeben (){
System.out.println(speisen);
}
}

Kann mir jemand helfen?

        
Bezug
Java Klasse nicht kompilierbar: Antwort
Status: (Antwort) fertig Status 
Datum: 18:28 Mo 15.06.2009
Autor: fabba


>  Also, ich hab das Problem, dass der folgende Quellcode
> nicht compilierbar ist und ich nicht weiß warum. Also
> zuerst mal die Klasse Speise (ist noch zu compilieren):
>  
> public class Speise{
>   String name;
>   String preis;
>   Speise (String name, String preis){
>   this.name=name;
>   this.preis=preis;
>   }
>   public String toString(){
>   return name+preis;
>   }
>  }

"nicht compilierbar" ist keine Fehlermeldung.

... und bei mir geht's. Mit welchem Aufruf versuchst Du es?


Die Klasse sieht inhaltlich gut aus, auch wenn ich den Preis nicht unbedingt als String speichern würde.


>  
> Dann Speisekarte und da spuckt er immer Fehler aus:

"immer Fehler" ist keine Fehlermeldung. Besser angeben, was Du tust, was Du erwartest, was Du stattdessen erhälst. Das zeigt, dass Du Dir Gedanken machst (und Gedanken Machen hilft oft schon um das Problem von alleine zu lösen) und erleichtert das Helfen.

>  
> import java.util.ArrayList;
>  
> public class Speisekarte <T> extends Speise{

Eine Speisekarte ist eine Art von Speise? Das drückt die extends-Beziehung aus.
Es gibt verschiedene Typen von Speisekarten? Z. B. Integer-Speisekarten? Das drückt das <T> aus.


>          Speise value;                             //!

Eine Speisekarte hat einen Wert? Und der ist eine Speise? Versteh' ich nicht.

>   ArrayList<Speise> speisen;

Sehr gut. Liste aller Speisen auf der Karte.

>  
> Speisekarte(Speise aSpeise){

Hier tritt bei mir ein Fehler auf, hat aber mit dem überflüssigen <T> und extends Speise zu tun


>          speisen = new ArrayList<Speise>();         //! "speisen"-Zeiger zeigt auf neues Element

Hier hab ich keinen Fehler. Sieht auch gut aus. Die Speisenliste wird mit einer leeren Liste initialisiert.

>          speisen.value = aSpeise;                   //! "speisen"-ZeigerElement = aSpeise

Das ergibt wenig Sinn. Eine Liste hat keinen Wert. Eine add-Methode könnte sie haben um die entsprechende Speise dort hinzuzufügen. Unten machst Du's richtig.

aSpeise soll anfangs als einzige Speise auf der Karte stehen?


>      }
>  
> void addSpeise (Speise speisen){
>   speisen.add(speisen);
>   }
>  
> void removeSpeise (Speise speisen){
>   speisen.remove(speisen);
>   }

Gut, aber Du vergibst den Namen speisen doppelt. Die Liste oben heißt schon so. Und damit kommt er gar nicht klar (this.speisen.remove(speisen) würde gehen, aber speisen ist eh ein blöder Name für nur eine Speise)


>  
> void ausgeben (){
>   System.out.println(speisen);
>   }
>  }



Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Formale Sprachen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.matheraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]