Tập hợp là một liên kết giữa hai đối tượng mô tả mối quan hệ có-có một mối quan hệ. Thành phần là loại tổng hợp cụ thể hơn bao hàm quyền sở hữu. Các sự khác biệt chính giữa tập hợp và thành phần trong Java là, nếu đối tượng được chứa có thể tồn tại mà không có sự tồn tại của đối tượng sở hữu thì đó là một tập hợp và nếu đối tượng được chứa không thể tồn tại mà không có sự tồn tại của đối tượng sở hữu thì đó là một thành phần.
Lập trình hướng đối tượng (OOP) là một mô hình chính trong phát triển phần mềm. Nó được sử dụng để mô hình hóa phần mềm bằng cách sử dụng các đối tượng. Các đối tượng được tạo bằng các lớp. Một lớp bao gồm các thuộc tính và phương thức. Có nhiều đối tượng trong phần mềm. Mỗi đối tượng hợp tác với nhau thông qua tin nhắn đi qua. Mối quan hệ giữa hai đối tượng được gọi là một hiệp hội. Cả hai tập hợp và thành phần là hai loại kết hợp. Mối quan hệ có một mối quan hệ của người mô tả rằng một đối tượng có thể sử dụng một đối tượng khác. Tập hợp và thành phần có thể được thực hiện trong các ngôn ngữ hỗ trợ OOP. Nếu đối tượng chứa có thể tồn tại mà không có sự tồn tại của đối tượng sở hữu, thì sự liên kết giữa hai đối tượng đó là một tập hợp. Nếu đối tượng chứa không thể tồn tại mà không có sự tồn tại của đối tượng sở hữu, thì liên kết giữa hai đối tượng đó là một thành phần.
1. Tổng quan và sự khác biệt chính
2. Tập hợp trong Java là gì
3. Thành phần trong Java là gì
4. Điểm tương đồng giữa tập hợp và thành phần trong Java
5. So sánh cạnh nhau - Tổng hợp so với thành phần trong Java ở dạng bảng
6. Tóm tắt
Tập hợp là một loại hiệp hội. Nếu một lớp có một tham chiếu thực thể, nó được gọi là tổng hợp. Tập hợp đại diện cho mối quan hệ has-a. Một đối tượng Sinh viên có thể có các thuộc tính như student_id, tên, địa chỉ. Đối tượng này cũng có thể có một đối tượng khác gọi là địa chỉ với thông tin riêng như thành phố, tiểu bang, quốc gia. Trong tình huống này, Học sinh có một địa chỉ tham chiếu thực thể. Đó là một mối quan hệ của người Viking.
Hình 01: Lớp Marks
Hình 02: Chương trình chính để mô tả tập hợp
Theo chương trình trên, các lớp Marks bao gồm ba thuộc tính là điểm Toán, tiếng Anh và Khoa học. Học sinh có một đối tượng của Marks. Nó có các thuộc tính riêng của nó là các dấu hiệu của toán học, tiếng Anh và khoa học. Trong phương thức chính, một đối tượng của Marks được tạo và các giá trị mark được gán. Đối tượng học sinh là s1 có thể sử dụng đối tượng đánh dấu là m1. Do đó, Học sinh và Nhãn hiệu có mối quan hệ có một mối quan hệ. Đối tượng Marks có thể tồn tại mà không cần Đối tượng sinh viên. Do đó, nó là một tập hợp.
Thành phần là một loại hiệp hội. Nó là một hình thức tổng hợp cụ thể ngụ ý quyền sở hữu. Giả sử rằng có hai lớp được gọi là lớp A và B. Nếu đối tượng của lớp B không thể tồn tại nếu đối tượng của lớp A bị phá hủy, thì đó là một thành phần. Một cuốn sách bao gồm nhiều trang. Nếu cuốn sách bị phá hủy, các trang cũng sẽ bị phá hủy. Các đối tượng trang không thể tồn tại mà không có đối tượng sách. Tham khảo chương trình dưới đây.
Hình 03: Lớp học
Hình 04: Lớp học
Hình 05: Chương trình chính để mô tả Thành phần
Theo chương trình trên, Lớp học có hai thuộc tính là tên và numOfStudents. Trường là một bộ sưu tập các đối tượng Lớp học. Trong phương thức chính, hai đối tượng Lớp học được tạo. Những người được thêm vào 'lớp học'. Những "phòng học" này được chuyển cho đối tượng của trường. Cuối cùng, tên lớp học và số học sinh được in bằng cách lặp qua bộ sưu tập. Nếu đối tượng Trường bị phá hủy, các đối tượng Lớp học cũng sẽ phá hủy. Đây là một ví dụ về thành phần. Nó cũng chứa mối quan hệ 'có-a' và cũng ngụ ý quyền sở hữu.
Tổng hợp so với thành phần trong Java | |
Tập hợp là sự kết hợp giữa hai đối tượng mô tả mối quan hệ của người có mối quan hệ. | Thành phần là một loại tổng hợp cụ thể hơn bao hàm quyền sở hữu. |
Sử dụng | |
Tập hợp được sử dụng khi một đối tượng sử dụng một đối tượng khác. | Thành phần được sử dụng khi một đối tượng sở hữu một đối tượng khác. |
Ảnh hưởng đến các đối tượng | |
Tổng hợp, tiêu diệt đối tượng sở hữu sẽ không ảnh hưởng đến đối tượng chứa. | Trong thành phần, phá hủy đối tượng sở hữu sẽ ảnh hưởng đến đối tượng chứa. |
Tập hợp và Thành phần là hai khái niệm trong OOP. Mối quan hệ có một mối quan hệ của người mô tả rằng một đối tượng có thể sử dụng một đối tượng khác. Tập hợp là một liên kết giữa hai đối tượng mô tả mối quan hệ có-có một mối quan hệ. Thành phần là một loại tổng hợp cụ thể hơn bao hàm quyền sở hữu. Sự khác biệt giữa tập hợp và thành phần trong Java là, nếu đối tượng được chứa có thể tồn tại mà không có sự tồn tại của đối tượng sở hữu thì đó là một tập hợp và nếu đối tượng được chứa không thể tồn tại mà không có sự tồn tại của đối tượng sở hữu, thì đó là một thành phần.
1. Hiệp hội, Thành phần và Tập hợp trong Java. GeekforGeek, 8 tháng 2 năm 2018. Có sẵn tại đây
2. Tập hợp trong Java - Javatpoint. Điểm Java. Có sẵn ở đây