Hàm khởi tạo là gì

Trong bài viết này chúng ta sẽ tìm hiểu về hàm khởi tạo [constructor] và hàm hủy [destructor] trong lập trình hướng đối tượng.

Hàm khởi tạo [constructor] và hàm hủy [destructor]

1. Hàm khởi tạo [constructor]

Một constructor cho phép bạn khởi tạo các thuộc tính của đối tượng khi tạo đối tượng.
Nếu bạn tạo một function __construct[], PHP sẽ tự động gọi function này khi bạn tạo một object từ một class.
Lưu ý hàm construct thì được bắt đầu với 2 dấu gạch dưới.

Chúng ta xem ví dụ bên dưới, chúng ta có thể sử dụng hàm khởi tạo để khởi tạo giá trị cho các thuộc tính, do đó làm giảm số lượng dòng code mà ta phải viết:

Lưu ý, nếu một class A kế thừa từ class B, nếu không định nghĩa hàm khởi tạo nó sẽ lấy hàm khởi tạo của class cha [class B]. Và để gọi hàm khởi tạo của class cha, ta sử dụng parent::__construct[].

2. Hàm hủy [destructor]

Một hàm hủy được gọi khi đối tượng bị hủy hoặc tập lệnh bị dừng hoặc thoát. Nếu bạn tạo một hàm __destruct[], PHP sẽ tự động gọi hàm này ở cuối tập lệnh.
Lưu ý, function __destruct[] được bắt đầu với 2 dấu gạch chân.

Ví dụ bên dưới có một hàm __construct[] được tự động gọi khi bạn tạo một đối tượng từ một class và một hàm __destruct [] được gọi tự động ở cuối tập lệnh.

Cũng giống như hàm khởi tạo, Nếu một class B kế thừa từ class A, nếu class B không khai báo hàm hủy thì nó sẽ được kế thừa hàm hủy của class A. Trường hợp để gọi hàm hủy của class cha, chúng ta sử dụng parent::__destruct[].

3. Kết luận

Trong bài viết này chúng ta đã tìm hiểu về hàm khởi tạo và hàm hủy trong OOP. Rất đơn giản đúng không nào. Nếu có thắc mắc gì về bài viết, hãy để lại bình luận ngay bên dưới nhé.
Xem thêm:
– Lập trình hướng đối tượng là gì?
– 4 tính chất lập trình hướng đối tượng.
– class và object trong lập trình hướng đối tượng.

Bài viết tham khảo: //www.w3schools.com/php/php_oop_constructor.asp

Chúng ta đã được biết về lớp, đối tượng và các cách xác định hàm ở bài trước. Trong bài này mình sẽ tìm hiểu về hàm khởi tạo và hàm hủy trong C++ là gì và khác gì so với các hàm thông thường nhé.

Bài viết sẽ sử dụng C++ là ngôn ngữ chính để giải thích và code minh họa cho OOP nên chúng ta cần hiểu rõ một đặc tính của C++ trong lập trình hướng đối tượng.

1. Hàm khởi tạo [Constructor]:

Hàm khởi tạo [constructor] là một phương thức đặc biệt được gọi tự động tại thời điểm đối tượng được tạo. Mục đích của hàm khởi tạo là để khởi tạo các thành viên dữ liệu của đối tượng.

Một hàm khởi tạo sẽ khác những hàm thông thường ở những điểm sau:

  • Có tên trùng với tên lớp
  • Không có kiểu dữ liệu trả về [ kể cả kiểu void]
  • Tự động được gọi khi một đối tượng thuộc lớp được tạo ra
  • Nếu chúng ta không khai báo một hàm khởi tạo, trình biên dịch C++ sẽ tự động tạo một hàm khởi tạo mặc định cho chúng ta [sẽ là hàm ​​không có tham số nào và có phần thân trống].

Ví dụ ta có lớp Mayvitinh có 2 thuộc tính là chieudai và mausac, thì hàm khởi tạo có thể định nghĩa cho lớp Mayvitinh như sau:

class Mayvitinh{ int chieudai; string mausac; public: Mayvitinh[]; // Đây là hàm khởi tạo Mayvitinh[int cd] { chieudai = cd; } Mayvitinh[string ms] { // Đây là hàm khởi tạo mausac = ms; } Mayvitinh[int cd, string ms] { // Đây là hàm khởi tạo chieudai = cd; mausac = ms; } };

Hàm khởi tạo về cơ bản sẽ được chia làm 3 loại:

  1. Hàm khởi tạo không tham số [Cũng có thể gọi là hàm tạo mặc định – Default Constructor]
  2. Hàm khởi tạo có tham số [Parameterized Constructor]
  3. Hàm khởi tạo sao chép [Copy Constructor]

1.1. Hàm khởi tạo không tham số [Default Constructor]:

Mình lấy một ví dụ:

#include using namespace std; class Mayvitinh { public: Mayvitinh[] { cout

Chủ Đề