OOP มองโปรแกรมเป็นกลุ่มของ Object ที่มีข้อมูลและพฤติกรรม ช่วยให้โปรแกรมใหญ่แบ่งส่วนได้ชัดเจน นำกลับมาใช้ซ้ำได้ และลดการพึ่งพากันของโค้ด
Class คือแม่แบบของข้อมูลและพฤติกรรม ส่วน Object คืออินสแตนซ์ที่สร้างจาก Class การออกแบบ Class ที่ดีควรมีหน้าที่ชัดเจนและซ่อนรายละเอียดที่ไม่จำเป็น
Constructor ใช้กำหนดค่าเริ่มต้นเมื่อสร้าง Object ส่วน Destructor ใช้คืนทรัพยากรเมื่อ Object สิ้นสุดอายุการใช้งาน เช่น ปิดไฟล์หรือคืนหน่วยความจำ
ออกแบบ Class พื้นฐานสำหรับระบบจัดการข้อมูล พร้อมกำหนด Attribute, Method, Constructor และ Destructor
ผู้เรียนเริ่มจากการวิเคราะห์คำนามและคำกริยาในโจทย์เพื่อหา Class, Attribute และ Method จากนั้นพิจารณาว่าแต่ละ Class ควรรับผิดชอบเรื่องใด ไม่ควรให้ Class เดียวทำทุกอย่าง เพราะจะทำให้แก้ไขยากและทดสอบยาก
การออกแบบ Constructor ควรทำให้ Object อยู่ในสถานะที่พร้อมใช้งานทันที ส่วน Destructor หรือขั้นตอน cleanup ควรรับผิดชอบการคืนทรัพยากร เช่น ไฟล์ หน่วยความจำ หรือการเชื่อมต่อระบบ
ออกแบบ Class Diagram อย่างง่าย แล้วเขียน Class อย่างน้อย 2 คลาสที่มีความสัมพันธ์กัน
Object-Oriented Programming (OOP) คือแนวคิดการออกแบบโปรแกรมโดยมองระบบเป็นกลุ่มของ Object ที่มีข้อมูลและพฤติกรรมในตัวเอง
%%{init: {'theme': 'base', 'themeVariables': {'background': '#282828','primaryColor': '#3c3836','primaryTextColor': '#fbf1c7','primaryBorderColor': '#fabd2f','lineColor': '#83a598','secondaryColor': '#504945','tertiaryColor': '#665c54'}}}%%
classDiagram
class Student {
+string id
+string name
+showInfo()
}
class Course {
+string code
+string title
+addStudent()
}
Course "1" --> "*" Student : enrolls / ลงทะเบียน
#include <iostream>
using namespace std;
class Student {
private:
string id;
string name;
public:
Student(string studentId, string studentName) {
id = studentId;
name = studentName;
}
void showInfo() {
cout << id << " " << name << endl;
}
};
int main() {
Student s("66001", "Anan"); // สร้าง object จาก class
s.showInfo(); // expected: 66001 Anan
return 0;
}
| องค์ประกอบ | ความหมาย | ตัวอย่าง |
|---|---|---|
| Class | แม่แบบของ object | Student |
| Object | สิ่งที่สร้างจาก class | s |
| Attribute | ข้อมูลภายใน object | id, name |
| Method | พฤติกรรมของ object | showInfo() |