Class และ Object: พื้นฐานการสร้าง Model
ในบทที่แล้ว เราได้ทำความเข้าใจพื้นฐานของ OOP กันไปแล้วว่ามันคืออะไร ทำไมเราถึงควรใช้ และมันแตกต่างจากการเขียนโปรแกรมแบบเดิมๆ อย่างไร ในบทนี้ เราจะมาเจาะลึกถึงหัวใจสำคัญของ OOP นั่นก็คือ Class และ Object
Class คืออะไร?
ลองจินตนาการว่า Class คือ "พิมพ์เขียว" หรือ "แม่พิมพ์" สำหรับการสร้าง Object ถ้าเราต้องการสร้างบ้าน Class ก็เปรียบเสมือนแบบแปลนบ้านที่กำหนดว่าบ้านจะมีกี่ห้อง แต่ละห้องมีขนาดเท่าไหร่ ใช้วัสดุอะไรบ้าง
ในทางเทคนิค Class คือโครงสร้างที่กำหนดคุณสมบัติ (Properties) และพฤติกรรม (Methods) ของ Object ที่จะถูกสร้างขึ้นจาก Class นั้น
คำศัพท์สำคัญ:
- Class: พิมพ์เขียวหรือแม่พิมพ์สำหรับสร้าง Object
- Properties: คุณสมบัติหรือลักษณะของ Object (เช่น สี, ขนาด, ชื่อ)
- Methods: พฤติกรรมหรือการกระทำที่ Object สามารถทำได้ (เช่น เดิน, กิน, นอน)
การประกาศ Class ใน PHP
การประกาศ Class ใน PHP ทำได้โดยใช้ keyword class ตามด้วยชื่อ Class และปีกกา {}
<?php
class Dog {
// Properties (คุณสมบัติ)
// Methods (พฤติกรรม)
}
?>
ในตัวอย่างนี้ เราได้สร้าง Class ชื่อ Dog ขึ้นมา แต่ตอนนี้ Class ยังว่างเปล่า ยังไม่มี Properties หรือ Methods ใดๆ เราจะเพิ่มรายละเอียดเหล่านี้ในบทต่อไป
Object คืออะไร?
Object คือ "สิ่งที่ถูกสร้างขึ้น" จาก Class ถ้า Class คือแบบแปลนบ้าน Object ก็คือบ้านที่สร้างเสร็จแล้วตามแบบแปลนนั้น
Object เป็น Instance (สำเนา) ของ Class ที่มีคุณสมบัติและพฤติกรรมตามที่ Class กำหนด แต่ละ Object สามารถมีค่าของ Properties ที่แตกต่างกันได้
คำศัพท์สำคัญ:
- Object: Instance (สำเนา) ของ Class
- Instance: สิ่งที่ถูกสร้างขึ้นจาก Class
การสร้าง Object ใน PHP
การสร้าง Object จาก Class ใน PHP ทำได้โดยใช้ keyword new ตามด้วยชื่อ Class และวงเล็บ ()
<?php
class Dog {
// Properties (คุณสมบัติ)
// Methods (พฤติกรรม)
}
$myDog = new Dog(); // สร้าง Object ชื่อ $myDog จาก Class Dog
?>
ในตัวอย่างนี้ เราได้สร้าง Object ชื่อ $myDog จาก Class Dog ตอนนี้ $myDog เป็น Instance ของ Class Dog และสามารถเข้าถึง Properties และ Methods ที่กำหนดไว้ใน Class ได้ (ซึ่งตอนนี้ยังไม่มี)
ความสัมพันธ์ระหว่าง Class และ Object
Class และ Object มีความสัมพันธ์กันอย่างใกล้ชิด Class เป็นเหมือนแม่พิมพ์ ส่วน Object เป็นสิ่งที่ถูกสร้างขึ้นจากแม่พิมพ์นั้น
Class กำหนดโครงสร้างและพฤติกรรมของ Object ในขณะที่ Object เป็น Instance ที่มีข้อมูลจริงตามที่กำหนดไว้ใน Class
ลองดูตัวอย่างง่ายๆ นี้:
<?php
class Car {
public $color; // Property: สีรถ
public function honk() { // Method: การบีบแตร
echo "Beep beep!";
}
}
$myCar = new Car();
$myCar->color = "Red"; // กำหนดสีรถเป็นสีแดง
echo "My car is " . $myCar->color . "<br>"; // แสดงผล: My car is Red
$myCar->honk(); // เรียกใช้ Method honk() แสดงผล: Beep beep!
?>
ในตัวอย่างนี้:
Carคือ Class ที่กำหนดว่ารถจะมี Property ชื่อcolorและ Method ชื่อhonk()$myCarคือ Object ที่ถูกสร้างขึ้นจาก ClassCar$myCar->color = "Red";กำหนดค่าของ Propertycolorของ$myCarให้เป็น "Red"$myCar->honk();เรียกใช้ Methodhonk()ของ$myCar
สรุป
ในบทนี้ เราได้เรียนรู้เกี่ยวกับ:
- ความหมายของ Class และ Object
- การประกาศ Class ใน PHP
- การสร้าง Object จาก Class ใน PHP
- ความสัมพันธ์ระหว่าง Class และ Object
Class และ Object เป็นพื้นฐานที่สำคัญที่สุดในการเขียนโปรแกรมเชิงวัตถุ การเข้าใจแนวคิดเหล่านี้จะช่วยให้เราสามารถออกแบบและพัฒนาซอฟต์แวร์ที่มีโครงสร้างที่ดีขึ้น นำโค้ดกลับมาใช้ใหม่ได้ง่ายขึ้น และมีความยืดหยุ่นมากขึ้น
ในบทต่อไป เราจะมาเรียนรู้เกี่ยวกับการกำหนด Properties (คุณสมบัติ) ของ Object ให้ละเอียดมากยิ่งขึ้น