Aller Objekte einer Klasse

fornicator

Mitglied
Habe folgendes Problem: Ich habe zwei Klassen.Klasse a hat 2 Attribute und Klasse b besteht aus einem Feld in dem alle Objekte von Klasse a sind. Jetzt weiß ich nicht wie ich das Feld erstellen kann in dem alle Objekte der anderen Klasse enthalten sind. - Vielleicht indem ich bei dem Kunstruktor bei Klasse a, das Objekt immer noch in einem Feld speicher. Also so:

class punkt{
public double x;
public double y;

public konstruktor(int a,int b){
punkt punkt1 =new punkt();
punkt1.x=a;
punkt1.y=b;
feld[feld.length]=punkt1;}
public static void main(String[]args){int [] feld= new Int;}
}
class polygon {
public punkt[] ecken=feld;,}

Glaub nicht das es so stimmt. Weiß jemand wie es richtig geht?
 

faetzminator

Gesperrter Benutzer
1. Verwende Java-Tags!
2. Das ist überhaupt kein valider Javacode
3. Du kannst im Konstruktor von der zu "speichernden" Klasse die aktuelle Instanz ([c]this[/c]) in eine Liste speichern. Vergiss dabei aber nicht, dass so die Objekte vom GC nicht wieder gelöscht werden, solange diese in der Liste bleiben. Also müsstest du vor dem Dereferenzieren des Objekts noch irgendeine Methode dessen aufrufen (z.B. [c]destroy()[/c]? oder [c]removeFromPool()[/c]? oder wie auch immer...), welche die Instanz wieder aus der Collection löscht.
 

njans

Top Contributor
Ich hab mal deinen Java Code in java Tags kopiert und etwas zurecht gerückt.

Java:
// Klassen schreibt man groß! Also Punkt
class punkt
{
  public double x;
  public double y;

  // Der Konstrukter einer Klasse heißt immer so,w ie die Klasse, also: public punkt(int a,int b) 
  public konstruktor(int a,int b) 
  {
    // Warum erstellst du einen neuen Punkt? Wenn der Konstrukter gerufen wird, hast du schon ein Objekt Punkt, in dem befindest du dich gerade befindest ;)
    punkt punkt1 =new punkt();
    punkt1.x=a;
    punkt1.y=b;
    // Die Variable feld gibt es in Punkt nicht. Da wird der Compiler meckern 
    feld[feld.length]=punkt1;
  }

  public static void main(String[]args)
  {
    int [] feld= new Int;
    // Wenn du hier die Variable anlegst, hat eine Punkt Instanz keine Sicht drauf.
  }
}

class polygon 
{
  public punkt[] ecken=feld;
}

Nun zu deiner Frage: Hier kommt das Schlagwort "static" zum Tragen. Du willst alle existierenden Instanzen abspeichern? Dann packst du die einfach in ne Liste. Hierbei ist es aber wichtig, dass die Liste static ist, damit sie nicht spezielle an einem Objekt hängt, sondern unabhängig von den Objekten existiert. So fügen wir in deine Klasse Punkt das ein:

Java:
// Ich schreib sie mal richtig, groß ;)
class Punkt
{
  // Hiermit legen wir dann ein wachsendes Array an, was mit Punkt-Instanzen gefüllt wird. 
  private static final ArrayList<Punkt> INSTANZEN = new ArrayList<Punkt>();

  ...

  // Der Konstruktor, mal richtig benannt 
  public Punkt (int a, int b)
  {
    // Wenn ein neues Objekt erstellt wird, dann füge dieses Objekt (this) der Liste hinzu.
    INSTANZEN.add(this);
    ...
  }

  ...
}

Was nun aber wichtig ist: Wenn du das Objekt nicht mehr brauchst, dann musst du es auch wieder aus der Liste entfernen! Sonst bleibt es weiter existent, denn es existiert noch eine Referenz darauf und somit löscht der Garbage Collector es nicht (unschön und es verbraucht Speicher!).

Löschen könnte man es so:
Java:
// In die Klasse Punkt einfügen
public void entferneInstanzAusListe()
{
  INSTANZEN.remove(this);
}

Somit kannst du von außen, an einem Objekt der Klasse Punkt, ganz einfach diese Methode aufrufen :)
 
Zuletzt bearbeitet:

fornicator

Mitglied
Vielen Dank für deine Antwort. Werd da ma drüber brüten und dan sollte die Aufgaben kein Problem mehr sein :) - dan noch eine Frage am Rand, kennst du eine gute Seite/Buch in dem es hauptsächlich Übungsaufgaben mit Lösungen zum Thema Java,Algorithmen und Datenstrukturen gibt?
 

Fab1

Top Contributor
Hallo,

Ich finde der Link zu den Aufgaben in dem Buch ist etwas versteckt, zumindest hab ich ihn nicht gleich entdeckt. Falls du auch so blind bist wie ich anfangs, hier der Link zu den Aufgaben:
Java-Aufgaben | tutego
 

Marco13

Top Contributor
3. Du kannst im Konstruktor von der zu "speichernden" Klasse die aktuelle Instanz ([c]this[/c]) in eine Liste speichern. Vergiss dabei aber nicht, dass so die Objekte vom GC nicht wieder gelöscht werden, solange diese in der Liste bleiben. Also müsstest du vor dem Dereferenzieren des Objekts noch irgendeine Methode dessen aufrufen (z.B. [c]destroy()[/c]? oder [c]removeFromPool()[/c]? oder wie auch immer...), welche die Instanz wieder aus der Collection löscht.

Das könnte man durch WeakReferences vermeiden WeakReference (Java Platform SE 6)

Trotzdem klingt das, was der TO da vorhat, nach... ... ... also, zumindest fragwürdig (bei sol einer Klasse wie "Point").
 

Landei

Top Contributor
Yupp, hört sich abenteuerlich an. Wer braucht die Liste? Wird sie da benötigt, wo die Punkte instantiiert werden? Dann kann man sie dort in eine Liste packen. Falls nicht, kann der "Verwender" der Liste sie beim "Erzeuger" der Punkte abholen?

Der Grund, warum das Ganze suspekt ist, nennt sich "Single Responsibility Principle", das einem in vielen verschiedenen Situationen begegnet. Eine Methode, eine Klasse, ein Package u.s.w. sollen nur eine einzelne, klar umrissene Aufgabe haben. Eine Methode, die etwas berechnet, soll nicht noch etwas ausgeben (eventuell zum Testen, aber nicht in der Endversion). Eine Utility-Klasse soll nicht ein Haufen unzusammenhängender Methoden sein. Und eine Punkt-Klasse solle einen Punkt repräsentieren, nicht mehr und nicht weniger. Dazu gehört eine Liste aller Punkte normalerweise nicht dazu (generell sollte man zweimal überlegen, ob man statische Methoden oder Variablen verwendet).
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A OOP Ausgabe aller erstellten Objekte Java Basics - Anfänger-Themen 3
T code so schreiben das er von sich selber anpasst (code soll die anzahl aller bustaben bestimmen) Java Basics - Anfänger-Themen 16
eleonori Durchschnitt aller Werte eines Baums berechnen Java Basics - Anfänger-Themen 5
F Summieren aller Geschenke vom Typ Geschenk? Java Basics - Anfänger-Themen 12
F Summe aller echten Teiler Java Basics - Anfänger-Themen 2
F Summe aller echten Teiler und Zahlen zurückgeben Java Basics - Anfänger-Themen 1
D Interface Wieso Aufruf aller Methoden eines Interfaces? Java Basics - Anfänger-Themen 11
A Summe aller ungeraden Zahlen Java Basics - Anfänger-Themen 5
J ArrayList: summe aller Spielkarten Java Basics - Anfänger-Themen 15
L Array: Summe aller geraden und ungeraden Zahlen ermitteln Java Basics - Anfänger-Themen 9
B Summe aller Zahlen von 1 bis zu dieser Zahl (ohne while oder for schleife) Java Basics - Anfänger-Themen 4
L Summer aller Integer-Zahlen im Intervall [x,y] Java Basics - Anfänger-Themen 6
1 Minimum aller Elemente in einem Array bestimmen Java Basics - Anfänger-Themen 10
S Collections Ausgabe aller Tastencodes Java Basics - Anfänger-Themen 9
F Nach Beendigung aller Schleifen von vorn anfangen, Java Basics - Anfänger-Themen 5
R string aller args[] ? Java Basics - Anfänger-Themen 8
O Erste Schritte Aller Anfang ist schwer ! Bitte um Unterstützung Java Basics - Anfänger-Themen 6
O Liste aller Instanzen einer Klasse Java Basics - Anfänger-Themen 18
M Aller anfang ist schwer :D Hilfe! Java Basics - Anfänger-Themen 18
L Liste aller Klassen die in einem Paket sind Java Basics - Anfänger-Themen 7
D Summe aller Positiven Integer aus einer Liste mit ActionObject Java Basics - Anfänger-Themen 2
A Summe aller Natürlichen Zahlen - Methode Prüfen Java Basics - Anfänger-Themen 10
P Ermitteln aller perfekten Zahlen Java Basics - Anfänger-Themen 12
S Liste aller Partitionen (auch "unmounted") Java Basics - Anfänger-Themen 2
F Liste aller Ordner auf einem Laufwerk erstellen? Java Basics - Anfänger-Themen 3
Z Geburtstag aller Angestellten am bestimmten Datum Java Basics - Anfänger-Themen 59
M Eclipse: Durchsuchen aller Dateien? Java Basics - Anfänger-Themen 1
B Liste aller Klassen die ein Interface implementieren. Java Basics - Anfänger-Themen 7
K Anzahl aller Datensätze anzeigen ? Java Basics - Anfänger-Themen 5
L Auflistung aller Fonts Java Basics - Anfänger-Themen 2
G Liste aller WindowListener Java Basics - Anfänger-Themen 3
D Die Frage aller Fragen Java Basics - Anfänger-Themen 22
J Auslesen aller Attribute mit JDOM Java Basics - Anfänger-Themen 15
G Aller anfang is schwer. Java Basics - Anfänger-Themen 4
A ausgabe aller 10-bitzahlen Java Basics - Anfänger-Themen 6
A Liste aller Items einlesen Java Basics - Anfänger-Themen 8
B Wo finde ich eine Übersicht aller Methoden? Java Basics - Anfänger-Themen 2
I Zapier -> wie werden Objekte gespeichert? Java Basics - Anfänger-Themen 10
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
K Hab ich dass so richtig erklärt (Objekte und Referenzen)? Java Basics - Anfänger-Themen 5
J Objekte in JSON speichern?? Java Basics - Anfänger-Themen 1
I Objekte in ShareProject speichern um später zu nutzen Java Basics - Anfänger-Themen 4
J Objekte Java Basics - Anfänger-Themen 22
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
Hzrfa Objekte, Referenz Java Basics - Anfänger-Themen 5
T 3D Objekte verarbeiten Java Basics - Anfänger-Themen 2
N Welche Objekte kann man zu einem Set hinzufügen Java Basics - Anfänger-Themen 4
I XML einlesen und Objekte bekommen Java Basics - Anfänger-Themen 2
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
Encera Zugriff auf Map-Objekte Java Basics - Anfänger-Themen 3
E Objekte löschen Java Basics - Anfänger-Themen 9
P Array-Objekte-Aufruf Java Basics - Anfänger-Themen 22
Encera Auf Objekte aus anderer Klassen zugreifen Java Basics - Anfänger-Themen 20
P Zähler Variable für mehrere Objekte Java Basics - Anfänger-Themen 6
B Objekte verschwinden beim Übersetzen Java Basics - Anfänger-Themen 5
D Zwei verschiedene Intellij Projekte, wie benutze ich wechselseitig objekte Java Basics - Anfänger-Themen 8
E Rekursiv Objekte erzeugen - geht das? Java Basics - Anfänger-Themen 2
T Collections Sind Subklassen-Objekte in Listen mit Generics erlaubt? Java Basics - Anfänger-Themen 16
F Aus eingelesener Datei korrekt Objekte erzeugen Java Basics - Anfänger-Themen 5
G Übergeordnete Objekte abrufen Java Basics - Anfänger-Themen 9
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
A Objekte mit Parametern in eine Liste packen Java Basics - Anfänger-Themen 19
B Objekte, bspw. konkret Arraylists,manuell aus Speicher löschen? Java Basics - Anfänger-Themen 70
S Objekte von zwei klassen in zwei verschiedene Textdateien schreiben Java Basics - Anfänger-Themen 5
D Wie Objekte im JFrame frei bewegen lassen? Java Basics - Anfänger-Themen 3
Spandeli8 Erzeugte Objekte gegenüber Bildern hervorheben in Java Processing Java Basics - Anfänger-Themen 1
J Zwei Objekte vergleichen Java Basics - Anfänger-Themen 8
L Werte von Objekte addieren Java Basics - Anfänger-Themen 14
U Objekte in LinkedList löschen und editieren Java Basics - Anfänger-Themen 14
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
G Methoden Informationen aus zwei Objekte bekommen? Java Basics - Anfänger-Themen 6
P Globale Objekte Java Basics - Anfänger-Themen 2
C Nachträglich neue grafische Objekte hinzufügen Java Basics - Anfänger-Themen 7
D Interaktion zweier Objekte Java Basics - Anfänger-Themen 5
M Objekte in Array speichern und ausgeben Java Basics - Anfänger-Themen 17
S Objekte indiziert erstellen Java Basics - Anfänger-Themen 27
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10
M Objekte mittels equals vergleichen Java Basics - Anfänger-Themen 14
C Fernseher-Aufgabe (Methoden, Klassen und Objekte) Java Basics - Anfänger-Themen 63
N Typebound Objekte einer Arraylist hinzufügen Java Basics - Anfänger-Themen 7
A (Objekte Java Basics - Anfänger-Themen 6
Y Klassen Klassen und Objekte Java Basics - Anfänger-Themen 3
Y Klassen Klassen und Objekte mit set und get Java Basics - Anfänger-Themen 0
U Objekte in einer LinkedList sortieren Java Basics - Anfänger-Themen 5
N Methode um Objekte einer Liste hinzuzufügen Java Basics - Anfänger-Themen 1
G Java Objekte auf Duplikate testen Java Basics - Anfänger-Themen 4
B Neue Liste erstellen, wenn Objekte bestimmte Referenz hat / Gruppierung von Einträgen Java Basics - Anfänger-Themen 12
M Implementieren einer Datenstruktur, welche nur 5 Objekte speichert Java Basics - Anfänger-Themen 3
M Objekte miteinander vergleichen Java Basics - Anfänger-Themen 18
C Verschiedene Objekte in einer Liste speichern Java Basics - Anfänger-Themen 6
J Java GUI- Objekte Position per Quelltext bestimmen Java Basics - Anfänger-Themen 4
G Objekte in Methoden? Java Basics - Anfänger-Themen 13
H Auf Objekte bzw Variabeln aus einer anderen Methode zugreifen Java Basics - Anfänger-Themen 7
S Frage Klasse und Objekte Java Basics - Anfänger-Themen 2
K Boolean in einer Methode um 2 Objekte zu vergleichen Java Basics - Anfänger-Themen 12
I Objekte Hilfe Java Basics - Anfänger-Themen 8
G Klassen und Objekte Java Basics - Anfänger-Themen 2
W Verschachtelte Objekte wieder auspacken Java Basics - Anfänger-Themen 3
R Attribute mehrerer Objekte ausgeben Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben