เจาะลึก: ใช้คำว่า “เขียนคลาส” หรือ “สร้างคลาส” กันแน่ ในภาษา Java

กระบวนการที่ทำให้เกิด คลาส (class) ขึ้นมา ในตำราหลายเล่มใช้คำว่า “เขียนคลาส” ไม่ใช่ “สร้างคลาส” เพราะคำว่า “สร้าง” เอาไว้ใช้ ตอน “สร้างออบเจ็กต์”

 

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

 

ซึ่งการใช้งานคลาส ก็คือ การนำคลาสไป สร้าง เป็น “ออบเจ็กต์” (object) นั่นเอง

 

การสร้างออบเจ็กต์

มาดูกระบวนการสร้างออบเจ็กต์กันค่ะ

JAVA-CLASS-OBJECT-1-1

 

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

 

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

 

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

 

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

JAVA-CLASS-OBJECT-1-2

แล้วเราแน่ใจจริง ๆ หรือว่า ไม่ได้ “เขียน” หรือ “พิมพ์” คำสั่ง new ขึ้นมา?

 

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

 

แม้ว่ากระบวนการสร้างออบเจ็กต์ จะเกิดขึ้นจริง ๆ ตอนที่เรา Run โปรแกรมก็ตาม ถ้าไม่เขียนสั่ง new เอาไว้ ตอน Run โปรแกรม ออบเจ็กต์ก็เกิดขึ้นไม่ได้อยู่ดี

 

 เริ่มสับสนแล้วใช่มั้ยละ?

JAVA-CLASS-OBJECT-1-3

 

มันก็เหมือนกับการ “เขียนคลาส” หรือ “สร้างคลาส” นั้นแหละ ในความหมายของ เว็บ TH-JAVA.com การ “สร้างคลาส” หมายถึง การทำให้สิ่งที่ไม่เคยมี ให้มันมีหรือเกิดขึ้นมา

 

เราชอบที่จะใช้คำว่า “สร้างคลาส” Xxx ขึ้นมา มากกว่าที่จะบอกว่า “เขียนคลาส” Xxx ขึ้นมา (หรือถ้าเอาเข้าจริง ๆ ต้องบอกว่า “พิมพ์คลาส” Xxx ขึ้นมาถึงจะถูก)

 

เพราะเมื่อบอกว่า “เขียนคลาส” ภาพในหัวของเรามักจะเป็นรูปมือจับดินสอหรือปากกา เตรียมเขียนอะไรบางอย่าง

JAVA-CLASS-OBJECT-1-4

 

เมื่อนึกถึงการ “เขียนคลาส” เราจะสับสนว่า จะต้องเขียนคลาส ประกาศตัวแปร เขียนเมธอด เป็นโค้ดที่ใช้ Run จริง ๆ หรือจะให้เขียนเป็น UML กันแน่!

JAVA-CLASS-OBJECT-1-5

 

แล้วจะให้ใช้คำไหนดีล่ะ?

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

 

การ “เขียนคลาส”

การ “สร้างคลาส”

การ “เขียนออบเจ็กต์” (ไม่มีใครเค้าใช้กัน)

การ “สร้างออบเจ็กต์”

 

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

 

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

 

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

 

สรุป

แล้วตกลงต้องใช้คำว่า “เขียนคลาส”  “สร้างคลาส” หรือ “ประกาศคลาส” กันแน่!

 

เรามีคำแนะนำง่าย ๆ คือ องค์กรคุณใช้ศัพท์คำไหน ก็ใช้คำนั้น เพื่อให้การสื่อสารเป็นไปอย่างถูกต้อง และเข้าใจตรงกัน

 

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

 

Comments

comments

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

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