„Szerializalas jegyzet” változatai közötti eltérés
a autoedit v2: fájlhivatkozások egységesítése, az új közvetlenül az adott fájlra mutat |
|||
| (12 közbenső módosítás, amit 2 másik szerkesztő végzett, nincs mutatva) | |||
| 2. sor: | 2. sor: | ||
== Alapok, amiket jó ha tudunk == | == Alapok, amiket jó ha tudunk == | ||
* Alapvetően minden nem statikus és nem tranzies attribútuma egy osztálynak szerializálódik, amely megvalósítja a Serializable interfészt. | * Alapvetően minden nem statikus és nem tranzies attribútuma egy osztálynak szerializálódik, amely megvalósítja a Serializable interfészt. | ||
* A láthatóság nem befolyásolja a szerializálhatóságot, mind a public, protected és private adattagok szerializálódnak. | |||
* Kiíráskor minden objektum egyszer íródok ki "rendesen", azt követően az adott objektum újboli kiírásakor - feltételezve, hogy a streamet nem zárták be - csupán egy referencia kerül kiírásra, amely referál az először kiírt "rendes" objektumra. | |||
* A szerializálhatóság mint tulajdonság, fennmarad az örökléskor is, tehát ha egy osztály sorosítható akkor annak leszármazottai is kimenthetőek lesznek. | * A szerializálhatóság mint tulajdonság, fennmarad az örökléskor is, tehát ha egy osztály sorosítható akkor annak leszármazottai is kimenthetőek lesznek. | ||
*A szerializálás tiltására van lehetőségünk, a wirteObject metódust kell felüldefiniálnunk abban az osztályban, amelyiket nem szeretnénk szerializálni: | *A szerializálás tiltására van lehetőségünk, a wirteObject metódust kell felüldefiniálnunk abban az osztályban, amelyiket nem szeretnénk szerializálni: | ||
| 23. sor: | 25. sor: | ||
***Fontos, hogy ez a korábbiakkal ellentétben nem metódus, hanem egy statikus, nem módosítható tömb az osztályban. | ***Fontos, hogy ez a korábbiakkal ellentétben nem metódus, hanem egy statikus, nem módosítható tömb az osztályban. | ||
***A tömb használatával lehetőségünk van explicit megadni, hogy az osztály mely attribútumai szerializálódjanak. '''Fontos''', hogy csak a tömbben megjelölt tagváltozók mentődnek ki, tehát hiába van az osztálynak több nem statikus és nem tranziens tagváltozója, csak és kizárólag azon attribútumok fognak szerializálódni amelyek ebben a tömbben szerepelnek! | ***A tömb használatával lehetőségünk van explicit megadni, hogy az osztály mely attribútumai szerializálódjanak. '''Fontos''', hogy csak a tömbben megjelölt tagváltozók mentődnek ki, tehát hiába van az osztálynak több nem statikus és nem tranziens tagváltozója, csak és kizárólag azon attribútumok fognak szerializálódni amelyek ebben a tömbben szerepelnek! | ||
*** | ***A lenti példában beállítottuk, hogy a Dog osztály szerializálásakor csak az age és a name attribútumok mentődjenek le, a többi adat ne. '''Fontos, hogy a tranziensnek jelölt attribútumok is szerializálhatók így!''' | ||
public class Dog implements Serializable { | public class Dog implements Serializable { | ||
public String name; | public String name; | ||
| 36. sor: | 38. sor: | ||
... | ... | ||
} | } | ||
== Korábbi vizsgapéldák == | == Korábbi vizsgapéldák == | ||
| 52. sor: | 53. sor: | ||
} | } | ||
} | } | ||
* Eredmény: x = 0, y = 6 | |||
=== OOT - 2015. június 9. === | === OOT - 2015. június 9. === | ||
| 68. sor: | 71. sor: | ||
} | } | ||
} | } | ||
* Eredmény: x=4, y=0 | |||
* [[Media:oot_20150602VizsgaFeladat_20150612.java | Java fájl letöltése]] | |||