Instanz unerreichbar machen

Status
Nicht offen für weitere Antworten.
S

Seyan

Gast
Hellas,

ich habe derzeit eine programmiertechnische Aufgabe, bei der wir eine Klasse für private Konten erstellen sollen. Soweit, so gut klappt alles wunderbar, aber es soll innerhalb der Klasse eine Methode "DeleteAccount()" geben, die die jeweilige Instanz unerreichbar macht (und zwar nur so!). Wie soll ich das anstellen? Immerhin gibt es keine Destruktoren in Java, ein "this = null" klappt sicher nicht, und ein "Instanz = null" ist ja laut Aufgabenstellung auch nicht erlaubt.
Kann mir da vielleicht jemand weiterhelfen?

Thx
Seyan ???:L
 
G

Guest

Gast
L-ectron-X hat gesagt.:
Möglicherweise ist ein Singleton gemeint. Guck mal in die FAQ bei Design Patterns.

Nein, das nicht... man soll schon mehrere Instanzen erstellen können...

@thE_29: Wie soll das bitte funktionieren? "this = new OT();"? Geht doch gar nicht...
 

Sky

Top Contributor
Seyan hat gesagt.:
es soll innerhalb der Klasse eine Methode "DeleteAccount()" geben, die die jeweilige Instanz unerreichbar macht (und zwar nur so!).
Was heißt denn "unerreichbar macht" ? Eine Lösung wäre z.B. einen bool'schen Wert umzusetzen und bei jedem Zugriff darauf abprüfen... oder alle Membervariabeln auf 'null' setzen...


Seyan hat gesagt.:
aber es soll innerhalb der Klasse eine Methode "DeleteAccount()" geben
innerhalb welcher Klasse? Die für die private Konten ? M.E. ist das völliger Quatsch....
 
B

bygones

Gast
innerhalb der Kontoklasse ein deleteAccount()... mhm - wenn dann alle variablen auf null setzen..

es gibt doch bestimmt eine ManagerKlasse (also z.b. Bank), die Konten verwaltet, nur die sollte auch die möglichkeit haben konten zu löschen. Und da werden die Konten dann ja in einem Array oder in einer Collection gespeichert.....
 

Bleiglanz

Gesperrter Benutzer
du kannst die Instanz nicht "unerreichbar" machen, das einzige wäre

membervariable is_deleted als boolean

die deleteAccount setzt diese auf true

bei JEDEM Methodenaufruf kommt ein

if(this.is_deleted) throw IllegalStateException

oder sowas.

=> du hast keine Möglichkeit, existierende Referenzen auf ein Objekt zu "löschen" oder die Instanz "unerreichbar" zu machen, wenn irgendwo

X x = new X();

gemacht wurde, dann kannst du mit obiger Methode nur verhindern, dass weiterhin damit "gearbeitet" wird
 

Ilja

Bekanntes Mitglied
wenn du alle referenzen in der Bank-klasse (oder wo auch immer die konten verwaltet werden) auf das konto löschst, dann ist das konto nicht mehr erreichbar:

konto = null;

oder falls es ein vector ist, der die konten enthällt, einfach aus dem vector entfernen, dann gibts keine referenz mehr drauf => nicht erreichbar
 
S

Seyan

Gast
Habs jetzt mit der boolschen Membervariable gemacht. Das "konto = null" sollen wir ja explizit NICHT verwenden :(
@Sky: Niemand sagt, dass die Aufgabenstellung sinnvoll ist ;)
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben