Class and Object

Class
หน่วยการสร้างที่นำไปสู่การเขียนโปรแกรมเชิงวัตถุ เป็นการกำหนดชนิดข้อมูลที่ผู้ใช้กำหนดเอง ประกอบไปด้วยตัวแปร (Attributes or Variables) และกระบวนการดำเนินการ (Function or Method) สามารถเข้าถึงและใช้งานได้โดยการสร้างวัตถุของคลาสนั้น ซึ่ง class เปรียบเสมือนพิมพ์เขียวของวัตถุ (Object)
class ClassName {
public:
int variable;
void myMethode() {
//..
}
};
Access specifier
ตัวระบุการเข้าถึงสมาชิก (Attributes และ Methods) ภายใน class

public -> สามารถเข้าถึงข้อมูลได้จากภายนอก class
private -> ไม่สามารถเข้าถึงข้อมูลได้จากภายนอก class แต่สามารถเข้าถึงได้จากหลักการของ Encapsulation
protected -> ไม่สามารถเข้าถึงข้อมูลจากภายนอก class แต่สามารถเข้าถึงได้จาก Inherited class
คำถาม Access specifier มีความสำคัญอย่างไร?
คำตอบ เนื่องจากภายใน class มีการตั้งค่าพื้นฐานการเข้าถึงเป็น private ทำให้ไม่สามารถเข้าถึงข้อมูลได้ หากต้องการเข้าถึงข้อมูลภายใน class นั้นต้องทำการระบุการเข้าถึงเป็น public
Object
เนื่องจาก class เป็นเพียงข้อมูลจำเพาะบอกลักษณะ ไม่สามารถใช้ในโปรแกรมได้จึงต้องสร้างสิ่งที่เรียกว่าวัตถุ (object) ที่เป็นสิ่งที่สามารถระบุตัวตนได้โดยอาศัยลักษณะและพฤติกรรมบางอย่าง เปรียบเสมือนการประกอบพิมพ์เขียวให้สมบูรณ์กลายเป็นวัตถุชิ้นหนึ่ง
// oop_p1_1.cpp
#include <iostream>
using namespace std;
class Book{
public:
string title;
string author;
int numPages;
};
int main(){
Book book1;
book1.title = "Harry Potter";
book1.author = "JK Rowling";
book1.numPages = 1500;
cout << book1.title << endl;
Book book2;
book2.title = "Lord of the Rings";
book2.author = "JRR Tolkien";
book2.numPages = 1300;
cout << book2.title << endl;
return 0;
}
Harry Potter
Lord of the Rings
จากตัวอย่างจะเห็นว่า ผู้ใช้กำหนดว่าวัตถุที่เป็นหนังสือนั้นจะประกอบไปด้วย ชื่อเรื่อง ผู้เขียนและจำนวนหน้า ในกรณีนี้ object ที่ชื่อว่า book1 และ book2 เป็นหนังสือที่มีการกำหนดชื่อหนังสือ ผู้แต่งและจำนวนหน้าเรียบร้อยแล้ว
1 class สามารถนำไปใช้ได้กับหลาย object แต่ 1 object สามารถมีได้เพียง 1 class เท่านั้น
คำถาม ใน 1 ไฟล์ สามารถมีหลาย class ได้หรือไม่?
คำตอบ ได้
// oop_p1_3.cpp
#include <iostream>
using namespace std;
class Book{
public:
string title;
string author;
int numPages;
};
class people{
public:
string name;
int age;
};
int main(){
Book book1;
book1.title = "Harry Potter";
book1.author = "JK Rowling";
book1.numPages = 1500;
cout << book1.title << endl;
Book book2;
book2.title = "Lord of the Rings";
book2.author = "JRR Tolkien";
book2.numPages = 1300;
cout << book2.title << endl;
people obj1;
obj1.name = "AA" ;
obj1.age = 20;
cout << "My name is " << obj1.name << endl;
cout << "I am " << obj1.age << " years old" << endl;
return 0;
}
Harry Potter
Lord of the Rings
My name is AA
I am 20 years old
แหล่งอ้างอิงเพิ่มเติม
Last updated
Was this helpful?