ตัวสร้างเริ่มต้นเป็นวิธีพิเศษที่สร้างและเริ่มต้นวัตถุในการเขียนโปรแกรมเชิงวัตถุ มีคอนสตรัคเตอร์หลายประเภท แต่คอนสตรัคเตอร์เริ่มต้นจะต้องเป็นไปตามเกณฑ์เฉพาะหนึ่งในสองข้อนอกเหนือจากการสร้างและเริ่มต้นวัตถุ มันจะต้องไม่มีพารามิเตอร์ซึ่งในกรณีนี้มันอาจเรียกว่าตัวสร้าง nullary หรือต้องกำหนดค่าเริ่มต้นให้กับพารามิเตอร์ทั้งหมดที่มีความสามารถในการตั้งค่า บางภาษาคอมพิวเตอร์โดยปริยายระบุตัวสร้าง nullary เริ่มต้นหากโปรแกรมเมอร์ไม่ได้ระบุตัวสร้างเลย เมื่อเขียนชนิดของคอนสตรัคเตอร์ใด ๆ คอนสตรัคเตอร์ nullary เริ่มต้นจะไม่ถูกระบุอีกต่อไปและจะต้องเขียนอย่างชัดเจนหากจำเป็น
สำหรับภาษาคอมพิวเตอร์ที่อนุญาตการสืบทอดเชิงวัตถุตัวสร้างเริ่มต้นในคลาสย่อยจะต้องเชื่อมต่ออย่างแม่นยำกับตัวสร้างในซูเปอร์คลาส ตัวสร้างคลาสย่อยต้องเรียกตัวสร้างคลาสซูเปอร์เสมอก่อนที่จะทำสิ่งใดที่เฉพาะกับคลาสย่อย ในบางภาษาเช่นJava®ตัวสร้างคลาสย่อยโดยปริยายเรียกตัวสร้างแบบ nullary เริ่มต้น superclass ถ้าไม่มีตัวสร้าง nullary เริ่มต้น superclass วัตถุ subclass จะไม่สามารถสร้างได้อย่างถูกต้อง คลาสย่อยยังสามารถมีคอนสตรัคเตอร์เริ่มต้นได้ทั้งสองประเภทในกรณีนี้ แต่ตัวสร้างซูเปอร์คลาสที่มีอยู่ต้องถูกเรียกอย่างถูกต้องซึ่งอาจส่งผ่านค่าเริ่มต้นที่ไม่ซ้ำกับคลาสย่อย
การสร้างโดยปริยายของตัวสร้าง nullary เริ่มต้นมีข้อได้เปรียบในการลดจำนวนวิธีที่โปรแกรมเมอร์ต้องระบุและจัดทำเอกสาร แต่ยังมีข้อเสียของการบำรุงรักษารหัสและความเข้าใจที่ยากขึ้น โปรแกรมเมอร์บางคนคิดว่าการละเลยคอนสตรัคเตอร์เริ่มต้นนั้นเป็นการฝึกฝนที่ไม่ดี ไม่มีสิ่งใดที่ป้องกันไม่ให้โปรแกรมเมอร์แต่ละคนปฏิบัติตามวิธีการเขียนโปรแกรมเหล่านี้ดังนั้นการกำหนดค่าเริ่มต้นแบบ nullary ในรหัสจึงเป็นตัวเลือกสำนวนโวหารในส่วนของโปรแกรมเมอร์ หากมีการกำหนดตัวสร้างโรงเรียนแห่งความคิดส่วนใหญ่จะกำหนดว่าควรให้ความเห็นและบันทึกไว้เช่นเดียวกับตัวสร้างหรือวิธีการอื่น ๆ
ตัวสร้างเริ่มต้นใด ๆ สามารถมีตัวดัดแปลงการเข้าถึงที่แนบไว้ทำให้ตัวสร้างเป็นสาธารณะได้รับการคุ้มครองหรือเป็นส่วนตัว สิ่งนี้ให้ความสามารถเฉพาะของตัวสร้างตามคลาสที่ระบุไว้ ตัวสร้างค่าเริ่มต้นสาธารณะสามารถใช้เพื่อสร้างวัตถุใหม่จากคลาสอื่นในขณะที่ตัวสร้างที่มีการป้องกันสามารถถูกเรียกจากคลาสของตัวเองและคลาสย่อยใด ๆ เท่านั้น ตัวสร้างเริ่มต้นที่มีการป้องกันมักจะเห็นในลำดับชั้นการสืบทอด คอนสตรัคเตอร์ส่วนตัวมักใช้เฉพาะในคลาสที่มีในตัวเองซึ่งมีวิธีการบางอย่างจากโรงงานที่สามารถใช้เรียกมันได้แทนที่จะเป็นโปรแกรมเมอร์


