PO Serializacja - ćwiczenia: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Jsroka (dyskusja | edycje)
Jsroka (dyskusja | edycje)
Linia 1: Linia 1:
== Zadanie 1 ==
== Zadanie 1 ==
Rozszerz klasę Osoba, aby posiadała dwa adresy – adres zameldowania i adres zamieszkania. W klasie SerializacjTest ustaw Zygmuntowi Kotkowi oba rodzaje adresów na ''alternatywy4''. Sprawdź, że po deserializacji oba adresy są nadal jednym obiektem.
Rozszerz klasę Osoba, aby posiadała dwa adresy – adres zameldowania i adres zamieszkania. W klasie ''SerializacjTest'' ustaw Zygmuntowi Kotkowi oba rodzaje adresów na ''alternatywy4''. Sprawdź, że po deserializacji oba adresy są nadal jednym obiektem.


{{rozwiazanie| ||<div class="mw-collapsible mw-made=collapsible mw-collapsed"><div class="mw-collapsible-content" style="display:none">
{{rozwiazanie| ||<div class="mw-collapsible mw-made=collapsible mw-collapsed"><div class="mw-collapsible-content" style="display:none">

Wersja z 22:19, 11 wrz 2006

Zadanie 1

Rozszerz klasę Osoba, aby posiadała dwa adresy – adres zameldowania i adres zamieszkania. W klasie SerializacjTest ustaw Zygmuntowi Kotkowi oba rodzaje adresów na alternatywy4. Sprawdź, że po deserializacji oba adresy są nadal jednym obiektem.

Rozwiązanie

{{{3}}}

Zadanie 2

Używając podanej poniżej klasy ElementListy przygotuj trzyelementowy cykl i zserializuj go do pliku, a następnie zdeserializuj. Sprawdź, czy rzeczywiście jeżeli przed serializacją jakiś obiekt był przypisany na kilka różnych referencji, po deserializacji nadal będzie na te referencje przypisany jeden obiekt.

class ElementListy implements Serializable {
  String wartość;
  ElementListy następny, poprzedni;
  
  ElementListy(String wartość) {
    this.wartość = wartość;
    System.out.println("wywołanie konstruktora klasy ElementListy");
  }
  
  protected String memAddress() {
    String adrPamięć = super.toString();
    return adrPamięć.substring(adrPamięć.indexOf('@'));
  }
  
  public String toString() {
    String adrPamięć = super.toString();
    return adrPamięć+"(" + wartość + ", " +
                           następny.memAddress() + ", " +
                           poprzedni.memAddress() + ")";
  }

  public ElementListy getNastępny() {
    return następny;
  }

  public ElementListy getPoprzedni() {
    return poprzedni;
  }

  public void setPoprzedni(ElementListy poprzedni) {
    this.poprzedni = poprzedni;
  }
  
  public void setNastępny(ElementListy następny) {
    this.następny = następny;
  }
}

Rozwiązanie

{{{3}}}