Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich wollte ein paar Objekte serialisieren, aber ich habe mit dem Objekt Kunde1 eine kleines Problem. Sobald ich es in schreibeObjekte() aufrufen will, funzt es nit. Ich dachte Objekte wären überall erreichbar? Gilt den hier auch das Variablenprinzip, dass man Variable außerhalb der geschweiften Klammer deklarieren muss um auf sie innerhalb von anderen Operation zuzugreifen? Wie kann ich denn hier nun vorgehen? Ich möchte auf jeden Fall Kunde1 serialisieren und dies auch nur im Konstruktor.
P.S. Stört euch bitte nicht an der Code. Ist nur eine Betaversion
ich glaub du hast nich so richtig verstanden wie oop und serialisierung funktinoiert :-/
du deklarierst deinen kunden als lokale variable, das heißt er ist nur in der main() sichbar. die anderen methoden wissen davon gar nix.
außerdem würde ich die main methode nicht in die objektklasse schrieben.
mache so:
SerKunde kunde = blablabla;
kunde.schreibeObjekt();
aus dem konstruktor von SerKunde hau das schriebeObjekt() raus.
dann versuchst du in schreibeObjekt() Kunde1 zu serialisieren. das geht nich da er den kunden nicht kennt, wie oben gesagt. au0erdem wäre das sinnlos, schreibe doch einfach: writeObject(this) dann serialisiert er dir das objekt.
dann versuchst du nich die beiden aufträge zu serialisieren. wenn du ein objekt serialisierst werden alle felder die nicht mit nem transient versehen sind mit serialisiert (sonst würde es ja wohl sehr wenig bringen).
dann würde ich noch deine File streams als transient deklarieren, damit sie nicht mitserialisiert werden. das is ja eigentlich unnötig
Vielen Dank liebe Leute! Man sieht, wir habe hier echte Profis. Also die Grundkenntniss von Java bzw. OOP sind mir schon bekannt, aber als Anfänger macht man es sich halt sehr schwer triviale Tatsachen zu verstehen. Mir war natürlich bekannt, dass wenn eine Variable lokal deklariert ist, nicht gleich überall genutzt werden kann, aber ich habe mit dieser Idee nicht auf Objekte geschlussfolgert, wobei es eigentlich logisch sein sollte. Danke für die Tipps
Roar! Ich werde diese in mein Programm implementieren
Warum unterscheidest du zwischen Variable und Objekt??
Code:
int x;
Erzeugt eine Variable des types int mit dem Namen x...
und...
Code:
SerKunde sk;
Eine Variable des Types SerKunde mit dem Namen sk. Das macht es einfacher...
denn:
alles was für int-werte gilt(Gültigkeit u.s.w.) gilt auch für Objektvariablen. Nur haben letztere noch Funktionen und Eigenschaften, was man eigentlich für so sachen wie die Gültigkeit vergessen kann...
Stell dir die Grundtypen als Objekte ohne Membervariablen und Funktionen vor...es hilft...(und klappt nur ganz selten nicht: int c=x+y, aber da muss man dran denken...)