# Arrays im OOP



## ataberlin (26. Nov 2017)

Hallo, 
Ich benötige Hilfe bei dieser Aufgabe(als Anhang).Ich weiß nicht genau was ich da machen soll und welchen Schritt ich zuerst machen soll... Ich habe die anderen Klassen schon geschrieben. 

Hier muss die Aufgabe erledigt werden...

```
public class Warehouse {

    private WarehouseItem[] warehouse = new WarehouseItem[0];
   

    /**
    * This method registers products in the warehouse. The stock value is set to 0
    * @param products
    */
    public void registerProducts(Product... products) {
        Product.se
    Product[] products2 = new Product[products.length + 1];
    System.arraycopy(products,  0, products2,  products.length, 0);
    products2[products.length] = products;   
   
   
    }
```


Hier die Klasse Product...

```
public class Product {

        private static String name;
        private static String description;
        private static double price;
        private int id  = nextId++;
        private static int nextId = 0;
```


Danke schonmal für eure Hilfe


----------



## mrBrown (26. Nov 2017)

ataberlin hat gesagt.:


> Ich benötige Hilfe bei dieser Aufgabe(als Anhang).Ich weiß nicht genau was ich da machen soll und welchen Schritt ich zuerst machen soll... Ich habe die anderen Klassen schon geschrieben.


Du kannst einfach die Schritte aus der Aufgabe durchgehen. Wo hängst du denn da?


----------



## ataberlin (26. Nov 2017)

Genau genommen hier:
Diese Methode soll dem Lager die in den Parametern übergebenen Produkte hinzufügen, indem es die übergebenen Produkte in neue Instanzen von WarehouseItem mit stock = 0 verpackt und diese Instanzen zum warehouse Array hinzufügt

Ich verstehe nicht wie das aufgebaut werden soll... bin leider auch erst ein Java-Anfänger


----------



## mrBrown (26. Nov 2017)

Es gibt sicher die Klasse WarehouseItem, von dieser musst du neue Instanzen für die Produkte erstellen, die jeweils die Produkte und die Anzahl (in diesem Fall 0) enthalten.

Diese musst du dann dem Array zuzufügen, worauf sich ja auch die nächsten Sätze beziehen


----------



## ataberlin (26. Nov 2017)

So sieht die Klasse aus

public class WarehouseItem {

    private Product product;
    private int stock;


----------



## ataberlin (26. Nov 2017)

mrBrown hat gesagt.:


> Es gibt sicher die Klasse WarehouseItem, von dieser musst du neue Instanzen für die Produkte erstellen, die jeweils die Produkte und die Anzahl (in diesem Fall 0) enthalten.
> 
> Diese musst du dann dem Array zuzufügen, worauf sich ja auch die nächsten Sätze beziehen


Wie genau erstelle ich den neue Instanzen  für Produkte welche Produkte  beinhalten?


----------



## Javinner (26. Nov 2017)

ataberlin hat gesagt.:
			
		

> *Klassen* sind Datenstrukturen, die einerseits Variablen, zusätzlich aber auch gleich Funktionen enthalten, die diese Daten manipulieren können...
> Ein *Objekt* ist eine *Instanz* (engl. instance) einer Klasse


Produkt A = new Produkt 
Dem nach ist `A` eine Instanz der Klasse Produkt.
In der Aufgabe steht, du sollst eine Anzahl x Produkte, die ja am Anfang nicht fest steht, an eine Methode übergeben, diese soll dann mit WarehouseItem verpackt und an das Array Warenhouse übergeben werden. Warenhouse ist voll, so musst du: 1 + 1 = neues Array erstellen.


----------

