WinFuture-Forum.de: [java/oop] Anzahl Ersteller Objekte Zählen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

[java/oop] Anzahl Ersteller Objekte Zählen


#1 Mitglied ist offline   Slayer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.476
  • Beigetreten: 12. Dezember 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Baden-Württemberg
  • Interessen:&gt; Internet<br />&gt; Musik<br />&gt; Filme<br />&gt; Events

geschrieben 12. Dezember 2008 - 18:01

Hallo zusammen,

kurze Frage zur objektorientierten Programmierung in Java.
Ich möchte wissen, wie ich die Anzahl bisher erzeugter Objekte zählen kann und zwar brauche ich für jedes erzeugte Objekt eine Zahl. Beginnend mit 1 und es soll die Zahl immer um 1 erhöht werden. Somit bekommen 3 erzeugte Objekte die Nummern 1, 2 und 3...

Wäre super, wenn mir da schnell jemand helfen kann. Vielen Dank schon mal im Voraus!:wink:
Der Mensch hat drei Wege, klug zu handeln.
Erstens durch Nachdenken: Das ist der Edelste.
Zweitens durch Nachahmen: Das ist der Leichteste.
Drittens durch Erfahrung: Das ist der Bitterste.

(Konfuzius)
0

Anzeige



#2 Mitglied ist offline   [Elite-|-Killer] 

  • Gruppe: aktive Mitglieder
  • Beiträge: 762
  • Beigetreten: 02. Oktober 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Passau

geschrieben 12. Dezember 2008 - 18:22

Schon mal versucht das ganze mit der Relection-API anzugehen?
0

#3 Mitglied ist offline   G.I.Joe 

  • Gruppe: aktive Mitglieder
  • Beiträge: 978
  • Beigetreten: 19. September 04
  • Reputation: 0

geschrieben 12. Dezember 2008 - 18:29

Du könntest eine abstrakte Oberklasse mit statischer, protected Zählvariable erstellen und alle Klassen davon erben lassen. Die müssen dann in ihrem Konstruktor den Zähler eben erhöhen und sich evtl. ihre Nummer merken.
Falls du Objekt-Referenzen zählen willst ist das schon eine andere Sache. Ich glaube da gibt es ein paar schmutzige Tricks mit denen man die Metadaten des GarbageCollectors durchsuchen kann, aber prinzipiell sollte man davon die Finger lassen.
Falls du mit irgendeinem Framework arbeitest in dem dein Programm läuft, kannst du ja mal schauen ob das evtl. Interceptors hat. Normales Java hat sowas natürlich nicht.
Eine andere saubere Möglichkeit wäre ein AOP-Framework (aspektorientierte Programmierung) wie AspectJ zu nehmen. Da sollte sich sowas ziemlich generisch lösen lassen ohne wie in Vorschlag 1 auf POJOs zu verzichten.
Eingefügtes Bild Eingefügtes Bild
0

#4 Mitglied ist offline   Slayer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.476
  • Beigetreten: 12. Dezember 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Baden-Württemberg
  • Interessen:&gt; Internet<br />&gt; Musik<br />&gt; Filme<br />&gt; Events

geschrieben 12. Dezember 2008 - 18:42

Ich hab's grad hinbekommen durch probieren, es funktioniert so:

public class Klasse {
  static int nextNumber;
  int number;

  // Konstruktor
  public Klasse() {
	nextNumber++;
	number = nextNumber;
  }
}


So bekommt jedes erzeugte Objekt automatisch eine Nummer, beginnend mit 1 und jeweils um 1 erhöhend. Ich hatte den Fehler davor, dass ich die Variable als public static int nextNumber; deklariert hatte und dann ging es nicht. Kann mir jemand erklären, was das 'public' exakt bewirkt?
Der Mensch hat drei Wege, klug zu handeln.
Erstens durch Nachdenken: Das ist der Edelste.
Zweitens durch Nachahmen: Das ist der Leichteste.
Drittens durch Erfahrung: Das ist der Bitterste.

(Konfuzius)
0

#5 Mitglied ist offline   maekloev 

  • Gruppe: Mitglieder
  • Beiträge: 3
  • Beigetreten: 08. Mai 08
  • Reputation: 0

geschrieben 13. Dezember 2008 - 22:40

public ist ein zugriffsmodifikator und bewirkt, dass sowohl klassen, die von dieser klassen erben, als auch klassen, die sich im selben oder auch in einem anderen paket befinden, diese methode (auch bei variablen) sehen können. genaueres findest du im openbook auf galileocomputing.de.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0