Mục lục:
Hàm khởi tạo cũng là một hàm bình thường nhưng có điểm đặc biệt là nó luôn luôn được gọi tới khi ta khởi tạo một đối tượng. Hàm khởi tạo có thẻ có tham số hoặc không có tham số, có thể có giá trị trả về hoặc không. Ở một hàm bình thường khác bạn cũng có thể gọi lại hàm khởi tạo được và hàm khởi tạo cũng có thể gọi một hàm bình thường khác.
Trong PHP có hai cách khai báo tên hàm khởi tạo. Cách thứ nhất là khai báo tên trùng với tên lớp:
|
Cách thứ hai là khai báo với tên __construct
.
|
Kết quả của cả hai đoạn code trên sẽ xuất ra màn hình dòng chữ “Lớp sinh viên được khởi tạo” vì khi khởi tạo đối tượng SinhVien thì hàm khởi tạo __construct()
và SinhVien()
sẽ được tự động gọi.
Hàm khởi tạo cũng có thể có các tham số truyền vào, lúc này khi khởi tạo đối tượng thì ta sẽ truyền các tham số đó vào trong lớp.
|
Khi lớp con kế thừa từ lớp cha thì khi ta tạo một đối tượng thuộc lớp con thì sẽ xảy ra một trong các trường hợp sau đây:
Trường hợp 1: Nếu lớp Con có hàm khởi tạo và lớp cha cũng có hàm khởi tạo
Trường hợp này hàm khởi tạo của lớp con sẽ được chạy, còn hàm khởi tạo ở lớp cha không được chạy.
Ví dụ:
|
Kết quả xuất ra màn hình là “Lớp B được khởi tạo”.
Trường hợp 2: Nếu lớp con không có hàm khởi tạo, lớp Cha có hàm khởi tạo
Trường hợp này hàm khởi tạo ở lớp cha sẽ được chạy.
Ví dụ:
|
Kết quả xuất ra màn hình là “Lớp A được khởi tạo”
Trường hợp 3: Lớp Con có hàm khởi tạo, lớp cha không có hàm khởi tạo
Trường hợp này hàm khởi tạo lớp con sẽ được chạy.
Ví dụ:
|
Kết quả xuất ra màn hình là “Lớp B được khởi tạo”
Trường hợp 4: Cả 2 lớp chà và lớp con đều không có hàm khởi tạo
Trường hợp này đương nhiên là sẽ không có hàm nào được chạy
Ví dụ:
|
Hàm hủy là hàm tự động gọi sau khi đối tượng bị hủy, nó thường được sử dụng để giải phóng bộ nhớ chương trình. Trong đối tượng hàm hủy có thể có hoặc không.
Ví dụ:
|
Kết quả hiển thị ra màn hình là:
“Lớp A được khởi tạo
Lớp A đang được sử dụng
Lớp A bị hủy”
Tương tự như hàm khởi tạo trong kế thừa. Nếu lớp Con có hàm hủy thì được ưu tiên chạy, còn nếu lớp Con không có hàm hủy thì sẽ chạy ở lớp Cha, còn nếu cả 2 đều không có thì sẽ không chạy hàm nào.
Về bài trước... |
Bài tiếp theo... |
+ Lê Văn Thuyên-0379136392:Cảm ơn quý vị và các bạn đã vào Website của Lê Thuyên! Lê thuyên rất mong nhận được sự góp ý của quý vị và các bạn cho sự phát triển của website này. Xin chân thành cảm ơn!
* Dũng Trung-090567448:Lê Văn Thuyên0379136392--->Ok.Anh!
* Bé Nguyễn-benguyen@gmail,com:Lê Văn Thuyên0379136392--->Good job!
+ -:
+ -: