เมื่อเราย่างเท้าเข้าสู่โลกของการเขียนโปรแกรมเชิงวัตถุ (อูววววว) คำที่เราจะได้ยินจนชำนาญคือคำว่า class และ object

คลาสก็คือโค้ดก้อนหนึ่งที่ถูกหุ้มด้วยคำว่า  class

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

เขียนเผื่ออนาคตได้มั้ย!

ไม่ต้อง คำว่าเผื่ออนาคตคือขยะ เอาเวลาไปนั่งเกาไข่เถอะ

แล้ว object คืออะไร?

object คือตัวแปรที่ใช้คำสั่ง new มาจาก class  ให้คิดเสียว่า class มันคือต้นแบบเอาไปใช้ตรงๆไม่ได้ (ถามว่าทำไมไม่ได้ เอ้า ก็คนออกแบบภาษาเขากำหนดมางั้น เรามันผู้ตาม ทำตัวเชื่องๆ) ต้องก้อปปี้ไปใช้ผ่านคำสั่ง new

นี่คือ class และ object

มันมีข้อแนะนำเกี่ยวกับการสร้าง class ว่าคลาสหนึ่งๆควรมีหน้าที่เดียวเท่านั้น ถ้าจะเป็นคลาสจัดการไฟล์ ก็เขียนคลาสให้มันจัดการไฟล์เท่านั้น ถามว่า เราเป็นคนอินดี้ เขียนไม่ตามกฎนี้ได้มั้ย ตอบว่าได้ ก็คุณเป็นพระเจ้านี่ คุณจะเอาฟังก์ชั่นเก็บ logs มาใส่ไว้ในคลาสไฟล์ด้วยก็ได้ แต่ เวลาคุณลาออกไปอยู่จักรวาลอื่น แล้วมีพระเจ้าคนใหม่มาดูแลคลาสคุณต่อ เขาจะงงเอา เขาจะหาโค้ดไม่เจอ

แน่นอนล่ะ ถ้าคลาสมันเขียนว่า File คงไม่มีใครคิดหรอกว่าข้างในมันจะมีเรื่องเขียน logs อยู่ด้วย งงตายโหง

ข้อแนะนำที่เขาแนะนำมามันดีแล้วล่ะ มันผ่านการคิดมาอย่างละเอียด

มีคำอีก 2 คำที่เกี่ยวข้องกับ class คือ methods, properties

methods ก็คือ ฟังก์ชั่นที่อยู่ภายในคลาส

properties ก็คือ ตัวแปรที่อยู่ภายในคลาส

มันเป็นรูปแบบการเขียนและแนวความคิด