Java ออบเจ็กต์ (Object) คืออะไร

ในหัวข้อที่ผ่านมา เรื่อง “คลาส (class) คืออะไร” เราได้สร้างคลาส Employees.java ขึ้นมา รวมถึงได้สร้าง ออบเจ็กต์ (object) กันไปบ้างแล้ว กระบวนการสร้างออบเจ็กต์อยู่ในคลาส TestEmp.java ภายใต้เมธอด main ซึ่งมีคำสั่งดังนี้

ทุก ๆ ครั้งที่เราใช้คำสั่ง new นั่นคือการสร้างออบเจ็กต์ หมายความว่า สมชาย(somchai), สมคิด(somkit), สมปอง(sompong), สมเกียรติ(somkiat) และสมศักดิ์(somsak) ทุก ๆ คน คือออบเจ็กต์ และเป็นออบเจ็กต์ที่ถูกสร้างขึ้นมาจากคลาส Employees.java

 

จะเห็นได้ว่าตอนที่เราสร้างคลาส Employees.java ขึ้นมานั้น ข้างในมีแค่โค้ดและคำสั่งต่าง ๆ เท่านั้น ไม่มีค่าของข้อมูลเลย

การที่เราจะกำหนดค่าหรือข้อมูลต่าง ๆ ให้ออบเจ็กต์ได้นั้น เราต้องทำให้คลาส  Employees.java แปลงร่างกลายมาเป็นออบเจ็กต์เสียก่อน นั่นคือการใช้คำสั่งรูปแบบ ดังนี้

ทุก ๆ ครั้งที่มีการใช้คำสั่ง new หมายความว่าจะเกิดออบเจ็กต์ใหม่ขึ้นมา จากนั้นเราจึงทำการกำหนดค่าต่าง ๆ ให้กับออบเจ็กต์ได้ ดังนี้

ในการสร้างออบเจ็กต์นั้นเราจะสร้างขึ้นมากี่ออบเจ็กต์ก็ได้ตามความต้องการ เช่นตอนนี้เรามีทั้งหมด 5 ออบเจ็กต์ คือ

ยังจำได้นะคะว่าตอนที่เราสร้างคลาส Employees.java นั้น เราสร้างมันขึ้นมาแค่ไฟล์เดียว หรือที่เราเรียกว่า คลาส 1 คลาส แต่คลาสเดียวนั้นสามารถสร้างออบเจ็กต์ได้มากมาย

 

ลองมาอ่านนิยามอีกครั้งค่ะ

นิยาม : คลาส (class) คือ กลุ่มของออบเจ็กต์ที่มีคุณสมบัติและพฤติกรรมเหมือนกัน

 

ตอนนี้เราเข้าใจความหมายของคำว่า ออบเจ็กต์, คุณสมบัติ และพฤติกรรมหรือความสามารถแล้วนะคะ แต่เพื่อความชัดเจนมากขึ้น ลองดูภาพนี้ค่ะ

คำอธิบายภาพ:

จากภาพด้านบนนั่นคือกลุ่มของออบเจ็กต์กลุ่มหนึ่งที่มีคุณสมบัติและพฤติกรรม(ความสามารถ) เหมือนกัน คือ

  • ทุก ๆ ออบเจ็กต์มี สมบัติ: ชื่อ (name) และ ตำแหน่ง (position)
  • ทุก ๆ ออบเจ็กต์มี ความสามารถ: กำหนดชื่อ(setName()), กำหนดตำแหน่ง(setPosition()) และสามารถแสดงผลลัพธ์ข้อมูลที่ถูกกำหนดให้ออกมาทางหน้าจอ (output) ได้

 

ขอย้ำอีกครั้งว่า: สิ่งที่แต่ละออบเจ็กต์มีแตกต่างกันคือ “ค่า” (value/state) ที่อยู่ภายในเท่านั้น

 

ความแตกต่างระหว่างคลาสและออบเจ็กต์

  • คลาสสร้างเพียงครั้งเดียว แต่สามารถนำมาสร้างออบเจ็กต์ได้มากมาย
  • คลาสไม่มีค่าข้อมูลภายใน แต่ออบเจ็กต์สามารกำกำหนดค่าต่าง ๆ ได้

 

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

สรุป

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

 


 

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

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

|:- เราเชื่อมั่นว่าการเสียสละและการแบ่งปันจะทำให้โลกใบนี้สวยงามมากขึ้น ทุกๆ จุดเริ่มต้นของการเรียนรู้ นำไปสู่การเรียนรู้ถัดไป เว็บไซต์แห่งนี้ขอเป็นส่วนหนึ่งของการแบ่งปันความรู้ที่ไม่มีที่สิ้นสุด มาร่วมกันผลักดันโลกของเราให้หมุนไปพร้อมกับพลังแห่งความรักด้วยกันนะคะ :) >>> |:- About Me! -:|