Biesterfeld: Wie Instanz aus dem Konstruktor verwenden?

Beitrag lesen

Hej,

und wenn man den Autoren zugesteht, dass mit dem Warenlager nicht die Klasse selber, sondern das Attribut welches das Warenlager maßgeblich charakterisiert gemeint ist, würde ich der Lösung von Rouven vollständig zustimmen.

Ich belasse es derweil in der Main-Methode. Danke jedenfalls einstweil.
Übrigens wurde bei diesem Beispiel im Nachinein auch noch ein Teil mit Vererbung dazugedichtet,

Deswegen fragte ich nach der genauen Aufgabenbeschreibung. Übrigens hat das alles nicht viel mit der main()-Methode zu tun. Bei dir geht es gerade um Objetorientiertheit, da isses zunächst mal egal, wo die Objekte instanziert werden, wichtig ist nur, dass sie sinnvolle Konstruktoren zum instanzieren anbieten. So und nun das eigentlich wichtige: Wenn du wie on Rouven vorgeschlagen die "1000 Artikel" im Konstruktor instanzierst (dazu musst du übrigens keine konkreten Artikel haben, vielmehr schusterst du nur das Regal zusammen) kannst du diese Initsialisierung bei einer erbenden Klasse auch beeinflussen.

  
public class Warenlager {  
  protected Artikel[] artikel;  
  public Warenlager() {  
    artikel = new Artikel[1000];  
  }  
}  
  
public class KleinesWarenlager extends Warenlager {  
  public KleinesWarenlager() {  
    super();  
  }  
  public KleinesWarenlager( int groesse ) {  
    super.artikel = new Artikel[groesse];  
  }  
}

Auch wenn das unter dem Aspekt der Kapselung nicht so sauber wäre. Wenn du aber die Größe in der Variablendeklaration festnagelst, hast du keine Möglichkeit mehr die zu beeinflussen. Schau dir mal z.B. die Implementierung der java.util.ArrayList an, da wird etwas ganz ähnliches gemacht. Wahrscheinlich solltet ihr mit der Übungsaufgabe an das Collection-Framework rangeführt werden.
Jedenfalls bin ich nicht der Meinung dass die Aufgabe sinnlos gestellt ist. Aber so genau weiß das ja keiner, weil du sie ja nicht preisgeben möchtest.

Beste Grüße
Biesterfeld

--
Art.1: Et es wie et es
Art.2: Et kütt wie et kütt
Art.3: Et hätt noch immer jot jejange
Das Kölsche Grundgesetz