Ngày 1: Tính kết hợp (Composition) trong OOP.
Tính kết hợp xuất hiện khi một lớp tham chiếu đến một lớp khác. Đây là một cách mạnh mẽ để sử dụng năng lực của lớp khác. Một ví dụ điển hình là một lớp “Nhân viên” có thể có một đối tượng “Địa chỉ”.
Ví dụ:
“`java
public class DiaChi{
private String duong;
private String thanhPho;
// Constructor, getter và setter
}
public class NhanVien{
private DiaChi diaChi;
// Constructor, getter và setter
}
“`
Trường hợp đặc biệt: Khi một đối tượng của lớp này bị hủy, các đối tượng thuộc tính cũng sẽ bị hủy theo.
Các câu hỏi phỏng vấn:
1. Tính kết hợp (Composition) là gì trong OOP?
– Tính kết hợp là khi một lớp tham chiếu đến một lớp khác.
2. Tính kết hợp và tính kế thừa (Inheritance) giữa các lớp có gì khác nhau?
– Tính kế thừa cho phép lớp con kế thừa tính chất và phương thức của lớp cha, trong khi tính kết hợp cho phép đặc điểm hoặc chức năng của một lớp có thể được sử dụng hoặc thấm vào trong lớp khác.
3. Khi nào chúng ta nên sử dụng tính kết hợp?
– Chúng ta dùng tính kết hợp khi muốn sử dụng lại code nhưng không muốn tạo ra mối quan hệ lớp con – lớp cha.
4. Liệu có phải tất cả các trường hợp ta đều nên sử dụng tính kết hợp không?
– Không, chúng ta nên phân tích kỹ yêu cầu hệ thống trước khi quyết định sử dụng tính kết hợp. Một số trường hợp chỉ cần sử dụng tính đóng gói (Encapsulation) hay tính kế thừa.
5. Nếu một đối tượng của lớp chứa đối tượng của lớp khác bị hủy thì điều gì sẽ xảy ra với đối tượng con này?
– Đối tượng con sẽ bị hủy theo.