Komposisi dan agregasi
Kelas dan objek dapat dihubungkan satu sama lain. Warisan menjelaskan hubungan "IS A". Seekor singa ADALAH binatang. Hubungan ini dengan mudah diekspresikan menggunakan warisan, di mana
Animal
akan menjadi kelas induk dan
Lion
akan menjadi anak. Tetapi tidak setiap hubungan di dunia digambarkan dengan tepat seperti ini. Misalnya, keyboard pasti memiliki hubungan dengan komputer, tetapi
itu bukan komputer . Tangan memiliki hubungan tertentu dengan seseorang, tetapi mereka bukanlah manusia. Kasus-kasus ini mewakili jenis hubungan yang berbeda — bukan "IS A", tetapi "HAS A". Tangan bukanlah seseorang, tetapi seseorang MEMILIKI tangan. Keyboard bukanlah komputer, tetapi komputer MEMILIKI keyboard. "MEMPUNYAI SEBUAH"
. Perbedaan antara konsep-konsep ini terletak pada "keketatan" hubungan. Mari kita ambil contoh sederhana: Kami memiliki file
Car
. Setiap mobil memiliki mesin. Selain itu, setiap mobil dapat mengangkut penumpang. Apa perbedaan mendasar antara bidang
Engine engine
dan
Passenger[] passengers
? Jika penumpang
A
duduk di dalam mobil, bukan berarti penumpang
B
dan
C
juga tidak boleh berada di dalam mobil. Satu mobil bisa menampung banyak penumpang. Apalagi, semua penumpang boleh keluar dari mobil, namun tetap berfungsi dengan lancar. Hubungan antara
Car
kelas dan
Passenger[] passengers
array kurang ketat. Ini disebut
agregasi . Inilah artikel bagus tentang topik ini:
Hubungan antar kelas (objek). Ini memberikan contoh agregasi yang bagus. Katakanlah kita memiliki sebuah
Student
kelas yang mewakili seorang siswa, dan sebuah kelas
StudentGroup
yang mewakili sekelompok siswa. Seorang siswa dapat menjadi anggota klub fisika, klub penggemar siswa Star Wars, atau klub komedi.
Komposisi adalah jenis hubungan yang lebih ketat. Saat menggunakan komposisi, sebuah objek memiliki objek lain, tetapi tidak dapat menjadi milik objek lain dengan jenis yang sama. Contoh paling sederhana adalah mesin mobil. Jika sebuah mobil memiliki mesin, maka mesin tersebut tidak dapat menjadi milik mobil lain. Seperti yang Anda lihat, hubungan itu jauh lebih ketat daripada
Car
dan
Passengers
.
![Hubungan antar kelas. Warisan, komposisi dan agregasi - 4]()
GO TO FULL VERSION