Dynamisches Array

matzexom

Mitglied
Hallo liebe Java-Forum.org Mitglieder,

Ich habe eine
Klasse "Arbeiter" mit den Attributen "Name" und "Gehalt"

und ich soll jetzt eine Klasse "Gehaltsabteilung" erstellen die als privates Attribut ein dynamisches Array "mitarbeiter" enthält, welches Einträge vom Typ "Arbeiter" aufnehmen kann.

Die Klasse "DynArray" ist aus der Vorlesung gegeben:

Java:
class DynArray {
  private int size;
  private Object[] items;
  
  DynArray() { items = new Object[10]; }	

  public int size() { return size; }
  
  public void ensureCapacity (int capacity) { 
    if (capacity>items.length) {
      Object[] tmpitems = new Object[capacity];
   	  for (int i=0; i<size; i++)  tmpitems[i]=items[i];

   	  items = tmpitems;
    }	
  }
}

Und ein Konstruktor Gehaltsabteilung(), der beim Aufruf das DynArray "mitarbeiter"
erzeugen soll.
Macht java das nicht eh automatisch, wenn ich ihm nichts anderes sage?

Das Problem ist ich verstehe die Klasse des DynArray nicht so richtig, wie kann ich jetzt ein item des Typ Arbeiter hinzufügen?

mir ist noch gegeben für die Klasse "DynArray"
Java:
  public void addItem (Object obj) { 
    ensureCapacity(size+1);
    items[size]=obj;
    size++;
  }

und wenn ich
Java:
	public void hinzufuegen (Arbeiter arb)
	{
		mitarbeiter.additem(arb);
	}
mache
meckert er rum, aber ich versteh nicht wieso, vielleicht weil die Klassen nicht zueinander passen oder doch der Standard Konstruktor nichts gescheites macht.

Doch so viel Text geworden, sry :X
Vielleicht kann mir einer erklären woran es hapert?

Mit freundlichen Grüßen
Matze
 

matzexom

Mitglied
Ich habe
Code:
mitarbeiter
so initialisiert

Java:
public class Gehaltsabteilung {
	private DynArray mitarbeiter;

wenn du das meinst.
und bei meiner main Funktion steht das

Java:
	public static void main(String[] args) {
		
		Gehaltsabteilung g = new Gehaltsabteilung();
		Arbeiter Paul = new Arbeiter ("Paul", 100);

		g.hinzufuegen(Paul);

und die Fehlermeldung ist:

Exception in thread "main" java.lang.NullPointerException
at Gehaltsabteilung.hinzufuegen(Gehaltsabteilung.java:14)
at TestMain.main(TestMain.java:13)

das sind die Zeilen

[JAVA=14]mitarbeiter.addItem(arb);[/code]
und
[JAVA=13]g.hinzufuegen(Lutz);[/code]

Die Fehlermeldung sagt ja aus das die Variable null ist, also wird es ein Fehler bei der Initialisierung des Objekts liegen. Aber ich weiß nicht wie ich es richtig initialisieren soll.
 
Zuletzt bearbeitet:

matzexom

Mitglied
ok jetzt gehts hab im Konstruktor ,wie du meinstest, noch

Java:
	public Gehaltsabteilung ()
	{
		mitarbeiter = new DynArray();
	}
eingefügt

vielen dank für eure schellen Antworten :)
 

Neue Themen


Oben