เราเริ่มต้นเรียนรู้ คำว่า “คลาส” ด้วยการสร้างคลาส Students ขึ้นมา 1 คลาส ภายในคลาสว่างเปล่า ไม่มีอะไรเลย

จากนั้นเราก็เรียนรู้ คำว่า “ออบเจ็กต์” ด้วยการสร้าง ออบเจ็กต์ จากคลาส Students ขึ้นมา เรารู้ว่า คลาส 1 คลาส สามารถสร้าง ออบเจ็กต์ ได้มากมายเท่าไหร่ก็ได้ ตามความต้องการใช้งาน

แต่ออบเจ็กต์ที่สร้างขึ้นมาจาก คลาส เปล่า ๆ ไม่มีอะไรเลยนั้น ใช้ประโยชน์อะไรไม่ได้เลย ดังนั้น เราคงจะรู้แล้วว่า
“การออกแบบคลาส” เป็นเรื่องสำคัญ ตอนที่เราเขียนคลาสขึ้นมา เราต้องรู้แล้วว่า เมื่อ “คลาส” แปลงร่างไปเป็น “ออบเจ็กต์” มันจะสามารถทำอะไรได้บ้าง
ต่อมาเราได้เรียนรู้ว่า องค์ประกอบของคลาส มีอะไรบ้าง ซึ่งในเบื้องต้นมันประกอบไปด้วยตัวแปร (variable) และเมธอด (method)

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

ความแตกต่างที่สำคัญ อย่างหนึ่งในเรื่องของ คลาส และ ออบเจ็กต์ คือ “มุมมอง” ที่เราใช้ เวลาทำงานร่วมกับมัน
ตอนเรา “เขียนคลาส” เรามองในมุมของ “การออกแบบ” เราจะออกแบบคลาสยังไง จะเขียนโค้ดแบบไหน

ในขณะที่เรา “สร้างออบเจ็กต์” เราสร้างมันขึ้นมาเพื่อใช้งาน เรามองออบเจ็กต์ในมุมที่ว่า “จะต้องเรียกใช้เมธอดอะไร เพื่อให้ได้ผลลัพธ์ตามที่ต้องการ”

หากไม่มี “คลาส” เราก็ไม่สามารถสร้าง “ออบเจ็กต์” ขึ้นมาได้
“สิ่งที่คลาสมี คือสิ่งที่กำหนดว่า ออบเจ็กต์จะมีอะไรบ้าง”

หวังว่า การเดินทางมาถึงบทความนี้ จะทำให้หลาย ๆ คน เข้าใจคำว่า “คลาส” และ “ออบเจ็กต์” มากขึ้นนะคะ
แล้วพบกัน ในตอนต่อไปค่ะ