2017-03-01 1 views
0

Ich hatte gehofft, wenn Sie mir bei einem Schulprojekt helfen könnten. Ich schreibe einen Code, wo der Benutzer eingibt, welche Lebensmittel der Benutzer im Schrank hat. Es gibt auch an, um was für ein Produkt es sich handelt, den Namen, das Geschäft, wo es gekauft wurde, das Etikett, den Preis, die Menge - es ist wie ein Inventar. Ich habe einen Klassennamen Dairy und ich kann einen Getter für jede Eingabe erstellen, die ich separat brauche. Das funktioniert gut, ich habe es eingerichtet, habe einen Parameter übergeben und wenn ich den Getter in der InputDairy-Methode aufrufen, funktioniert es gut.Mehrere Eingänge mit nur einem Setter

Aber da ich dem Benutzer viele Fragen über das Produkt stelle, möchte ich nicht 10 Getters haben, gibt es einen Weg, nur einen zu haben und dann die Parameter zu übergeben? Der Code hier unten ist der nicht funktionierende, wo ich versuchte, alle Parameter in einem Getter zu setzen und dann die Parameter nur eins nach dem anderen zu übergeben. Und das funktioniert nicht. Ist das möglich oder muss ich für jede Frage, die ich stelle, einen Getter setzen?

public static void InputDairy (Dairy DairyProducts[], Fruit FruitProducts[], Scanner input){ // START OF INPUT DAIRY 

    System.out.println("Let's put in some DAIRY products"); 

    for (int i = 0; i < DairyProducts.length; i++){ 

     System.out.println("Enter name of DIARY product"); 
     String a = input.next(); 
     DairyProducts[i].setDairyData(a); 

     System.out.println("Enter Store where you bought DIARY product"); 
     String a = input.next(); 
     DairyProducts[i].setDairyData(b); 

     System.out.println("Enter how much you paid for DIARY product"); 
     String a = input.next(); 
     DairyProducts[i].setDairyData(c); 

     System.out.println("Enter when did you buy DIARY product"); 
     String a = input.next(); 
     DairyProducts[i].setDairyData(d); 
    } 

} // END OF INPUT DAIRY enter code here 


public class Dairy { 
    private String D_NameOfDairy; 
    private String D_NameOfStore; 
    private int D_PricePaid; 
    private int D_DayPurchased; 
    private int D_BestBefore; 
    private int D_AmountInGrams; 
    private int D_Pieces; 

    public Dairy() { 

     D_NameOfDairy = "Default name of dairy"; 
     D_NameOfStore = "Default name of store for dairy"; 
     D_PricePaid = 0; 
     D_DayPurchased = 01/01/2000; 
     D_BestBefore = 10/10/2010; 
     D_AmountInGrams = 0; 
     D_Pieces = 0; 
    } 

    public void setDairyData (String a, String b, int c, int d){ 

     D_NameOfDairy = a; 
     D_NameOfStore = b; 
     D_PricePaid = c; 
     D_DayPurchased = d; 

    } 

} 
+0

Wenn eine Methode 4 Parameter verwendet, dann sollten Sie diese vier Parameter nur bestehen. –

Antwort

3

Nehmen Sie zuerst alle Antworten vom Benutzer und übergeben Sie diese dann an Ihre Setter-Funktion in einer Zeile.

public static void InputDairy (Dairy DairyProducts[], Fruit FruitProducts[], Scanner input){ 

    System.out.println("Let's put in some DAIRY products"); 

    for (int i = 0; i < DairyProducts.length; i++){ 

     System.out.println("Enter name of DIARY product"); 
     String a = input.next(); 

     System.out.println("Enter Store where you bought DIARY product"); 
     String b = input.next(); 

     System.out.println("Enter how much you paid for DIARY product"); 
     String c = input.next(); 

     System.out.println("Enter when did you buy DIARY product"); 
     String d= input.next(); 

     DairyProducts[i].setDairyData(a,b,c,d); 
    } 

} 
+0

OMG das ist so eine einfache Lösung! Vielen Dank, ich kann jetzt meinen Fehler sehen. – Ingrid

+0

Viele Dinge sind einfacher als sie aussehen. Ich muss nur einen Weg finden. : p –

Verwandte Themen