Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden

Status
Nicht offen für weitere Antworten.

Alpinwhite

Aktives Mitglied
Hallo, laut der gegebenen main-Methode wird in diesem Shopping Cart Programm ein Konstruktor "addItem" der Klasse ShoppingCart aufgerufen. Diese Methode hat in der Klasse ShoppingCart aber nur 3 Parameter. Übergeben wird in der main-Methode aber ein Objekt "Grocery" mit 5 Variablen. Wie kann man nun mit den übrigen 2 Parametern arbeiten?

Es lässt sich nur mit "toAdd.pid" "toAdd.signifier" und toAdd.PricePerUnit" arbeiten, aber ich brauche die anderen 2 Variablen auch noch, um sie im Array "Item[] cart = new Item" zu speichern.

Außerdem stellt sich mir die Frage mit welchen Add-Methoden ich was genau machen soll. Es gibt in Grocery, Article und ShoppingCart eine Add-Methode.

In der Aufgabe steht:

Bei den Methoden addItem und removeItem ist darauf zu achten dass jede der vier möglichen Waren (Butter, Milch, Draht, Fliesen) als Objekt nur einmal im Warenkorb liegt. Das Hinzufügen bzw. Entfernen erfolgt über die Manipulation der Mengenangabe (Instanzvariable). Nutzen Sie dazu die überschriebenen Methoden von Item indem Sie Objekte der Klassen Grocery/Article instanziieren die jeweils die Mengen enthalten welche hinzugefügt/entfernt werden sollen. Diese Objekte übergeben Sie anschließend der Methode Item.addItem(..) / removeItem(..) (Polymorphismus).

main-Methode

Code:
public class ShoppingMall {

    public static void main(String[] args){
       
        BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Ihr digitaler Warenkorb:");
       
        boolean loop = true;
        int item = 0;
        String action = "";
        int pckg;
        float amount = 0.0f;
               
       
       
        ShoppingCart basket = new ShoppingCart();
       
        while (loop) {
            System.out.println("\nWelcher Artikel soll bearbeitet werden");
            System.out.println("------------------------------");
            System.out.println("1 Butter");
            System.out.println("2 Milch");
            System.out.println("3 Draht");
            System.out.println("4 Fliesen");          
            System.out.println("\nSie haben den Einkauf abgeschlossen?\nWaehlen Sie zwischen: ");
            System.out.println("------------------------------");
            System.out.println("5 Warenkorb ausgeben");
            System.out.println("0 Exit\n");
            System.out.print("Ihre Eingabe bitte: ");

            try{
                item = Integer.valueOf(input.readLine());
               
               
                if((item < 5) && (item > 0))
                {
                    //System.out.println("\n------------------------------");
                    do{
                        System.out.print("Waehlen Sie + fuer hinzufuegen oder - fuer entfernen. ");
                        action = input.readLine();
                    }while(!action.equals("+") && !action.equals("-"));
                }
               
                //if(action.equals("+") || action.equals("-"))
                //{
                    switch (item) {
                        case 1: {
                            System.out.print("Wieviele Packungen Butter ? ");
                            pckg = Integer.valueOf(input.readLine());
                            Grocery groc = new Grocery(1,"Butter",1.59f,20180618,pckg);
                            if(action.equals("+"))
                                basket.addItem(groc);
                            else
                                basket.removeItem(groc);
                            break;
                        }
                        case 2: {                       
                            System.out.print("Wieviele Packungen Milch ? ");
                            pckg = Integer.valueOf(input.readLine());
                            Grocery groc = new Grocery(2,"Milch",1.09f,20180618,pckg);
                            if(action.equals("+"))
                                basket.addItem(groc);
                            else
                                basket.removeItem(groc);
                            break;
                        }
                        case 3: {
                            System.out.print("Wieviele laufende Meter (lfdm) Draht? ");
                            amount = Float.valueOf(input.readLine());
                            Article art = new Article(3,"Draht",0.36f,"lfdm",amount);
                            if(action.equals("+"))
                                basket.addItem(art);
                            else
                                basket.removeItem(art);
                       
                            break;
                        }
                        case 4: {
                      
                            System.out.print("Wieviele Quadratmeter (qm) Fliesen ? ");
                            amount = Float.valueOf(input.readLine());
                            Article art = new Article(4,"Fliesen",20.00f,"qm",amount);
                            if(action.equals("+"))
                                basket.addItem(art);
                            else
                                basket.removeItem(art);

                            break;
                        }
                        case 5: {
                            System.out.println("\nIn Ihrem Warenkorb befindet sich:\n");
                            System.out.println("Artikel     Menge         Preis/Einheit             Preis");
                            System.out.println("----------------------------------------------------------");
                            System.out.println(basket);
                            System.out.print("\nWeiter mit beliebiger Taste!");
                            input.readLine();
                            break;
                        }
                        case 0: {
                            loop = false;
                            System.out.println("\nProgramm beendet");
                            break;
                        }   
                        default:
                            System.out.println("Ihre Eingabe wurde nicht erkannt!\n");
                       
                    }
                //}
                //else
                //    System.out.println("Ihre Eingabe wurde nicht erkannt!\n");
               
            }
            catch(Exception e){
                System.out.println("\nFalsche Eingabe:\nLebensmittel werden nur in ganzen Packungen abgegeben!\n"
                                   + "Non- Food Produkte auch in Bruchteilen der jeweiligen Einheit\n"
                                   + "Geben sie eine ganze Zahl bei Lebensmitteln ein oder eine \n"
                                   + "Gleitpunktzahl bei Non- Food Produkten.");
            }
        }      
    }
}

Klasse ShoppingCart

Code:
public class ShoppingCart {

    public static Item[] cart;
    int temporary;
    private int capacity;
   
    public ShoppingCart() {
       
    }
    
     public void addItem(Grocery toAdd) {
         cart[0]=new Grocery(toAdd.pid, toAdd.signifier, toAdd.pricePerUnit, toAdd.expiryDate, toAdd.packetCount);
        
        
         if(toAdd instanceof Grocery) {
        
             if(toAdd.pid==1) {
                
            toAdd.
           
             cart[0]=new Grocery(toAdd.pid, toAdd.signifier, toAdd.pricePerUnit);
           
                 System.out.println(cart[0]);
             }
            
            
             if(toAdd.pid==2) {
               
                
             }
         }
        
         if(toAdd.pid==3) {
            
         }
         if(toAdd.pid==4) {
            
         }
     }
    
     public void removeItem(Item toRemove) {
         //Waren entfernen/Menge reduzieren
     }

Klasse Item

Code:
public abstract class Item {

    protected int pid; //eindeutige Produktkennzeichnung
    protected String signifier; //Name des Produkts, z.B. Butter
    protected float pricePerUnit; //Preis pro Einheit
   
    Item(){}
   
    Item(int pid, String signifier, float pricePerUnit){
        this.pid=pid;
        this.signifier=signifier;
        this.pricePerUnit=pricePerUnit;
    }
   
   
   
    int getPid() {
        return this.pid;
    }
    String getSignifier() {
        return this.signifier;
    }
    float getPricePerUnit() {
        return pricePerUnit;
    }
    void setPricePerUnit(int newprice) {
        this.pricePerUnit=newprice;
    }
   
    public String toString() {
        return "This is the Base Class";
    }
   
    abstract public void addItem(Item toAdd);
    abstract public void removeItem(Item toRemove);
    abstract public String getUnit();
    abstract public boolean isEmpty();
    abstract public float getPrice();
}

public class Grocery extends Item{




static int packetCount=0;
static int expiryDate=0;

int amount;
String Pck;

Grocery(){}

Grocery(int pid,String signifier,float pricePerUnit,int expiryDate,int packetCount){
super(pid, signifier, pricePerUnit);
this.expiryDate=expiryDate;
this.packetCount=packetCount;
}

int getPacketCount() {
return this.packetCount;
}
int getExpiryDate() {
return this.expiryDate;
}
void setPacketCount(int packet) {
this.packetCount=packet;
}

public void addItem(Item toAdd) {



}


public void removeItem(Item toRemove) {
-toRemove.
}

public String getUnit() {
return Pck;
}

public boolean isEmpty() {

}

public float getPrice(int menge, int pricePerUnit) {
return menge*pricePerUnit;
}

public float getPrice() {
return
}
public String toString() {
return
}

}

Klasse Grocery

Code:
public class Grocery extends Item{

   
   

    static int packetCount=0;
    static int expiryDate=0;

    int amount;
    String Pck;
   
Grocery(){}

Grocery(int pid,String signifier,float pricePerUnit,int expiryDate,int packetCount){
    super(pid, signifier, pricePerUnit);
    this.expiryDate=expiryDate;
    this.packetCount=packetCount;
}

int getPacketCount() {
    return this.packetCount;
}
int getExpiryDate() {
    return this.expiryDate;
}
void setPacketCount(int packet) {
    this.packetCount=packet;
}

public void addItem(Item toAdd) {
   


}


public void removeItem(Item toRemove) {
    -toRemove.
}

public String getUnit() {
    return Pck;
}

public boolean isEmpty() {
   
}

public float getPrice(int menge, int pricePerUnit) {
    return menge*pricePerUnit;
}

public float getPrice() {
    return
}
public String toString() {
    return
}

}

Klasse Article

Code:
ublic class Article extends Item {

    float draht;
    float fließen;
    String unit;
    float amount;
   
Article(){}

Article(int pid, String signif, float pricePerUnit, String unit, float amount){
    super(pid, signif, pricePerUnit);
    this.unit=unit;
    this.amount=amount;
}

public void addItem(Item toAdd) {

}


public void removeItem(Item toRemove) {
   
}

public String getUnit() {
   
}

public boolean isEmpty() {
   
}

public float getPrice(int menge, int pricePerUnit) {
    return menge*pricePerUnit;
}

}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 7
M Konstruktor-Aufruf im Konstruktor, aber nicht am Anfang? Java Basics - Anfänger-Themen 4
A Konstruktor Aufruf Java Basics - Anfänger-Themen 4
S Überladener Konstruktor und aufruf aus eigener Klasse Java Basics - Anfänger-Themen 2
A Aufruf von Konstruktor aus Basisklasse Java Basics - Anfänger-Themen 7
L Klassen Aufruf einer ueberschreibbaren Methode im Konstruktor Java Basics - Anfänger-Themen 4
T Aufruf einer Methoden aus einer Util-Klasse mit privatem Konstruktor Java Basics - Anfänger-Themen 7
E Konstruktor-Aufruf Java Basics - Anfänger-Themen 9
L Mehrere Objekte einer Klasse aber nur einmal Konstruktor aufruf? Java Basics - Anfänger-Themen 2
T Generics: Generischer Konstruktor-Aufruf? Java Basics - Anfänger-Themen 17
P Konstruktor-Aufruf IN der Methode? Java Basics - Anfänger-Themen 2
K Im Konstruktor: aufruf eines anderen Konstruktors Java Basics - Anfänger-Themen 7
T Aufruf der Methode einer Oberklasse, wenn sie in der Unterklasse überschrieben ist. Polymorphie. Java Basics - Anfänger-Themen 2
P Array-Objekte-Aufruf Java Basics - Anfänger-Themen 22
Agent4nobody Programmstart durch aufruf des interpreters funktioniert nicht Java Basics - Anfänger-Themen 14
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
K Erste Schritte Stream-Aufruf vereinfachen Java Basics - Anfänger-Themen 3
sashady ursprüngliche Array-Werte bei erneutem Aufruf? Java Basics - Anfänger-Themen 7
M Aufruf von statischen Methoden einer anderen Klasse Java Basics - Anfänger-Themen 15
Y Aufruf von Methode nicht möglich. Java Basics - Anfänger-Themen 2
D Aufruf von mehreren Activities bringt die app zum Absturz Java Basics - Anfänger-Themen 5
L Methoden Wie Löse ich ext Methoden Aufruf Fehler? Java Basics - Anfänger-Themen 3
X Methode bei mehrfachen Aufruf kein Effekt Java Basics - Anfänger-Themen 3
H Aufruf von Methoden durch Methoden Java Basics - Anfänger-Themen 3
B EJB und Arquillian - bekomme Nullpointer Exception beim Aufruf der EJB Klasse Java Basics - Anfänger-Themen 40
O Verwirrt beim Java Collection Framework aufruf! Java Basics - Anfänger-Themen 9
T Konsolenscanner startet nicht durch Aufruf von Actionlistener Java Basics - Anfänger-Themen 4
B OOP While Schleife läuft Endlos durch externen aufruf Java Basics - Anfänger-Themen 2
E Vererbung super-Methoden Aufruf Java Basics - Anfänger-Themen 3
D Interface Wieso Aufruf aller Methoden eines Interfaces? Java Basics - Anfänger-Themen 11
R Methoden NPE beim Aufruf einer Methode einer anderen Klasse Java Basics - Anfänger-Themen 4
J Aufruf einer Methode über einen String Java Basics - Anfänger-Themen 11
H Rekursiver Aufruf Java Basics - Anfänger-Themen 8
E Daten dem Super Aufruf übergeben Java Basics - Anfänger-Themen 3
D Interface Frame doppelt durch Aufruf der GUI Klasse Java Basics - Anfänger-Themen 1
Henri Aufruf von getX() und getY() aus der Super klasse Objekt() Java Basics - Anfänger-Themen 3
E Aufruf auf Objekt mit übergebenem Wert? Java Basics - Anfänger-Themen 7
D Aufruf einer statischen Variable Java Basics - Anfänger-Themen 1
D Aufruf einer Methode einer anderen Klasse Java Basics - Anfänger-Themen 39
T static String Variable wird nur beim ersten aufruf durch eine Funktion geändert. Java Basics - Anfänger-Themen 16
C Erste Schritte Fehler beim *.class Aufruf über cmd.exe Java Basics - Anfänger-Themen 9
M Speichern von Objekten - Verfügbarkeit bei erneutem Aufruf Java Basics - Anfänger-Themen 3
S PHP Aufruf mit mehreren Variablen Java Basics - Anfänger-Themen 2
P Aufruf Methode anderer Klasse Java Basics - Anfänger-Themen 5
J Klassen Reihenfolge beim Aufruf von Klassen Java Basics - Anfänger-Themen 1
V Problem Aufruf einer Methode in einer Methode Java Basics - Anfänger-Themen 1
O Frage zum Aufruf überladener Methoden Java Basics - Anfänger-Themen 4
G funktions Aufruf aus GUI Java Basics - Anfänger-Themen 9
A Fehlermeldung beim aufruf der main Methode Java Basics - Anfänger-Themen 17
I Rückgabe und Aufruf einer Methode innerhalb einer anderen Methode Java Basics - Anfänger-Themen 5
W Zeitversetzter Aufruf der Methoden Java Basics - Anfänger-Themen 6
M Unbekannte Nummer bei Aufruf der toString Methode Java Basics - Anfänger-Themen 3
D Methode mit mehren Rekursiven aufrufen in Methode mit einem Rekursiven Aufruf umwandeln! Java Basics - Anfänger-Themen 1
F signiertes Applet fkt. nicht bei lokalem Aufruf Java Basics - Anfänger-Themen 2
A externer repaint Aufruf Java Basics - Anfänger-Themen 9
H Aufruf einer Instanzmethode funktionert nicht. Java Basics - Anfänger-Themen 6
Pentalon Ein Aufruf den ich nicht verstehe Java Basics - Anfänger-Themen 11
D dynamischer Aufruf Java Basics - Anfänger-Themen 2
N Aufruf der Methode Java Basics - Anfänger-Themen 16
L Next()-Aufruf zweimal innerhalb einer While-Schleife bei ListIterator Java Basics - Anfänger-Themen 10
S Aufruf Einer Methode aus einer anderen Klasse - Static Fehler Java Basics - Anfänger-Themen 4
A Aufruf der paint() Methode Java Basics - Anfänger-Themen 3
K Problem beim Array aufruf Java Basics - Anfänger-Themen 4
P URL für Lokalen Aufruf Java Basics - Anfänger-Themen 5
C OOP Aufruf von Methoden höherer Sichtbarkeit Java Basics - Anfänger-Themen 10
T Client-Fenster bei Aufruf unvollständig Java Basics - Anfänger-Themen 12
O OOP super aufruf 2 objekte? Java Basics - Anfänger-Themen 3
D Array Methoden Aufruf. Java Basics - Anfänger-Themen 14
M OOP Aufruf vieler Getter Methoden abkürzen? Java Basics - Anfänger-Themen 7
Q Aufruf einer Klasse in einem Package Java Basics - Anfänger-Themen 7
C Aufruf funktioniert nicht Java Basics - Anfänger-Themen 10
G Aufruf externer Funktionen Java Basics - Anfänger-Themen 7
C Exception beim Aufruf einer Methode Java Basics - Anfänger-Themen 2
A Aufruf einer Methode Java Basics - Anfänger-Themen 3
J Aufruf von Funktionen in *.jar mittels Eclipse Java Basics - Anfänger-Themen 4
T Shell Script Aufruf mit Java Java Basics - Anfänger-Themen 7
R Aufruf statische Methode Java Basics - Anfänger-Themen 7
M Aufruf zum Objekt erstellen aus String Java Basics - Anfänger-Themen 5
K OOP Nachteil bei direktem Aufruf von run() auf Thread-Objekten Java Basics - Anfänger-Themen 2
J Aufruf der Methode Java Basics - Anfänger-Themen 6
P OOP Aufruf eines Interfaces Java Basics - Anfänger-Themen 4
C Aufruf einer Funktion Java Basics - Anfänger-Themen 3
W Multiplikation mit rekursivem Aufruf Java Basics - Anfänger-Themen 17
C exec Aufruf mit Leerzeilen im Pfad Java Basics - Anfänger-Themen 3
L Methoden aufruf Java Basics - Anfänger-Themen 3
M methoden aufruf klappt nicht Java Basics - Anfänger-Themen 6
M Frage zum Aufruf eines Applets aus einer HTML - Datei Java Basics - Anfänger-Themen 3
N Methoden aufruf Java Basics - Anfänger-Themen 7
K Methoden aufruf von einer anderen Klasse Java Basics - Anfänger-Themen 7
S super() aufruf ausgabe Java Basics - Anfänger-Themen 3
M Probleme beim Aufruf von Listener in anderer Klasse Java Basics - Anfänger-Themen 9
F Aufruf von Methoden hintereinander gechachtelt??? Java Basics - Anfänger-Themen 8
E Mehrfache print ausgabe ohne Schleife oder Rekursiven aufruf? Java Basics - Anfänger-Themen 48
radiac CMD Windowskonsole und java aufruf in Vista 64 Java Basics - Anfänger-Themen 2
D Aufruf von WGET aus Java Java Basics - Anfänger-Themen 5
F Variabler Aufruf einer Methode Java Basics - Anfänger-Themen 10
F Methoden Aufruf Java Basics - Anfänger-Themen 4
L abgeleitete Klasse - Aufruf mit vererbter Klasse? Java Basics - Anfänger-Themen 2
T aufruf methode in methode macht probleme Java Basics - Anfänger-Themen 9
P seltsamer konsolen aufruf Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben