Ergebnis 1 bis 6 von 6

Java Klassen in Methoden mit String

  1. #1 Zitieren
    General Avatar von Kirgo
    Registriert seit
    May 2009
    Ort
    An einem Ort wo Raum und Zeit Nebensachen sind.
    Beiträge
    3.747
    Hallo,

    ich muss ein Unterprogramm schreiben bei der ich in einer Methode eine Klasse aufrufe und darin Werte zuweise.
    Ich hab einiges rumprobiert, verstehe aber das Konzept nicht wie ich es als String Ausgeben soll.

    Hier ist die Fragestellung mit der Aufgabe vorher als Kontext.

    Wir wollen den wöchentlichen Speiseplan für die Zentralmensa in Java Objekten abbilden:
    a) Zuerst überlegen wir dazu welche Objekte wir dazu benötigen:
    Der Speiseplan enthält Einträge für jeden Wochentag und jeder Wochentag enthält Einträge für die vier Theken. An jeder Theke gibt es ein Tagesmenü bestehend aus Suppe, Hauptspeise, Nachspeise und Salat jeweils mit einem Preis (in Cent).
    Schreibt drei Klassen Speiseplan, Menue und Speise.
    Dabei sollen die Klassen die folgenden Membervariablen haben:
    - Speise:
    String art (= Suppe, Salat, usw.…); int preis; String name; boolean veggi.
    - Menue:
    Speise suppe, salat, hauptspeise, nachspeise; boolean isFestpreis; int festpreis;
    - Speiseplan:
    String datum; Menue[7][4] plan (7 Tage, 4 Theken), boolean [7] geöffnet;


    b) Nun benötigen wir Methoden, um die Informationen aus den Klasse auszugeben:
    Implementiert dazu im Hauptprogramm die folgenden Methoden:
    - String speiseToString(Speise input), welche für eine Speise einen String der Form „[Name], [Preis]€“ zurückgibt bzw. „[Name], [Preis]€ veggi“, falls veggi true ist.
    Kirgo ist offline

  2. #2 Zitieren

    Batmanistrator
    Avatar von Thoronador
    Registriert seit
    Jul 2005
    Ort
    Morrowind, Vvardenfell-Distrikt
    Beiträge
    20.427
    Es wird hier kaum jemand Lust haben, eine fertige Lösung für die Aufgabe zu posten und damit quasi deine Hausaufgaben zu erledigen.
    Wenn du hingegen zeigst, was du schon hast und an welcher Stelle du nicht weiterkommst, wird man dir schon eher helfen.
    Thoronador ist offline

  3. #3 Zitieren
    Ehrengarde Avatar von Ewige Finsternis
    Registriert seit
    Sep 2008
    Beiträge
    2.659
    Zitat Zitat von Thoronador Beitrag anzeigen
    Es wird hier kaum jemand Lust haben, eine fertige Lösung für die Aufgabe zu posten und damit quasi deine Hausaufgaben zu erledigen.
    Wenn du hingegen zeigst, was du schon hast und an welcher Stelle du nicht weiterkommst, wird man dir schon eher helfen.
    Nach einer fertigen Lösung fragt er ja auch nicht, ich finde die Aufgabenstellung als Kontext durchaus nützlich.

    @Kirgo:

    Aufgabe a) hast du schon erledigt und die Klassen entworfen?

    Zu b): Es ist ein Unterschied ob etwas "ausgegeben" oder "zurückgegeben" wird. Ausgabe funktioniert z.B. mittels
    Code:
    System.out.println("text123");
    , was dir dann Text123 in die Konsole schreibt. Rückgabe ist etwas anderes. Dabei hast du am Ende einer Methode eine Variable, die an die Stelle zurückgegeben werden soll, an der die Methode aufgerufen wurde. Dies wird mittels des return-Kommandos umgesetzt. Die Methode sieht dann in etwas so aus:

    Code:
    public String speiseToString()
    {
      String auswahl = "";
    
      /* Jetzt hast du einen Block in dem du die ganzen Infos in den String auswahl reinschreibst */
    
      return auswahl;
    }
    Wenn du jetzt an der Stelle, an der du diese Methode aufrufst den zurückgegebenen Wert ausgeben willst, dann sieht das so aus:

    Code:
    String info = speiseToString("Kartoffel");
    System.out.println("Infos zum gewaehlten Gericht: "+info);
    Hilft dir das einigermaßen weiter?


    Ewige Finsternis ist offline

  4. #4 Zitieren
    General Avatar von Kirgo
    Registriert seit
    May 2009
    Ort
    An einem Ort wo Raum und Zeit Nebensachen sind.
    Beiträge
    3.747
    Also das sind bisher meine Klassen.

    PHP-Code:
    package eipblatt06;

    public class 
    Speise {
        public 
    String art;
        public 
    int preis;
        public 
    boolean veggi;

    PHP-Code:
    package eipblatt06;

    public class 
    Menue {
        public 
    Speise suppesalathauptspeisenachspeise;
        public 
    boolean isFestpreis;
        public 
    int festpreis;

    Wobei mir das Programm hier einen Fehler anzeigt.


    PHP-Code:
    package eipblatt06;

    public class 
    Speiseplan {
        public 
    String datum;
        public 
    Menue[7][4];
        public 
    boolean[7];


    Und mein Hauptprogramm, bisher.

    PHP-Code:
    package eipblatt06;
    import java.util.Scanner;
    public class 
    MenuePlan {










        public static 
    String speiseToString(){    
            
    Speise Speise = new Speise();
            
    Speise.art = new Scanner(System.in).next();    
            
    Speise.preis = new Scanner(System.in).nextInt();    
            
    Speise.veggi = new Scanner(System.in).nextBoolean();    
            
    System.out.print("["+Speise.art+"]"+"["Speise.preis +"]");
            if (
    Speise.veggi==true){
                
    System.out.print("veggi");
            }
            
    System.out.println();
            return (
    Speise.art+Speise.preis+Speise.veggi);
        }
        
        
        
        
        
        
        
        
        
        
        public static 
    void main(String args[]){
            
    String speiseToString(Speise input);
            }


    edit: Danke für die Erklärung. Ich werde versuchen damit rumzuprobieren und mit meinen Kollegen morgen daran weiterarbeiten.
    Kirgo ist offline Geändert von Kirgo (03.12.2015 um 21:11 Uhr)

  5. #5 Zitieren
    Ehrengarde Avatar von Ewige Finsternis
    Registriert seit
    Sep 2008
    Beiträge
    2.659
    Das kann auch nicht funktionieren. Erstens braucht jede Variable einen Namen und zweitens initialisierst du deine Arrays falsch.

    Code:
    public class Speiseplan 
    {
      public String datum;
      public Menue[][] m = new Menue[7][4];
      public boolean[] b = new boolean[7];
    }
    Im vorderen Teil gibst du mit Datentyp[] nur an dass du ein Array vom Typ Datentyp haben willst. Die Größe wird erst im Konstruktor new Datentyp[Größe] angegeben.

    Edit: Ach ja, dein Hauptprogramm braucht übrigens eine Methode public static void main(String args[]){..}. Diese Methode ist der Einsprungspunkt jedes Programms, ohne wird ein Programm auch nie laufen. Aber eigentlich sollte dir das alles auch der Compiler sagen. Was verwendest du für eine Entwicklungsumgebung?


    Ewige Finsternis ist offline Geändert von Ewige Finsternis (03.12.2015 um 21:43 Uhr)

  6. #6 Zitieren
    General Avatar von Kirgo
    Registriert seit
    May 2009
    Ort
    An einem Ort wo Raum und Zeit Nebensachen sind.
    Beiträge
    3.747
    Zitat Zitat von Ewige Finsternis Beitrag anzeigen
    Das kann auch nicht funktionieren. Erstens braucht jede Variable einen Namen und zweitens initialisierst du deine Arrays falsch.

    Code:
    public class Speiseplan 
    {
      public String datum;
      public Menue[][] m = new Menue[7][4];
      public boolean[] b = new boolean[7];
    }
    Im vorderen Teil gibst du mit Datentyp[] nur an dass du ein Array vom Typ Datentyp haben willst. Die Größe wird erst im Konstruktor new Datentyp[Größe] angegeben.

    Edit: Ach ja, dein Hauptprogramm braucht übrigens eine Methode public static void main(String args[]){..}. Diese Methode ist der Einsprungspunkt jedes Programms, ohne wird ein Programm auch nie laufen. Aber eigentlich sollte dir das alles auch der Compiler sagen. Was verwendest du für eine Entwicklungsumgebung?

    Mein Hauptprogramm ist ohnehin nicht fertig.
    Entwicklungsumgebung?
    Meinst du vielleicht Eclipse?

    Und danke für deinen Hinweis. Der Umstieg von Python auf Java ist doch etwas befremdlich.
    Kirgo ist offline

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •