Objekte zählen mehrerer Unterklassen

  • Themenstarter Themenstarter Leon3
  • Beginndatum Beginndatum
L

Leon3

Gast
Nabend,
folgendes: Wir müssen die neugeborenen Tiere eines Zoo´s ab zählen.
Dafür hab ich schon die main methode und 2 klassen (für 2 Tierfamilien). Die beiden Tierfamilien besitzen jeweils 4 Tiere (Unterklassen verwendet) .

In meiner main methode lese ich aus einer textdatei z.b. 3 tiere raus. Daraufhin verwende ich listen um jeweils auf die Unterklassen der Tiere "umzuleiten". Jetzt kann ich zumindest über die Unterklassen verschiedene Sachen für das jeweilige tier ausgeben.
Nun muss ich aber wenn ein Tier ausgeben wird diesen eine genaue und fortlaufende nummer geben.

1.) Wo genau muss ich den Zähler reinschreiben? (extra Klasse erstellen und über main darauf verweisen?)
2.) Wie genau (Programmcode) sieht das am ende aus?

Leider weiß ich nicht mehr wie genau das gemacht wird und kann nicht mit programmcode diesen. Tut mir leid 🙁

lg Max
 
Hi und willkommen hier im Forum!

Scheinbar möchtest du ein Array so ausgeben lassen:
Tier1: Elefant
Tier2: Esel

Wenn ich das so richtig verstanden habe, kannst du eine for-Schleife erstellen, die das Array ausgibt:
Java:
for(int i=0; i<array.length; i++) {
  System.out.println("Tier"+i+":"+array[i-1]);
}
Liebe Grüße
ehlr
 
Das hilft mir leider nicht viel weiter.
Ich möchte gerne jedesmal wenn in meiner textdatei elefant steht, diesem eine bestimmte Nr. geben.
Am besten nen Bsp. / ich denke das geht am schnellsten
Liste:
Elefant -> INr.: 1
Tiger -> INr.: 2
Elefant -> INr.: 3
Bär -> INr.: 4
Elefant -> INr.:5
Bär -> INr.: 6
Es soll ne eindeutige Nummer werden. (INr. = Identifikationsnummer)
In meiner main Klasse hab ich ne switch Anweisung für die Textdatei.
Und von der aus will ich auf meine Unterklasse für das Tier (bereits vorhanden) sowie auf die Zähl-klasse verweisen.
Deswegen brauch ich ne Art zähler der immer weiter zählt und das dem jeweiligen element in der liste zuteilt. Wahrscheinlich brauch ich noch nen speicher damit sich der Zähler bereits vergebene Sachen merkt.
Danke schonmal für deine Mühe.
Am besten fragt ihr wenn was unlogisch erscheint. Ich weiß nicht was sonst noch für euch relevant wäre.
LG
 
Wenn ich dich richtig verstanden habe, sollte es eine static-Variable in der obersten Klasse der Hierarchie (Animal oder so) tun. Die dann als ID im Konstruktor setzen und hochzählen:

Java:
public abstract class Animal {
   private static int counter = 1; //Startwert für 1. Tier
   private int id;

   public Animal() {
       id = counter;
       counter++;
   }

   public int getId() { return id; }
}

class Platypus extends Animal {
   ...
}

Das heißt, jedes mal, wenn du ein neues Tier instantiierst (egal von welcher Unterklasse) bekommt es die nächste ID verpasst.
 

Zurück
Oben