Objek Serialisasi – JAVA

  • Kita dapat menyimpan sebuah keadaan Objek dengan Menserialisasi Objek tersebut.
  • Untuk Menserialisasi sebuah Objek, kita butuh sebuah ObjectOutputStream (dari java.io)
  • Streams (Bahasa indonesianya : aliran) terbagi menjadi 2, yaitu Aliran Koneksi (Connection Streams) atau Aliran Berantai (Chain Streams).
  • Connection Streams dapat digambarkan sebagai sebuah Koneksi ke sebuah sumber atau tujuan, khususnya sebuah file, koneksi jaringan soket, atau konsol.
  • Chain Streams Tidak dapat menghubungkan ke sebuah sumber atau tujuan dan harus di dirantai ke sebuah aliran koneksi (atau lainnya).
  • Untuk menserialisasikan sebuah Objek ke file, buat sebuah FileOutputStream dan rantaikan ia ke sebuah ObjectOutputStream.
  • Untuk menserialisasikan sebuah Objek, panggil writeObject(objek) pada ObjectOutputStream. Kita tidak butuh memanggil method pada FileOutpurStream.
  • Untuk menserialisasi, sebuah objek harus impelementasikan Interface Serializable. Jika sebuah superclass meng-implementasikan Serializable, subclass akan secara otomatis di Serialisasikan bahkan jika tidak diberikan implementasi Serializable.
  • Ketika sebuah Objek diserialisasikan, Seluruh Grafik Objek akan diserialisasi. Yang berarti objek referensi dari instans variable objek yang diserialisasi manapun akan diserialisasikan.
  • Jika beberapa objek di grafik tidak diserialisasi, sebuah exception (pengecualian) akan dijalankan pada saat program dieksekusi, kecuali instance variable yang mengacu ke objek dilewati.
  • Tanda sebuah Instance Variable dengan kata kunci transient jika kita ingin proses serialisasi melewati / mengabaikan instance variable tsb. Variable akan diberikan niali null (untuk objek referensi) atau nilai default (untuk primitive).
  • Selama Deserialisasi, class dari semua Objek-Objek di grafik Harus tersedia di JVM (Java Virtual Machine).
  • Kita membaca objek di (menggunakan readObject() ) di dalam urutan ketika objek-objek tsb ditulis / dimasukkan ke JVM.
  • Tipe kembalian (return) dari readObject() adalah tipe Objek, jadi Objek-objek deserialisasi harus melemparkannya ke tipe sebenarnya (int, string atau primitive lainnya).
  • Variabel Static TIDAK DISERIALISASI! Tidak masuk akal untuk menyimpan sebuah nilai static variable dari keadaan objek yang spesifik, karena semua objek-objek yang diketik hanya membagi sebuah nilai tunggal.

RANGKUMAN TENTANG Layout Manager, Swing Component, GUI, BorderLayout, BoxLayout, FlowLayout — JAVA

  • Layout Manager mengendalikan ukuran dan lokasi komponen-komponen yang berada di dalam komponen lainnya.
  • Ketika kita menambahkan sebuah komponen ke komponen lainnya (kadang disebut sebagai komponen background, tapi itu bukanlah perbedaan teknis), Komponen yang ditambahkan dikendalikan oleh layout manager dari komponen Background.
  • Sebuah Layout Manager meminta komponen-komponen untuk mengajukan ukurannya, sebelum membuat keputusan tentang layout. Tergantung pada kebijakan layout manager, mungkin saja diberlakukan ke semua, beberapa, atau (bahkan) tidak ada dari komponen tersebut.
  • BorderLayout manager membiarkan kita menambahkan sebuah komponen ke salah satu dari lima wilayah. Kita harus menspesifikasikan wilayahnya ketika kita menambahkan sebuah komponen, menggunakan sintax berikut ; add(BorderLayout.EAST,panel);
  • Dengan BorderLayout, komponen di Utara dan Selatan mendapatkan ukuran tinggi yang diajukan, tapi tidak pada lebarnya. Komponen di TImur dan Barat mendapatkan ukuran lebar yang diajukan, tapi tidak pada ukuran tingginya. Komponen di Center (Tengah) memperoleh apa saja yang tersisa (Kecuali kita menggunakan method pack( ) ).
  • Method Pack ( ) adalah seperti menyusut-bungkus komponen-komponen; ia menggunakan ukuran penuh yang diajukan komponen center (Tengah), kemudian menentukan ukuran frame menggunakan center (Titik tengah) sebagai titik awal,mengguakan sisa dari space (tempat yang belum diisi) berdasarkan pada apa yang berada di dalam wilayah lainnya.
  • FlowLayput menempatkan komponen dari kiri ke kanan, atas ke bawah, sesuai urutan saat mereka ditambahkan (add ( ) ) , berpindah ke sebuah baris baru komponen hanya ketika komponen tidak lagi muat secara horizontal.
  • FlowLayout memberikan komponen-komponen ukuran yang mereka ajukan pada lebar dan tingginya.
  • BoxLayout membiarkan kita meluruskan komponen-komponen yang bertumpuk secara vertical, bahkan jika mereka dapat muat saling menyamping. Seperi FlowLayout, BoxLayout menggunakan ukuran (tinggi dan lebar) yang diajukan oleh komponen.
  • Border Layout adalah default layout manager untuk Frame; FlowLayout adalah default untuk Panel.
  • Jika kita ingin sebuah Panel menggunakan sesuatu yang dari FlowLayout, Kita harus memanggil                setLayout( ) pada Panel.