Klassenmethode mit übergebenen Parameter speichern

KlausWovo

Mitglied
Hi Leute.

Ich habe die Aufgabe (im Anhang) und da hänge ich etwas im unteren Schritt mit "Ergänzen Sie nun eine öffentliche Klassenmethode createProductFrom(). Diese soll die übergebenen Parameter in das bereits erstellte Projekt p speichern."

Ich habe erstmal wie in den Schritten davor mehrere private Variablen in meiner Klasse gesetzt etc und habe für diese auch alle Getters und Setters generiert (über Java)

Nun weiß ich nicht, ob ich diese Klassenmethode "createProductFrom()" in "Product" machen soll oder in der Klasse "ProductManager".

Ich denke auch mal in meiner Klasse "Product" ,oder?

Aber wie kann ich denn Klassenübergreifend speichern? Also ich nehme mal an, der möchte, dass ich die Sachen von "Name" "description" "price" etc in p speichere, oder?

Aber ich habe ehrlich gesagt keine Ahnung wie... Jemand einen Ratschlag?

Hier meine Klasse "Product" :

Java:
 class Product {


    //Instanzvariablen
    private String name; 
    private String description; 
    private double price ; 
    private int id; 
    private int nextId;
   
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public double getPrice() {
        return price;
    }
    public void setPrice(double price) {
        this.price = price;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public int getNextId() {
        return nextId;
    }
    public void setNextId(int nextId) {
        this.nextId = nextId;
    } 
   
   
    public void createProductFrom() {


       
    }
}


Und meine Klasse "ProductManager"

Java:
import Prog1Tools.IOTools;

public class ProductManager {

    public static final int LIST = 0;
    public static final int REGISTER = 1;
    public static final int ADJUST_STOCK = 2;
    public static final int EXIT = 3;

    /**
    * Provides a command line interface to interact with the product management system for an online shop
    * @param args
    */
    public static void main(String[] args) {
        Warehouse warehouse = new Warehouse();
        warehouse.registerProducts(Warehouse.preloadInitialDataSet());
        System.out.println("Welcome to the online shop product management");
        boolean running = true;
        while (running) {
            System.out.println("Please, enter one of the following commands:"
                    + "\n0 to list all products"
                    + "\n1 to register a new product"
                    + "\n2 to adjust stock levels" + "\n3 to exit.");
            int command = IOTools.readInt();
           
           
            switch (command) {
                case LIST :
                    warehouse.printInventory();
                    break;
                case REGISTER :
                    Product p = Product.createProductFromUserinput();
                    warehouse.registerProducts(p);
                    System.out.println("The following product has been added to the catalog:\n"
                                    + p.toString());
                    break;
                case ADJUST_STOCK :
                    int id = IOTools.readInt("Please, enter product id:");
                    int stock = IOTools.readInt("Please, enter new stock level:");
                    warehouse.setStockForProductById(id, stock);
                    break;
                case EXIT :
                    running = false;
                    break;
                default :
                    System.out.println("Unknown command: " + command);
                    break;
            }
        }
        System.out.println("Byebye!");
    }

}
 

Anhänge

  • Lalilu.jpg
    Lalilu.jpg
    226 KB · Aufrufe: 60
Moin.
Weißt du denn was eine Klassenmethode ist? MMn soll die Methode die Attribute als Parameter bekommen, ein neues Produkt Objekt erstellen, die Werte setzen und das erstellte Produkt zurück geben.

PS: das Pattern für dir IDs lt. Aufgabe hast du auch noch nicht umgesetzt.
 
Hi 🙂

Ja, ich weiß was Klassenmethoden sind.

Also muss ich praktisch alle variablen, die ich vorher angelegt habe als Paramter speichern in der () nehme ich mal an


Ja das mit dem Pattern habe ich nicht ganz verstanden, weil ich diesbezüglich noch gar nichts in der Vorlesung hatte. Auch beim nächsten Schritt mit "toString" hatte ich noch nichts. Ich wollte nur etwas vorarbeiten ^^
 
Also so nach der Art?

Java:
public void createProductFrom( [URL='http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+string']String[/URL] name ,[URL='http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+string']String[/URL] description, double price, int id, int nextId) {


return p

Jetzt muss ich noch überlegen, was du mit "die Werte setzen und das erstellte Produkt zurück geben." meinst. 😀

Also das "return" sollte klar sein, da ich es ja zurückgeben muss. Ich nehme auch mal an "p" , weil in der Aufgabe ja steht, dass ich es in P übergeben soll. Sollte ich das mit Arrays machen?
 
Hallo.

Deine Methode beinhaltet das Schlüsselwort "void". Kann die Methode was zurück liefern?
Und deine Methode ist keine Klassenmethode! Google hilft da sicherlich aus 🙂

Grüße
 
Ne ihr habt recht. Es ist keine Klassenmethode und void gehört da auch nicht hin! Ich denke mal, dass ich nicht vorarbeiten sollte und bis Freitag warten sollte. Sonst ist das wohl zu viel neues aufeinmal für mich. Ich werde mich sicherlich Freitag oder Samstag noch mal melden haha 😀 Bis hierhin trotzdem erstmal danke!
 

Zurück
Oben