index:Java เปรียบเทียบ คลาส (class) และ ออบเจ็กต์ (object)

คำถาม: คลาส (class) และ ออบเจ็กต์ (object) คือสิ่งเดียวกันหรือไม่?

คำตอบคือ: ไม่ใช่สิ่งเดียวกันค่ะ

 

ในเรื่องของความสัมพันธ์ระหว่างสองสิ่งนี้ให้เราทำความเข้าใจง่าย ๆ ว่า ถ้าไม่มีคลาส (class) ก็จะไม่มีออบเจ็กต์ (object)

 

หมายความว่า เราสร้าง class ขึ้นมาเฉย ๆ โดยไม่สร้าง object จาก class นั้นก็ได้

แต่เราไม่สามารถสร้าง object ขึ้นมาได้ โดยที่ไม่มี class

 

หากต้องการทำความเข้าใจให้ลึกซึ้งมากขึ้น เรามามอง class และ object ใน 2 มุมมองหลัก ๆ ดังต่อไปนี้

 

มองในมุมการออกแบบ class และการเรียกใช้ object

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

  • อะไรควรจะเป็น class ในระบบ
  • Class นี้ต้องมีตัวแปร (variable) อะไรบ้าง
  • Class นี้ต้องมีเมธอด (method) อะไรบ้าง
  • Class นี้มีความสัมพันธ์กับ class อื่น ๆ อย่างไร เป็นต้น

 

เมื่อได้ class ขึ้นมาแล้ว เวลานำ class ไปใช้งาน เราต้อง สร้าง object จากคลาสนั้นขึ้นมา ในภาษา Java เราใช้คำสั่ง  new  เช่น สร้าง object จากคลาส User ดังนี้

 

พอสร้าง object ขึ้นมาแล้ว คำถามที่มักจะเกิดขึ้นกับ object นั้น ๆ ก็คือ

  • Object นี้ทำอะไรได้บ้าง
  • ต้องเรียกใช้ method อะไร ถึงจะได้ผลลัพธ์ ตามต้องการ
  • ต้องส่งค่าอะไรไปบ้าง เพื่อให้ method นี้ทำงานได้อย่างถูกต้อง เป็นต้น

 

ตั้งใจอ่านตรงนี้ให้ดีนะคะ

ในระหว่างการเรียกใช้เมธอดต่าง ๆ เราอาจจะนึกขึ้นมาได้ว่า เราต้องการใช้เมธอด ที่ทำงานแบบนี้ (….) แต่มันไม่มีเมธอดที่ต้องการใช้งานให้เรียกใช้

 

เราจะแก้ปัญหานี้ยังไง ?

 

คำตอบคือ กลับไปที่คลาสนั้น และเขียนโค้ดเพื่อสร้างเมธอดที่ต้องการใช้งานลงไป พร้อมกับคำสั่งต่าง ๆ ที่ใช้ในการประมวลผล

 

หลังจากนั้น พอเรามาสร้าง object ใหม่ เราก็จะพบกับเมธอดใหม่ที่เขียนเอาไว้ในคลาสเรียบร้อยแล้ว

 

ดังนั้น class  จึงเป็นต้นแบบของ object

อยากได้ object แบบไหน ก็ต้องออกแบบ class ไว้แบบนั้น

 

 

มองในมุมการทำงานของ Hardware

เมื่อเราเปิดโปรแกรม IDE ขึ้นมา เราเปิดขึ้นมาเพื่อเขียนโค้ดคำสั่งในการสร้าง class ซึ่ง class หนึ่ง class ก็คือไฟล์หนึ่งไฟล์นั่นเอง

index-java-class-and-object-1

ภาพที่ 1 file

 

แต่เมื่อเราเขียนโค้ดด้วยภาษา Java เราก็จะได้ไฟล์นามสกุล .java ขึ้นมา

index-java-class-and-object-2

ภาพที่ 2 file java

 

และเราเก็บไฟล์นี้เอาไว้ใน Hard disk หลังจากปิดเครื่องคอมพิวเตอร์ลงไปแล้ว และเปิดขึ้นมาใหม่ เราก็ยังจะพบกับไฟล์เหล่านี้

index-java-class-and-object-3

ภาพที่ 3 hard disk

 

แต่เวลาสร้าง object เราไม่ได้ใช้กระบวนการเหมือนกับตอนที่สร้าง class ที่ต้องสร้างเป็นไฟล์ขึ้นมา

 

เราเพียงแค่ใช้คำสั่ง new ไปที่ class ที่ต้องการเท่านั้น

 

กระบวนการ การเกิด object นั้นเกิดขึ้นที่ RAM เมื่อโปรแกรมประมวลผล และทำงานเสร็จแล้ว พอเราปิดเครื่องคอมพิวเตอร์ลงไป objects ต่าง ๆ ก็จะหายไปทันที่ เมื่อไม่มีไฟหล่อเลี้ยงให้กับ RAM

 

หากเราต้องการประมวลผลข้อมูลใหม่ เราก็แค่สั่งให้โปรแกรมทำงานใหม่อีกครั้ง

 

โปรแกรมก็จะทำงานตามคำสั่งเดิมที่เราเขียนเอาไว้ใน class ซึ่งประกอบไปด้วยคำสั่งใน class เอง และคำสั่งในการสร้าง object ขึ้นมาใช้งาน

 

หวังว่าบทความนี้จะทำให้หลายคนเข้าจะเรื่องความแตกต่างของ class และ object มากขึ้นนะคะ

 

หากอยากเรียนรู้เรื่องนี้เพิ่มเติม เราภูมิใจแนะนำคอร์สที่สอนเรื่อง Class และ Object โดยเฉพาะ สามารถคลิกดูรายละเอียดได้เลยค่ะ Complete Java: Class and Object

 

Comments

comments

ธมนวรรณ มณีจันทร์

เป้าหมาย : "พัฒนาคุณภาพชีวิตผู้คน ผ่านการส่งมอบความรู้ ด้วยเทคโนโลยีที่ดีที่สุด" ... ประวัติ