user-helmet-safetyConstructor

ชนิภรณ์ สิงห์ทอง 640710504

Constructor คืออะไร?

Constructor คือฟังก์ชันแบบหนึ่งซึ่งเป็นตัวที่สำคัญมีหน้าที่กำหนดค่าเริ่มต้นให้กับ Object ในขณะที่มีการสร้าง Object ของ Class

The __construct() Function

  • การสร้างฟังก์ชัน __construct() ใน PHP จะสังเกตุได้ว่า ฟังก์ชัน __construct() จะเริ่มต้นด้วยเครื่องหมายขีดล่างสองตัว (__) และเมื่อมีการใช้ฟังก์ชัน __construct() , PHP จะเรียกใช้ฟังก์ชันนี้อัตโนมัติเมื่อมีการสร้าง Object จาก Class

Constructor สามารถแบ่งออกได้ 3 แบบ ดังนี้:

1.Default Constructor

คือ Constructor แบบไม่มี argument หรือ parameter

2.Parameter-less Constructor

คือ Constructor ที่ผู้ใช้งานสร้างขึ้นมา แต่ไม่มีการกำหนดค่าตัวแปร หรือ argument มีการทำงานเหมือน Default Constructor

3.Parameterized Constructor

คือ Constructor ที่ผู้ใช้กำหนด หรือสร้างขึ้น ซึ่งมีการกำหนดargument เรียกว่าConstructorแบบกำหนดพารามิเตอร์ ค่า argument ต่างๆของ Constructor นี้จะถูกส่งในขณะที่สร้าง Object และ method อื่นของคลาสนั้นๆก็ยังสามารถเรียกใช้ Constructor นี้ ได้ด้วย

เปรียบเทียบการใช้ Constructor ใน Java,C++,Python

1.Constructor ใน Java

  • ชื่อ Constructor เป็นชื่อเดียวกันกับชื่อ Class

  • ไม่มีการกำหนด return type

  • สามารถมี Constructor หลายตัวในคลาสเดียวได้ผ่าน การโอเวอร์โหลด (Overloading)

ประเภทของ Constructor ใน Java

  1. Default Constructor: Constructorเริ่มต้นที่ถูกสร้างขึ้นอัตโนมัติหากไม่มีการกำหนดConstructorใด ๆ

  2. Parameterized Constructor: Constructorที่รับพารามิเตอร์เพื่อกำหนดค่าเริ่มต้นให้กับตัวแปรสมาชิก

2.Constructor ใน C++

  • คล้าย Constructor ในภาษา Java โดยที่ชื่อ Constructor ชื่อเดียวกับ Class และไม่มีการกำหนด return type

  • รองรับการโอเวอร์โหลด (Overloading) เพื่อให้มีหลาย Constructor ที่รับพารามิเตอร์ต่างกันได้

ประเภทของคอนสตรัคเตอร์ใน C++

  1. Default Constructor: Constructorที่ไม่รับพารามิเตอร์ใด ๆ

  2. Parameterized Constructor: Constructorที่รับพารามิเตอร์เพื่อกำหนดค่าเริ่มต้น

  3. Copy Constructor: Constructorที่สร้าง Object ใหม่โดยการคัดลอกค่าจาก Object อื่น

ตัวอย่างการใช้ Copy Constructor :

3.Constructor ใน Python

  • ฟังก์ชัน __init__() ทำหน้าที่เป็น Constructor

  • รับ argument ต่าง ๆ ผ่าน self (ที่เป็นตัวแทนของ Object) และ argument อื่น ๆ เพื่อกำหนดค่าเริ่มต้น

  • ไม่ต้องระบุชนิดข้อมูลของตัวแปรและไม่มีการโอเวอร์โหลด(Overloading)

ตัวอย่าง Code การใช้ Constructor ใน Java,C++,Python

ตัวอย่าง:

ผลลัพธ์:

สรุป:

  • จากตัวอย่างโค้ด PHP จะเห็นได้ว่าการใช้ Constructor ช่วยให้ไม่จำเป็นต้องเรียกเมธอด set_name() ซึ่งช่วยลดจำนวนโค้ดลงได้

  • ในภาษา Java มี Constructor เป็นเมธอดชื่อเดียวกันกับ Class และไม่มีการกำหนด return type

  • C++ มีรูปแบบคล้าย Java โดยที่ constructor ก็มีชื่อเหมือน class และไม่มี return type เช่นกัน

  • ใน Python constructor ถูกกำหนดผ่านเมธอด __init__()เมื่อมีการสร้างอินสแตนซ์ (object) ของคลาส คอนสตรัคเตอร์จะถูกเรียกใช้งานทันทีโดยอัตโนมัติ

ข้อดีของการใช้ Constructor

  • ทำให้ออบเจ็กต์มีค่าเริ่มต้นพร้อมใช้งานทันที

  • ช่วยให้การเขียนโปรแกรมในแนวเชิงวัตถุมีความชัดเจนและเป็นระบบมากขึ้น

  • ช่วยลดความเสี่ยงจากการใช้ตัวแปรที่ยังไม่ได้กำหนดค่า ซึ่งอาจทำให้เกิดข้อผิดพลาดในโปรแกรม

Presentation

file-download
781KB

Video Clip

Reference

the __construct() Function : W3Schools.(1999-2024).PHP OOP - Constructor. https://www.w3schools.com/php/php_oop_constructor.asparrow-up-right.

Default Constructor,Parameter-less Constructor,Parameterized Constructor : Fahmida Yesmin.(2020,October,10).Use of Constructor in PHP.https://linuxhint.com/constructor_in_php/arrow-up-right.

เปรียบเทียบการใช้ Constructor ใน Java : https://docs.oracle.com/javase/tutorial/java/javaOO/constructors.htmlarrow-up-right.

เปรียบเทียบการใช้ Constructor ใน C++ : https://en.cppreference.com/w/cpp/language/constructorarrow-up-right.

เปรียบเทียบการใช้ Constructor ใน Python : https://docs.python.org/3/tutorial/classes.html#class-objectsarrow-up-right.

ตัวอย่าง Code การใช้ Constructor ใน PHP : W3Schools.(1999-2024).Example Constructor.https://www.w3schools.com/php/phptryit.asp?filename=tryphp_constructorarrow-up-right

ตัวอย่าง Code การใช้ Constructor ใน Java : John Squirrels.(2023,July,21).Constructor Chaining ใน Java.https://codegym.cc/th/groups/posts/th.399.constructor-chaining-n-javaarrow-up-right.

ตัวอย่าง Code การใช้ Constructor ใน C++ : benznest.(2018,August,3).รู้จัก Constructor.https://benzneststudios.com/blog/c-programming/c-programming-basic-6-oop/arrow-up-right

ตัวอย่าง Code การใช้ Constructor ใน Python : GeeksforGeeks.(2024,September,5).Python OOPs Concepts.https://www.geeksforgeeks.org/python-oops-concepts/?ref=outindarrow-up-right.

Last updated