Video: PBO - Hubungan Antar Kelas 2024
Merupakan hal yang wajar untuk mengklasifikasikan objek dalam kategori dan mengatur kategori menjadi subkategori. Jika Anda mencari tempat tinggal, Anda bisa mengkategorikan unit hunian seperti rumah, apartemen, townhouse, kondominium, mansion, dan sebagainya. Rumah dapat, pada gilirannya, diatur lebih lanjut dengan gaya seperti peternakan, split level, kolonial, dan kotak garam. UML memberi Anda notasi untuk menangkap jenis klasifikasi ini - juga dikenal sebagai generalisasi dan spesialisasi - dan memanfaatkannya sebagai pemodel dan pemrogram.
. Kelas yang berbagi fitur umum dikenal sebagai subclass dari superclass. Misalnya, panjang rekaman materi pada rekaman video, rekaman suara, compact disc, atau film film adalah atribut dari keempat jenis media yang direkam. Kelas-kelas ini juga bisa berbagi atribut lain, seperti dimensi fisik dan tanggal masing-masing digunakan untuk membuat rekaman. Dalam hal ini superclass akan di RecordedMedia, subkelasnya adalah Videocom, Audiotape, CompactDisc, dan MovieFilm, dan beberapa atribut bersama dapat mencakup rekamanLength dan totalLength.
. Misalnya Anda menggeneralisasi record record menjadi kelas yang lebih umum disebut RecordedMedia. Proses untuk menunjukkan generalisasi di UML sederhana: 1. Identifikasi subclass.
Cari kelas yang memiliki atribut dan / atau operasi yang sama. Kelas-kelas ini adalah subclass Anda.
2. Buat superclass.
Berikan superclass untuk menampung atribut dan / atau operasi umum dari subclass. Berikan superclass nama yang mengkategorikan semua subclass. Menempatkan superclass di atas subclass dalam diagram memudahkan membaca tapi tidak diperlukan.)
3. Tambahkan fitur umum ke superclass.
Hapus atribut umum dan operasi dari subclass dan tempatkan mereka (sekali) di superclass.
4. Buatlah hubungan generalisasi.
Anda menggambar garis generalisasi dari masing-masing subclass ke superclass. Di UML, garis generalisasi diwakili sebagai garis padat dengan kepala panah berongga di ujung superclass. Di UML, sebuah garis dengan panah berongga yang menghubungkan subkelas ke superclass dikenal sebagai hubungan generalisasi.
Setelah Anda membuat superclass dengan fitur umum seperti atribut dan operasi, subclass
mewarisi fitur dari superclass. Dengan cara ini Anda hanya perlu menulis fitur umum sekali di superclass dan bukan berkali-kali di masing-masing subclass. Anda dapat mengetahui apakah Anda memiliki generalisasi dengan melihat bahasa yang Anda gunakan (atau yang lain) untuk menggambarkan hubungan antar kelas. Perhatikan bahwa dalam menggambarkan media rekaman dan berbagai jenisnya seperti rekaman video di awal bagian ini, ungkapan "empat jenis media rekaman" muncul. Jika Anda menemukan diri Anda menggunakan ungkapan-ungkapan seperti "jenis" atau "jenis," maka kemungkinan Anda memiliki generalisasi di tangan Anda.
Katakan bahwa salah satu klien Anda terkait dengan mencatat materi dalam arsip. Klien ini telah mengumpulkan
jenis media rekaman yang berbeda seperti kaset video dan kaset video. Sebagai pemodel, Anda perlu menangkap perbedaan antara media ini dan juga kesamaannya. Diagram pada Gambar 1 menunjukkan permulaan beberapa generalisasi, yang disusun dalam hierarki warisan . Gambar 1:
hirarki pewarisan sederhana. Pengembang menggunakan istilah generalisasi atau pewarisan untuk merujuk pada konsep yang sama untuk menggunakan kembali atribut dan operasi bersama yang Anda tampilkan dalam superclass dan digunakan kembali dalam subclass. Generalisasi mengacu pada konsep generalisasi dari spesifik (subclass) ke generik (superclass). Warisan mengacu pada efek generalisasi pada subclass.
Bila Anda melihat hubungan
generalisasi di antara kelas, maknanya sangat berbeda dengan hubungan asosiasi antara kelas. Sebuah asosiasi pada akhirnya merupakan hubungan antara banyak objek - beberapa contoh dari satu kelas memiliki hubungan (link) dengan contoh kelas lainnya. Dalam hubungan generalisasi antara kelas , hubungan itu benar-benar tentang kelas. Yang terbaik yang dapat Anda katakan adalah bahwa objek yang dibuat dari subkelas berisi semua fitur subkelas dan superclass. Anda hanya memiliki satu objek dari kelas dalam hubungan generalisasi. Meskipun Anda menunjukkan dua kelas, subkelas dan superclass, Anda hanya memiliki satu objek yang akan dibuat. Anda bisa memikirkan objek dari kelas Video tape juga menjadi objek kelas RecordedMedia karena warisan. Gambar 2 menunjukkan objek yang dibuat dari kelas VideoFideotape dengan semua atributnya.(Contoh kelas diwakili sebagai simbol objek.) Anda tidak memiliki dua objek yang berbeda (satu untuk RecordedMedia dan satu untuk Rekaman Video), hanya satu objek. Ketika objek vtu83-1023 diciptakan, semua nilai atributnya ditetapkan. Rekaman pada rekaman itu adalah 57 menit. Panjang total pita fisik adalah 60 menit. Rekaman itu adalah kaset video Umatic dengan tinggi 10 inci, lebar 7 inci, dan kedalaman 1. 5 inci. Rekaman itu analog, dan sebuah catatan isi tape dilekatkan pada kaset arsip arsip tersebut. Gambar 2:
Contoh yang menunjukkan semua atribut yang diwariskan.
Anda hanya memiliki satu contoh yang didefinisikan oleh subkelas dan superclassnya. Subclass dan superclass mungkin memiliki operasi konstruktor (untuk menciptakan instance) dan operasi destruktor (untuk menghancurkan instance). Ketika perangkat lunak Anda berjalan, dan Anda membuat sebuah instance dari subkelas, konstruktor superclass dijalankan terlebih dahulu, diikuti oleh konstruktor subkelas. Ketika tiba saatnya untuk menghilangkan instance yang Anda buat, destructor dari subclass disebut pertama, diikuti oleh destructor superclass. Jika semuanya lebih kompleks karena Anda memiliki subclass dari subclass, ingat saja: Konstruktor dipanggil dari atas hirarki warisan ke bawah; destruktor disebut dalam urutan dari subkelas terendah hingga superclass tertinggi.