Trong
lập trình hướng đối tượng dựa trên lớp,
hàm tạo (tiếng Anh: constructor, viết tắt: ctor) trong một
lớp là một kiểu
chương trình con đặc biệt được dùng để
tạo ra đối tượng. Nó chuẩn bị đối tượng mới để sử dụng, thường chấp nhận các
đối số mà hàm tạo dùng để thiết lập các
biến thành viên bắt buộc.Một hàm tạo có vẻ giống như là
phương thức thực thể, nhưng nó khác phương thức vì nó không có
kiểu trả về rõ ràng, nó không được
kế thừa ngầm và nó thường có các quy tắc khác nhau để chỉ định tầm vực. Hàm tạo thường có tên giống với
lớp được khai báo. Chúng có nhiệm vụ
khởi tạo thành viên dữ liệu của đối tượng và thiết lập
bất biến của lớp, thất bại nếu bất biến không hợp lệ. Một hàm tạo được viết tốt sẽ cho kết quả
đối tượng với trạng thái hợp lệ.
Đối tượng bất biến phải được khởi tạo trong hàm tạo.Các lập trình viên cung hay dùng thuật ngữ hàm tạo để chỉ một trong những thẻ đóng gói dữ liệu trong một
kiểu dữ liệu đại số. Nó là một cách dùng khác với bài viết này.[
Còn mơ hồ –
thảo luận]Hầu hết các ngôn ngữ cho phép
chồng hàm tạo vì vậy một lớp có thể có nhiều hơn một hàm tạo với các tham số khác nhau. Một vài ngôn ngữ còn xem xét một số loại hàm tạo đặc biệt. Hàm tạo, sử dụng một lớp duy nhất để tạo đối tượng và trả về một thực thể mới của lớp đó, được trừu tượng hóa bởi
factory, cũng có thể tạo ra đối tượng nhưng với nhiều cách, sử dụng nhiều lớp hay các phương thức phân bổ khác nhau như một
vùng chứa đối tượng (object pool).